Aggiungi set di dati a una mappa e a un set di dati di stili

Seleziona la piattaforma: Android iOS JavaScript

Questa pagina mostra come aggiungere un set di dati a una mappa e applicare gli stili.

Uno screenshot che mostra i dati dei poligoni con stili applicati.

Prerequisiti

Prima di procedere, devi avere un ID mappa, uno stile di mappa e un ID set di dati.

Associare un ID set di dati a uno stile di mappa

Per applicare uno stile alle caratteristiche di un set di dati, devi applicare una funzione di stile alla livello delle caratteristiche del set di dati di una mappa. Il livello delle caratteristiche del set di dati viene creato quando associare un set di dati a uno stile di mappa.

Per associare il set di dati allo stile di mappa:

  1. Nella console Google Cloud, vai alla pagina Set di dati.
  2. Fai clic sul nome del set di dati. Viene visualizzata la pagina Dettagli del set di dati.
  3. Fai clic sulla scheda Anteprima.
  4. Nella sezione Stili di mappa associati, fai clic su AGGIUNGI STILE MAPPA.
    Screenshot del pulsante AGGIUNGI STILE MAPPA.
  5. Fai clic sulle caselle di controllo degli Stili di mappa da associare, quindi fai clic su SALVA.
di Gemini Advanced.

Applica stili al set di dati

Per applicare gli stili a un set di dati:

  1. Crea una funzione di fabbrica dello stile che implementi la funzione FeatureLayer.StyleFactory a riga di comando. Questa funzione definisce la logica dell'applicazione di stili per un set di dati.

  2. Chiama FeatureLayer.setFeatureStyle() per applicare la funzione di fabbrica dello stile a ogni caratteristica nel set di dati.

Crea una funzione di fabbrica dello stile

La funzione di fabbrica dello stile viene applicata a ogni caratteristica nel set di dati nel momento in cui imposti la funzione nel livello delle caratteristiche. Questa funzione deve restituisce un FeatureStyle che specifica lo stile del poligono.

Se lo stile di fabbrica restituisce null, la caratteristica specificata non viene visualizzata. Per ulteriori informazioni informazioni, consulta la sezione Rimuovere lo stile da un livello.

Maps SDK for Android trasmette un Feature alla funzione di stile di fabbrica. L'istanza Feature rappresenta dei metadati della caratteristica, consentendoti di accedere ai metadati nella fabbrica di stili. personalizzata.

La funzione di fabbrica dello stile deve sempre restituire risultati coerenti quando è applicati. Ad esempio, per colorare in modo casuale un insieme di caratteristiche, parte casuale non dovrebbe avvenire nella funzione di stile delle caratteristiche, in quanto potrebbero causare risultati indesiderati.

Poiché questa funzione viene eseguita su ogni caratteristica di un livello, l'ottimizzazione viene importanti. Per evitare di influire sui tempi di rendering, chiama FeatureLayer.setFeatureStyle(null) quando un livello delle funzionalità non è più in uso.

Puoi anche chiamare FeatureLayer.getDatasetId() per ottenere l'ID del set di dati.

Impostazione di tratto, riempimento e raggio di punti

Quando stili una caratteristica nella funzione di fabbrica dello stile, puoi impostare:

  • Colore tratto e opacità del bordo come definito dal Color . Il valore predefinito è trasparente (Color.TRANSPARENT).

  • Spessore tratto del bordo in pixel sullo schermo. Il valore predefinito è 2.

  • Colore di riempimento e opacità come definito dal Color . Il valore predefinito è trasparente (Color.TRANSPARENT).

  • Raggio punto di un elemento punto compreso tra 0 e 128 pixel.

Usa regole di stile semplici

Il modo più semplice per applicare uno stile alle caratteristiche è definire un FeatureLayer.StyleFactory che crea sempre un oggetto FeatureStyle identico, indipendentemente funzionalità. Applica le opzioni di stile delle caratteristiche direttamente a un livello delle caratteristiche del set di dati oppure utilizza insieme a un FeatureStyleFunction.

Utilizzare regole di stile dichiarative

Puoi impostare regole di stile in modo dichiarativo in base a un attributo delle caratteristiche, e applicarle all'intero set di dati. Puoi restituire null dal tuo funzione di stile delle caratteristiche, ad esempio se vuoi che un sottoinsieme di caratteristiche resti invisibile.

Ad esempio, utilizza il metodo DatasetFeature.getDatasetAttributes() per restituire un Map<String,String> degli attributi del set di dati per una caratteristica. Puoi quindi personalizzare lo stile dell'elemento in base ai suoi attributi.

Questo esempio determina il valore di "highlightColor" di ogni elemento di un set di dati per controllare lo stile:

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

Applica lo stile al livello delle caratteristiche del set di dati

In questo esempio viene applicata una funzione di fabbrica di stili a un poligono nel set di dati. degli elementi. La funzione di fabbrica dello stile applica uno stile di riempimento e tratto personalizzati al poligono:

  1. Se non lo hai già fatto, segui la procedura descritta in Inizia per creare un nuovo ID mappa e un nuovo stile di mappa. Assicurati di abilitare i Set di dati degli elementi.

  2. Ottieni un riferimento al livello delle caratteristiche Set di dati durante l'inizializzazione della mappa.

    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. crea una funzione di fabbrica dello stile e applicala ai set di dati degli elementi.

    L'esempio seguente applica lo stesso riempimento e tratto a tutte le caratteristiche nel set di dati.

    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); }

Rimuovere lo stile da un livello

Per rimuovere lo stile da un livello, chiama FeatureLayer.setFeatureStyle(null).

Puoi anche restituire null presso la tua fabbrica di stile, ad esempio se vuoi che un sottoinsieme di caratteristiche resti invisibile.