Начать

Выберите платформу: Android iOS JavaScript

Здесь рассказывается, как настроить стили на основе данных для наборов данных.

Как получить ключ API и включить API

Чтобы использовать стили на основе данных для наборов данных, вам понадобится облачный проект с платежным аккаунтом и включенные Maps SDK для iOS и Maps Datasets API. Дополнительную информацию можно найти в следующих статьях:

Создайте идентификатор карты

Идентификатор карты – это уникальный идентификатор, который представляет спецификацию Google Карты. Вы можете в любой момент создать идентификатор карты и обновить связанный с ним стиль в консоли Google Cloud.

Скриншот консоли Google Cloud

Создайте стиль карты

Чтобы создать стиль, следуйте инструкциям в статье Как создавать и использовать стили карты. Затем свяжите стиль с новым идентификатором карты.

Измените код инициализации карты

Для этого шага требуется идентификатор карты, связанный со стилем, в котором включен хотя бы один слой объектов. Чтобы проверить, правильно ли настроен идентификатор карты в Cloud Console, посмотрите, как он настроен в разделе Управление картами.

Swift

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

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

Objective-C

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

GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"];
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7];
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = camera;
options.mapID = mapID;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

Как проверить функции карты

Стили на основе данных для наборов данных подразумевают использование функций, которые активированы в консоли Google Cloud и связаны с идентификатором вашей карты. Поскольку идентификаторы карт могут меняться, вы можете вызвать mapView.mapCapabilities для GMSMapView, чтобы проверить, доступна ли определенная возможность (например, стили на основе данных), прежде чем вызывать ее.

Вы также можете отслеживать изменения в возможностях карты, подписавшись на GMSViewDelegate. В этом примере показано, как использовать протокол для проверки требований к стилям на основе данных.

Swift

class SampleViewController: UIViewController {

  private lazy var mapView: GMSMapView = {
    let options = GMSMapViewOptions()
    options.mapID = GMSMapID(identifier: "YOUR_MAP_ID")
    options.camera = GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7)
    return GMSMapView(options: options)
  }()

  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 {
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = camera;
  options.mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"];
  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
  mapView.delegate = 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

Дальнейшие действия