Dataset zu einem Karten- und Stil-Dataset hinzufügen

Plattform auswählen: Android iOS JavaScript

Auf dieser Seite erfahren Sie, wie Sie einer Karte ein Dataset hinzufügen und Stile anwenden.

Screenshot mit Polygondaten mit benutzerdefinierten Stil

Vorbereitung

Bevor Sie fortfahren, sollten Sie eine Karten-ID, einen Kartenstil und eine Dataset-ID haben.

Dataset-ID mit Kartenstil verknüpfen

Um die Merkmale eines Datasets zu gestalten, wenden Sie eine Stilfunktion auf die Dataset-Featureebene einer Karte. Die Elementebene des Datasets wird erstellt, wenn Sie Ein Dataset mit einem Kartenstil verknüpfen.

So verknüpfen Sie das Dataset mit dem Kartenstil:

  1. Rufen Sie in der Google Cloud Console die Seite Datasets auf.
  2. Klicken Sie auf den Namen des Datasets. Daraufhin wird die Seite Dataset-Details angezeigt.
  3. Klicken Sie auf den Tab Vorschau.
  4. Klicken Sie im Abschnitt Verknüpfte Kartenstile auf KARTENSTIL HINZUFÜGEN.
    Screenshot der Schaltfläche KARTENSTIL HINZUFÜGEN.
  5. Kreuzen Sie die Kästchen für die zu verknüpfenden Kartenstile an und klicken Sie dann auf SPEICHERN.
.

Stile auf das Dataset anwenden

So wenden Sie Stile auf ein Dataset an:

  1. Erstellen Sie eine Stil-Factory-Funktion, die die FeatureLayer.StyleFactory . Diese Funktion definiert die Stillogik für ein Dataset.

  2. Anruf FeatureLayer.setFeatureStyle() um die Stilfabrik-Funktion auf jedes Element im Dataset anzuwenden.

Stil-Factory-Funktion erstellen

Die Stilfabrik wird auf jedes Element im Dataset angewendet zu dem Zeitpunkt, zu dem Sie die Funktion auf der Feature-Ebene festlegen. Diese Funktion muss FeatureStyle zurückgeben -Objekt, das den Stil des Polygons angibt.

Wenn die Stil-Factory null zurückgibt, wird das entsprechende Element nicht gerendert. Weitere Informationen Weitere Informationen finden Sie unter Stile aus einer Ebene entfernen.

Das Maps SDK for Android übergibt eine Feature -Instanz der Stil-Factory-Funktion. Die Instanz Feature stellt den Metadaten des Elements erstellen und so Zugriff auf die Metadaten in der Stilfabrik erhalten. .

Die Stil-Factory-Funktion sollte immer konsistente Ergebnisse zurückgeben, wenn angewendet. Wenn Sie zum Beispiel eine Reihe von Elementen nach dem Zufallsprinzip einfärben möchten, nicht in der Stilfunktion für Elemente erfolgen, da dies unbeabsichtigte Resultate verursachen.

Da diese Funktion für jedes Element in einer Ebene ausgeführt wird, ist die Optimierung wichtig. Um Auswirkungen auf die Rendering-Zeiten zu vermeiden, rufen Sie FeatureLayer.setFeatureStyle(null), wenn eine Element-Ebene nicht mehr verwendet wird.

Sie können auch FeatureLayer.getDatasetId() aufrufen, um die ID des Datasets abzurufen.

Strich, Füllung und Punktradius festlegen

Beim Gestalten eines Elements in der Stil-Factory-Funktion können Sie Folgendes festlegen:

  • Strichfarbe und Deckkraft des Rahmens gemäß Definition im Color . Der Standardwert ist transparent (Color.TRANSPARENT).

  • Strichbreite des Rahmens in Bildschirmpixeln. Der Standardwert liegt bei 2.

  • Füllfarbe und Deckkraft, wie in den Color . Der Standardwert ist transparent (Color.TRANSPARENT).

  • Der Punktradius eines Punktelements muss zwischen 0 und 128 Pixeln liegen.

Einfache Stilregeln verwenden

Die einfachste Möglichkeit, Stile für Elemente festzulegen, ist das Definieren eines FeatureLayer.StyleFactory. mit der immer ein identisches FeatureStyle-Objekt erstellt wird, . Wenden Sie Stiloptionen für Elemente direkt auf eine Elementebene des Datasets an oder verwenden Sie in Verbindung mit einem FeatureStyleFunction.

Deklarative Stilregeln verwenden

Sie können Stilregeln deklarativ basierend auf einem Elementattribut festlegen, und wenden sie auf das gesamte Dataset an. Du kannst null über dein Stilfunktion für Elemente, z. B. wenn eine Teilmenge von Elementen beibehalten werden soll unsichtbar sind.

Verwenden Sie beispielsweise die Methode DatasetFeature.getDatasetAttributes(), um eine Map<String,String> von Dataset-Attributen für ein Element. Sie können dann Den Stil des Elements basierend auf seinen Attributen anpassen

In diesem Beispiel wird der Wert von „highlightColor“ bestimmt. Attribut von jedem eines Datasets zur Steuerung des Stils:

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

Stil auf die Dataset-Featureebene anwenden

In diesem Beispiel wird eine Stil-Factory-Funktion auf ein Polygon im Dataset angewendet. Element-Ebene. Mit der Stilfabrik-Funktion wird ein benutzerdefinierter Füll- und Strichstil angewendet. zum Polygon hinzufügen:

  1. Falls Sie dies noch nicht getan haben, folgen Sie den Schritten in Jetzt starten um eine neue Karten-ID und einen neuen Kartenstil zu erstellen. Achten Sie darauf, dass Datasets aktiviert sind. Element-Ebene.

  2. Rufen Sie beim Initialisieren der Karte einen Verweis auf die Feature-Ebene „Datasets“ ab.

    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. Stil-Factory-Funktion erstellen und auf Datasets anwenden Element-Ebene.

    Im folgenden Beispiel wird dieselbe Füllung und dieselbe Kontur auf alle Elemente angewendet. im Dataset.

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

Stile von einer Ebene entfernen

Um Stile von einer Ebene zu entfernen, rufen Sie FeatureLayer.setFeatureStyle(null) auf.

Du kannst auch null aus deiner Stilfabrik zurückgeben, z. B. wenn du dass ein Teil der Funktionen unsichtbar bleibt.