시작하기

플랫폼 선택: Android iOS JavaScript

경계에 데이터 기반 스타일 지정을 사용하려면 지도 ID를 만들어야 합니다. 다음으로 새 지도 스타일을 만들고 필요한 경계 지형지물 레이어를 선택한 다음 스타일을 지도 ID와 연결합니다.

지도 ID 만들기

mapID는 지도 ID의 위치를 나타내는 Google 지도의 단일 인스턴스입니다. 지도 ID를 만들고 스타일을 업데이트할 수 있습니다. Google Cloud 콘솔에서 언제든지 지도 ID와 연결할 수 있습니다.

Google Cloud 스크린샷
Console

새 지도 스타일 만들기

새 지도 스타일을 만들려면 지도 관리 스타일을 사용하여 스타일을 지정할 수 있습니다. 완료되면 스타일을 새로 생성된 지도 ID와 연결합니다.

지형지물 레이어 선택

Google Cloud 콘솔에서 표시할 지형지물 레이어를 선택할 수 있습니다. 이 지도에 표시되는 경계의 종류 (예: 지역, 등).

지형지물 레이어 관리

  1. Google Cloud 콘솔에서 지도 스타일로 이동합니다. 페이지

  2. 메시지가 표시되면 프로젝트를 선택합니다.

  3. 지도 스타일을 선택합니다.

  4. 지형지물 레이어 드롭다운을 클릭하여 레이어를 추가하거나 삭제합니다.

  5. 저장을 클릭해 변경사항을 저장하여 지도에서 사용할 수 있게 합니다.

스크린샷
드롭다운 메뉴에서 선택합니다.

지도 초기화 코드 업데이트

이 단계에서는 지도 ID를 하나 이상의 지형지물이 있는 스타일과 연결해야 합니다. 레이어가 사용 설정되었습니다. Cloud 콘솔에서 지도 ID가 올바르게 설정되었는지 확인하려면 지도 관리에서 구성된 방식을 검토합니다.

Swift

// A map ID using a style with one or more feature layers enabled

let mapID = GMSMapID(identifier: "YOUR_MAP_ID")
let mapView = GMSMapView(frame: .zero, mapID: mapID, camera: GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7))

Objective-C

// A map ID using a style with one or more feature layers enabled

GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:mapID camera:[GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7]];

지도에 지형지물 레이어 추가

지도의 지형지물 레이어에 대한 참조를 가져오려면 다음을 호출합니다. 지도가 초기화되면 mapView.featureLayer(of:)를 반환합니다.

Swift

let layer = mapView.featureLayer(of: .locality)

Objective-C

GMSFeatureLayer *layer = [mapView featureLayerOfFeatureType:GMSFeatureTypeLocality];

지도 기능 확인

경계를 위한 데이터 기반 스타일 지정에는 Google Cloud 콘솔이며 지도 ID와 연결됩니다. 지도 ID는 휴대전화에서 mapView.mapCapabilities를 호출할 수 있습니다. GMSMapView: 특정 기능 (예: 데이터 기반 스타일 지정)을 사용할 수 있습니다.

또한 다음을 구독하여 지도 기능의 변경사항을 감지할 수 있습니다. GMSViewDelegate 이 예에서는 데이터 기반 스타일 지정 요구사항을 확인하는 데 사용되는 프로토콜입니다.

Swift

class SampleViewController: UIViewController {

  private lazy var mapView: GMSMapView = GMSMapView(frame: .zero, mapID: GMSMapID(identifier: "YOUR_MAP_ID"), camera: GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7))

  override func loadView() {
    self.view = mapView
    mapView.delegate = self
  }
}

extension SampleViewController: GMSMapViewDelegate {
  func mapView(_ mapView: GMSMapView, didChange mapCapabilities: GMSMapCapabilityFlags) {
    if (!mapCapabilities.contains(.dataDrivenStyling)) {
      // Data-driven styling is *not* available, add a fallback.
      // Existing feature layers are also unavailable.
    }
  }
}

Objective-C

@interface SampleViewController: UIViewController <GMSMapViewDelegate>
@end

@implementation SampleViewController
- (void)loadView {
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:[GMSMapID mapIDWithIdentifier:@"MAP_ID"] camera:[GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7]];
  mapView.delegete = self;
  self.view = mapView;
}

- (void)mapView:(GMSMapView *)mapView didChangeMapCapabilities:(GMSMapCapabilityFlags)mapCapabilities {
  if (!(mapCapabilities & GMSMapCapabilityFlagsDataDrivenStyling)) {
    // Data-driven styling is *not* available, add a fallback.
    // Existing feature layers are also unavailable.
  }
}
@end