지도 구성

플랫폼 선택: Android iOS

이 개요에서는 iOS 앱에 추가된 지도를 구성하는 방법을 설명합니다. iOS용 Maps SDK를 사용합니다.

개요

앱에 지도를 추가한 후 초기 옵션과 런타임을 구성할 수 있습니다. 변경할 수 있습니다. 지도 컨테이너 추가에 대한 자세한 내용은 지도 컨테이너 추가 지도에 있습니다.

초기 지도 설정에는 다음이 포함됩니다.

  • 위치, 확대/축소, 방위, 기울기 등 카메라 위치. 자세한 내용은 카메라 및 뷰에서 카메라 위치 지정에 관해 자세히 알아보세요.
  • 지도의 배경 색상입니다.
  • 지도 유형
  • 확대/축소 버튼 및 화면과 같이 표시할 UI 구성요소 나침반.
  • 사용 설정할 동작

런타임 시 이러한 설정과 일부 추가 설정을 구성할 수 있습니다. 업데이트 중 GMSMapView 객체를 지정합니다.

지도 옵션

지도뷰를 초기화할 때 구성 옵션은 GMSMapViewOptions 옵션 속성에는 frame, camera, mapID 또는 backgroundColor입니다.

지도 옵션
프레임
값: CGRect
지도 프레임입니다. 기본값은 CGRectZero입니다.
카메라
값: GMSCameraPosition
기본 지도 카메라 위치입니다.
mapID
값: GMSMapID
Google 지도 ID 선택적 매개변수입니다.
backgroundColor
값: UIColor
기본값은 UIColor.lightGray입니다.

지도 옵션 구성

자체 옵션 속성을 설정하거나 인스턴스화된 기본값을 GMSMapView에 직접 포함하는 GMSMapViewOptions

Swift

let options = GMSMapViewOptions()
options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6)
let mapView = GMSMapView(options:options)

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:6];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

다음은 기본값이 있는 GMSMapViewOptions 객체를 전달하는 예입니다. GMSMapView에 직접 전송합니다.

Swift

let options = GMSMapViewOptions()
let mapView = GMSMapView(options:options) //initialized with default values

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; //initialized with default values

배경 색상 구성

어두운 모드에서 작업하거나 지도뷰 간에 전환할 때 기본 지도 배경 색상을 재정의합니다. 이렇게 하려면 지도 옵션 backgroundColor 속성

Swift

let options = GMSMapViewOptions()
options.backgroundColor = UIColor.yellowColor
let mapView = GMSMapView(options:options)

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.backgroundColor = UIColor.yellowColor;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

지도 유형

여러 지도 유형 중 하나로 지도를 사용자 지정할 수 있습니다. 지도 유형은 지도의 전체적 표현입니다. 예를 들어, 아틀라스에는 일반적으로 경계 표시에 중점을 두는 행정구역 지도와 지도 상에 경계가 표시되는 도로 지도가 있습니다. 도시 또는 지역의 모든 도로를 표시합니다. iOS용 Maps SDK는 지도 유형:

지도 유형
보통
값: kGMSTypeNormal
일반적인 로드맵 도로 및 제작자가 건설한 일부 지형지물 표시 강과 같은 중요한 자연적 지형지물에 대해 배웠습니다. 도로 및 지형지물 라벨도 표시됩니다. 지도 색 구성표를 어둡고 밝은 색상으로 설정할 수 있습니다. 시스템 설정을 따를 수 있습니다
하이브리드
값: kGMSTypeHybrid
도로 지도가 추가된 위성 사진 데이터입니다. 도로 및 지형지물 라벨도 표시됩니다.
위성
값: kGMSTypeSatellite
위성 사진 데이터입니다. 도로와 지형지물 라벨은 표시됩니다.
지형
값: kGMSTypeTerrain
지형 데이터. 지도에는 색상, 등고선 및 레이블이 포함되며, 원근 음영이 있습니다 도로 및 라벨도 일부 표시됩니다. 지원 지도 색 구성표를 어둡게, 밝게 또는 시스템 설정을 따르도록 설정합니다.
없음
값: kGMSTypeNone
지도 타일이 없습니다. 기본 지도 타일은 렌더링되지 않습니다. 이 모드는 tile 레이어가 있습니다. 지도 유형이 '없음'으로 설정합니다.

지도 유형 변경

지도의 유형을 설정하려면 GMSMapView.mapType에 새 값을 할당합니다. 속성 예를 들어, 위성 지도 유형을 표시하려면:

Swift

let options = GMSMapViewOptions()
options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6)
let mapView = GMSMapView(options:options)
mapView.mapType = .satellite

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                  longitude:151.2086
                                                        zoom:6];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
mapView.mapType = kGMSTypeSatellite;

아래의 선택기는 에 대한 지형, 일반 및 하이브리드 지도를 비교한 것입니다. 같은 위치:

실내 지도

높은 확대/축소 수준에서 iOS용 Maps SDK는 다음과 같은 평면도를 표시합니다. 공항, 쇼핑몰, 대형 소매점 및 대중교통과 같은 실내 공간 충전소입니다. 실내 평면도는 'normal' 지도 유형 (kGMSTypeNormal)으로, 확대되고 축소되면 사라집니다.

다음의 indoorEnabled 속성을 설정하여 실내 지도를 사용 중지할 수 있습니다. GMSMapView에서 NO(으)로

Swift

mapView.isIndoorEnabled = false
      

Objective-C

mapView.indoorEnabled = NO;
      

또는 사용 중지에서 층 선택기 컨트롤.

평면도 추가

평면도는 일부 지역에서만 제공됩니다. 위치를 참조하세요. 원하는 건물의 평면도 데이터를 사용할 수 없는 경우 다음과 같은 이점을 누릴 수 있습니다.

  • 층 추가 요금제 Google 지도에 바로 업로드할 수 있습니다. 이렇게 하면 Google 지도
  • 지면 오버레이로 평면도를 표시합니다. 이렇게 하면 평면도를 볼 수 있습니다.

교통정보 레이어

사용자에게 상단에 교통량 정보가 표시된 지도를 제공할 수 있습니다. 이 레이어는 지역 교통상황을 시각적으로 요약하여 보여줍니다. 다음을 호출하여 교통정보 레이어를 켜거나 끌 수 있습니다. trafficEnabled 메서드를 사용하여 축소하도록 요청합니다. 다음 예는 교통정보 레이어가 지도에 표시되는 방법을 보여줍니다.

교통 상황을 보여주는 Google 지도
레이어

접근성

기본적으로, 지도의 접근성 요소는 숨겨져 있습니다. 다음을 사용 설정할 수 있습니다. accessibilityElementsHidden 속성을 설정하여 GMSMapView에서 NO(으)로 이렇게 하면 오버레이 객체 (예: GMSMarker, 정보 창, GMSPolyline 등)

Swift

mapView.accessibilityElementsHidden = false
      

Objective-C

mapView.accessibilityElementsHidden = NO;
      

이 속성은 비공식 UIAccessibility 프로토콜을 따릅니다. 단, iOS용 Maps SDK의 기본값은 YES입니다.

내 위치

기본적으로, 위치 데이터는 지도에 표시되지 않습니다. 파란색 '내 계정 Location' myLocationEnabled을(를) 설정하여 점과 나침반 방향 설정 GMSMapView입니다.

Swift

mapView.isMyLocationEnabled = true
      

Objective-C

mapView.myLocationEnabled = YES;
      

이 기능을 사용하도록 설정하면 myLocation 속성입니다. 속성을 즉시 사용하지 못할 수도 있습니다. - 예를 들어 iOS에서 사용자에게 이 데이터에 대한 액세스를 허용하라는 메시지를 표시하는 경우입니다. 그것은 이 경우에는 nil입니다.

Swift

print("User's location: \(String(describing: mapView.myLocation))")
      

Objective-C

NSLog(@"User's location: %@", mapView.myLocation);
      

3D 건물

확대해서 볼 때 많은 도시에서 3D 건물이 보입니다. 워싱턴주 시애틀의 이미지에 나와 있습니다.

워싱턴 시애틀의 건물을 보여주는 3D 지도입니다.

3D 빌딩을 비활성화하려면 해당 GMSMapView 속성을 사용할 수 있습니다.

Swift

mapView.isBuildingsEnabled = false
      

Objective-C

[mapView setBuildingsEnabled:NO];
      

지도 패딩

Google 지도는 GMSMapView로 정의된 전체 지역을 채우도록 디자인됩니다. 지도가 표시되고 동작하는 방식의 여러 측면은 측정기준에 의해 정의됩니다. 다음과 같습니다.

  • 카메라의 타겟은 패딩 처리된 영역의 중심을 반영합니다.
  • 지도 컨트롤은 지도의 가장자리를 기준으로 배치됩니다.
  • 저작권 정보, Google 로고와 같은 법적 정보는 지도의 하단 가장자리를 따라 표시됩니다.

GMSMapView.padding 속성 지도가 계속 채워짐 텍스트 및 컨트롤 위치 지정, 지도 동작, 카메라 마치 작은 공간에 배치된 것처럼 동작합니다. 그 결과 다음과 같은 변경사항을 적용합니다.

  • API 호출 또는 버튼 누름을 통한 카메라 이동 (예: 나침반, 내 위치)는 패딩 처리된 지역을 기준으로 합니다.
  • GMSMapView.projection는 패딩 처리된 부분만 포함된 프로젝션을 반환합니다. 리전으로 나뉩니다
  • UI 컨트롤은 컨테이너 가장자리에서 지정된 점의 개수입니다.

패딩은 지도의 일부와 겹치는 UI를 디자인할 때 유용할 수 있습니다. 예를 들어 이미지의 지도는 상단 및 오른쪽 가장자리를 따라 패딩됩니다. 표시되는 지도 컨트롤 및 법적 텍스트가 패딩된 영역의 가장자리를 따라 표시됨 지도가 전체 컨테이너를 채우는 동안 확인할 수 있습니다 이 예에서는 메뉴 오른쪽에 메뉴를 띄워 지도 컨트롤을 가리지 않게 해야 합니다.

지도 패딩

지도에 패딩을 추가하려면 UIEdgeInsets 객체를 만들어 GMSMapView입니다.padding 속성입니다.

Swift

// Insets are specified in this order: top, left, bottom, right
let mapInsets = UIEdgeInsets(top: 100.0, left: 0.0, bottom: 0.0, right: 300.0)
mapView.padding = mapInsets
      

Objective-C

// Insets are specified in this order: top, left, bottom, right
UIEdgeInsets mapInsets = UIEdgeInsetsMake(100.0, 0.0, 0.0, 300.0);
mapView.padding = mapInsets;
      

지도 색 구성표

일반 및 지형 유형 지도의 경우 지도 색 구성표를 어둡게, 현재 시스템 설정을 사용할 수 있습니다. 예를 들어 밝기를 어둡게 또는 시간이나 실내 또는 실외에서 사용하는 시간에 따라 지도 색 구성표를 밝게 할 수 있습니다. 액세스할 수 있습니다.

GMSMapView overrideUserInterfaceStyle: 사용 지도 색 구성표를 설정하고 업데이트합니다.

Swift

let options = GMSMapViewOptions()
// Map is init to use light mode by default.
let mapView = GMSMapView(options: options)
// Set map to use dark mode.
mapView.overrideUserInterfaceStyle = .dark
// Set map to use light mode.
mapView.overrideUserInterfaceStyle = .light
// Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle
mapView.overrideUserInterfaceStyle = .unspecified

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
// Map is init to always use light mode.
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
// Set map to use dark mode.
mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleDark;
// Set map to use light mode.
mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
// Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle
mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleUnspecified;