Commencer

Sélectionnez une plate-forme : iOS JavaScript

Afin d'utiliser le style basé sur les données pour les limites, vous devez créer un ID de carte. Vous devez ensuite créer un style de carte, sélectionner les calques d'éléments géographiques de délimitation requis et associer le style à votre ID de carte.

Créer un ID de carte

Un mapID est un identifiant unique qui représente une seule instance d'une carte Google. Vous pouvez créer des ID de carte et mettre à jour un style associé à un ID de carte à tout moment dans la console Google Cloud.

Une capture d'écran de la console Google Cloud

Créer un style de carte

Pour créer un style de carte, suivez les instructions de la section Gérer les styles de carte. Une fois l'opération terminée, associez le style à l'ID de carte que vous venez de créer.

Sélectionner des calques d'éléments

Dans la console Google Cloud, vous pouvez sélectionner les calques d'éléments à afficher. Cela détermine les types de limites qui apparaissent sur la carte (par exemple, les localités, les États, etc.).

Gérer les calques d'éléments géographiques

  1. Dans la console Google Cloud, accédez à la page "Styles de carte".

  2. Sélectionnez un projet si vous y êtes invité.

  3. Sélectionnez un style de carte.

  4. Cliquez sur le menu déroulant Calques d'éléments pour ajouter ou supprimer des calques.

  5. Cliquez sur Enregistrer pour enregistrer vos modifications et les appliquer à vos cartes.

Une capture d'écran montrant le menu déroulant.

Modifier le code d'initialisation de la carte

Cette étape nécessite qu'un ID de carte soit associé à un style ayant un ou plusieurs calques d'éléments activés. Pour vérifier que votre ID de carte est correctement configuré dans la console Cloud, vérifiez comment il est configuré sous Gestion des cartes.

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]];

Ajouter des calques d'éléments à une carte

Pour obtenir une référence à un calque d'éléments sur votre carte, appelez mapView.featureLayer(of:) lors de l'initialisation de la carte:

Swift

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

Objective-C

GMSFeatureLayer *layer = [mapView featureLayerOfFeatureType:GMSFeatureTypeLocality];

Vérifier les fonctionnalités de la carte

Le style basé sur les données pour les limites nécessite des fonctionnalités activées dans la console Google Cloud et associées à un ID de carte. Comme les ID de carte sont susceptibles de changer, vous pouvez appeler mapView.mapCapabilities sur un GMSMapView pour vérifier si une fonctionnalité spécifique (par exemple, le style basé sur les données) est disponible avant de l'appeler.

Vous pouvez également détecter les modifications des fonctionnalités de la carte en vous abonnant à GMSViewDelegate. Cet exemple montre comment utiliser le protocole pour vérifier les exigences des styles basés sur les données.

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