Ajouter un ensemble de données à un ensemble de données de carte et de style

Sélectionnez une plate-forme : Android iOS JavaScript

Cette page explique comment ajouter un ensemble de données à une carte et appliquer un style.

Capture d'écran montrant des données de polygone stylisées.

Prérequis

Avant de continuer, vous devez disposer d'un ID de carte, d'un style de carte et d'un ID d'ensemble de données.

Associer un ID d'ensemble de données à un style de carte

Pour styliser les éléments géographiques d'un ensemble de données, vous appliquez une fonction de style aux calque d'éléments géographiques d'un ensemble de données d'une carte. Le calque d'éléments géographiques de l'ensemble de données est créé lorsque associer un ensemble de données à un style de carte ;

Pour associer votre ensemble de données au style de carte:

  1. Dans la console Google Cloud, accédez à la page Ensembles de données.
  2. Cliquez sur le nom de l'ensemble de données. La page Détails de l'ensemble de données s'affiche.
  3. Cliquez sur l'onglet Aperçu.
  4. Dans la section Styles de carte associés, cliquez sur AJOUTER UN STYLE DE CARTE.
    Capture d'écran du bouton AJOUTER UN STYLE DE CARTE
  5. Cochez les cases des styles de carte à associer, puis cliquez sur ENREGISTRER.

Appliquer des styles à l'ensemble de données

Pour appliquer des styles à un ensemble de données, procédez comme suit:

  1. Créez une fonction de fabrique de styles qui implémente le FeatureLayer.StyleFactory de commande. Cette fonction définit la logique de stylisation pour un ensemble de données.

  2. Appeler FeatureLayer.setFeatureStyle() pour appliquer la fonction de fabrique de styles à chaque caractéristique de l'ensemble de données.

Créer une fonction de fabrique de styles

La fonction de fabrique de styles est appliquée à chaque élément géographique de l'ensemble de données au moment où vous définissez la fonction sur le calque d'éléments géographiques. Cette fonction ne doit renvoyer un FeatureStyle spécifiant comment styliser le polygone.

Si la fabrique de styles renvoie null, l'élément cartographique donné n'est pas affiché. Pour plus d'informations, consultez l'article Supprimer le style d'un calque.

Le SDK Maps pour Android transmet un Feature à la fonction de fabrique de style. L'instance Feature représente les métadonnées de la caractéristique, ce qui vous donne accès aux métadonnées de la fabrique de styles .

La fonction de fabrique de style doit toujours renvoyer des résultats cohérents appliquée. Par exemple, si vous souhaitez colorer un ensemble d'éléments de manière aléatoire, une partie aléatoire ne doit pas avoir lieu dans la fonction de style d'éléments géographiques, peut entraîner des résultats inattendus.

Étant donné que cette fonction s'exécute sur chaque élément d'un calque, il est important de l'optimiser. Pour éviter d'affecter les délais d'affichage, appelez FeatureLayer.setFeatureStyle(null) lorsqu'un calque d'éléments n'est plus utilisé.

Vous pouvez également appeler FeatureLayer.getDatasetId() pour obtenir l'ID de l'ensemble de données.

Définir le trait, le remplissage et le rayon des points

Lorsque vous appliquez un style à un élément géographique dans la fonction de fabrique de styles, vous pouvez définir les éléments suivants:

  • Couleur et opacité du trait de la bordure, telles que définies par les Color . La valeur par défaut est transparente (Color.TRANSPARENT).

  • Largeur du trait de la bordure en pixels de l'écran. La valeur par défaut est "2".

  • Couleur et opacité de remplissage, telles que définies par le Color . La valeur par défaut est transparente (Color.TRANSPARENT).

  • Rayon d'un point d'un élément géographique de type point compris entre 0 et 128 pixels.

Utiliser des règles de style simples

Le moyen le plus simple de styliser les éléments géographiques est de définir un FeatureLayer.StyleFactory. qui crée toujours un objet FeatureStyle identique, quel que soit le . Appliquez les options de style d'éléments géographiques directement au calque d'éléments géographiques d'un ensemble de données ou utilisez conjointement avec un FeatureStyleFunction.

Utiliser des règles de style déclaratives

Vous pouvez définir des règles de style déclaratives basées sur un attribut d'élément géographique, et les appliquer à l'ensemble de données complet. Vous pouvez retourner null depuis votre fonction de style d'éléments géographiques, par exemple pour conserver un sous-ensemble d'éléments géographiques invisibles.

Par exemple, utilisez la méthode DatasetFeature.getDatasetAttributes() pour renvoyer une Map<String,String> des attributs de l'ensemble de données pour un élément géographique. Vous pouvez ensuite personnaliser le style de l'élément géographique en fonction de ses attributs ;

Cet exemple détermine la valeur de la variable "highlightColor" de chaque caractéristique d'un ensemble de données pour contrôler le style:

Kotlin

// Get the dataset feature, so we can work with all of its attributes.
val datasetFeature: DatasetFeature = feature as DatasetFeature
// Create a switch statement based on the value of the // "highlightColor" attribute of the dataset. val attributeColor: MutableMap<String, String> = datasetFeature.getDatasetAttributes() when (attributeColor["highlightColor"]) { "Black" -> { ... } "Red" -> { ... } else -> { ... } }

Java

// Get the dataset feature, so we can work with all of its attributes.
DatasetFeature datasetFeature = (DatasetFeature) feature;
// Create a switch statement based on the value of the // "highlightColor" attribute of the dataset. Map<String, String> attributeColor = datasetFeature.getDatasetAttributes(); switch(attributeColor.get("highlightColor")) { case "Black": ... break; case "Red": ... break; default: // Color not defined. ... break; }

Appliquer un style au calque d'éléments géographiques de l'ensemble de données

Cet exemple applique une fonction de fabrique de style à un polygone de l'ensemble de données d'un calque d'éléments géographiques. La fonction de fabrique de styles applique un style de remplissage et de trait personnalisé au polygone:

  1. Si vous ne l'avez pas déjà fait, suivez les étapes de l'article Premiers pas pour créer un ID et un style de carte. Veillez à activer les ensembles de données d'un calque d'éléments géographiques.

  2. Obtenez une référence au calque d'éléments géographiques "Ensembles de données" lors de l'initialisation de la carte.

    Kotlin

    private var datasetLayer: FeatureLayer? = null
    override fun onMapReady(googleMap: GoogleMap) { // Get the DATASET feature layer. datasetLayer = googleMap.getFeatureLayer(FeatureLayerOptions.Builder() .featureType(FeatureType.DATASET) // Specify the dataset ID. .datasetId(YOUR_DATASET_ID) .build())
    // Apply style factory function to DATASET layer. styleDatasetsLayer() }

    Java

    private FeatureLayer datasetLayer;
    @Override public void onMapReady(GoogleMap map) { // Get the DATASET feature layer. datasetLayer = map.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.DATASET) // Specify the dataset ID. .datasetId(YOUR_DATASET_ID) .build());
    // Apply style factory function to DATASET layer. styleDatasetsLayer(); }

  3. Créer une fonction de fabrique de styles et l'appliquer aux ensembles de données d'un calque d'éléments géographiques.

    L'exemple suivant applique le même remplissage et le même trait à tous les éléments géographiques dans l'ensemble de données.

    Kotlin

    private fun styleDatasetsLayer() {
    // Create the style factory function. val styleFactory = FeatureLayer.StyleFactory { feature: Feature ->
    // Check if the feature is an instance of DatasetFeature. if (feature is DatasetFeature) {
    return@StyleFactory FeatureStyle.Builder() // Define a style with green fill at 50% opacity and // solid green border. .fillColor(0x8000ff00.toInt()) .strokeColor(0xff00ff00.toInt()) .strokeWidth(2F) .build() } return@StyleFactory null }
    // Apply the style factory function to the feature layer. datasetLayer?.setFeatureStyle(styleFactory) }

    Java

    private void styleDatasetsLayer() {
    // Create the style factory function. FeatureLayer.StyleFactory styleFactory = (Feature feature) -> {
    // Check if the feature is an instance of DatasetFeature. if (feature instanceof DatasetFeature) {
    return new FeatureStyle.Builder() // Define a style with green fill at 50% opacity and solid green border. .fillColor(0x8000ff00) .strokeColor(0xff00ff00) .strokeWidth(2F) .build(); } return null; };
    // Apply the style factory function to the feature layer. datasetLayer.setFeatureStyle(styleFactory); }

Supprimer le style d'un calque

Pour supprimer le style d'un calque, appelez FeatureLayer.setFeatureStyle(null).

Vous pouvez également renvoyer null à partir de votre fabrique de styles, par exemple si vous souhaitez qu'un sous-ensemble d'éléments géographiques reste invisible.