Überschreiben eines Labels im Mapbox Standard Style
Override a Label in the Mapbox Standard Style
Im Mapbox Standard Style wird die Komplexität des Layer-Stylings abstrahiert - Sie können es mit vordefinierten Variablen konfigurieren, aber Sie können seine Layer nicht direkt bearbeiten. Dies ist von Design und ermöglicht es Ihnen, von kontinuierlichen Verbesserungen unserer Kartendesigner zu profitieren. Was machst du also, wenn du ein Label brauchst, um etwas anderes zu sagen, auf einer anderen Zoomstufe zu erscheinen oder einfach gar nicht? Hier ist eine Technik zum chirurgischen Ersetzen eines einzelnen Etiketts durch Ihr eigenes, während alles andere im Standard-Stil unberührt bleibt und genau zum Etikettenstil passt. Im eingebetteten Beispiel unten haben wir das Label für "New York" durch "New Amsterdam" ersetzt. Warum sie es geändert haben, kann ich nicht sagen. 😉 Mit einem klassischen Stil? Wenn Sie auf einem klassischen Mapbox-Stil sind, wo Sie direkten Zugang zu...
Im Mapbox Standard Style wird die Komplexität des Layer-Stylings abstrahiert - Sie können es mit vordefinierten Variablen konfigurieren, aber Sie können seine Layer nicht direkt bearbeiten. Dies ist von Design und ermöglicht es Ihnen, von kontinuierlichen Verbesserungen unserer Kartendesigner zu profitieren. Was machst du also, wenn du ein Label brauchst, um etwas anderes zu sagen, auf einer anderen Zoomstufe zu erscheinen oder einfach gar nicht? Hier ist eine Technik zum chirurgischen Ersetzen eines einzelnen Etiketts durch Ihr eigenes, während alles andere im Standard-Stil unberührt bleibt und genau zum Etikettenstil passt. Im eingebetteten Beispiel unten haben wir das Label für "New York" durch "New Amsterdam" ersetzt. Warum sie es geändert haben, kann ich nicht sagen. 😉 Mit einem klassischen Stil? Wenn Sie sich in einem klassischen Mapbox-Stil befinden, in dem Sie direkten Zugriff auf das Bearbeiten von Symbolebenen haben, gibt es einen einfacheren Ansatz: Überschreiben Sie den Etikettentext mit einem Ausdruck direkt auf der Ebene. Siehe Anpassen von Etikettentext in den Mapbox-Dokumenten. In diesem Beitrag geht es speziell um den Standard-Stil, bei dem interne Schichten nicht editierbar sind - was eine andere Technik erfordert. Schritt 1: Erhalten Sie die genauen Koordinaten und Eigenschaften der Beschriftungsfunktion Die meisten Kartenbeschriftungen stammen aus der Quellebene im Mapbox Streets-Tileset. Hier ist eine einfache Karte, die nur die Punkte der Quellschicht (und Wassermerkmale als Referenz) zeigt. Klicken Sie auf ein Label und Sie sehen die vollständigen Daten, einschließlich der Koordinaten und Eigenschaften: Kopieren Sie die vollständige GeoJSON-Funktion. Felder wie , , , , und alle steuern, wie das Label gestylt wird und auf welchen Zoomstufen es erscheint. Sie müssen diese beim Aufbau Ihrer Ersatzfunktion abgleichen. Schritt 2: Erstellen Sie einen benutzerdefinierten Stil, der Standard importiert Anstatt den Standard-Style direkt zu laden, erstellen Sie einen Top-Level-Style JSON, der Standard importiert und fügt Ihre eigene Quelle hinzu: Die und URLs müssen auf die Assets des Standard-Styles verweisen. Ohne sie werden die Punktsymbole und Schriftarten, die von Settlement Labels verwendet werden, nicht aufgelöst. Schritt 3: Fügen Sie eine Ebene hinzu, die das Styling des Standardstils widerspiegelt Der Standardstil rendert Stadtlabels mit Ebenen wie und . Sie können diese überprüfen, indem Sie eine Karte im Standardstil aufrufen. Sie enthalten komplexe Mapbox Style-Ausdrücke zur Unterstützung von Konfigurationseigenschaften wie , , und . Für einen einfachen Ersatz können Sie diese Komplexität entfernen und die aufgelösten Werte für Ihre Zielvorgabe fest codieren. Hier ist, was sieht aus wie für eine , nicht-Kapital-Funktion in der Standard-Tag preset: Die Symbolplatzierungs-Engine des Renderers unterdrückt das ursprüngliche Etikett, wenn Ihr Ersatz denselben Standort einnimmt - in den meisten Fällen ist keine zusätzliche Arbeit erforderlich. Wenn das ursprüngliche Etikett durchblutet, können Sie eine kleine Schicht um den Punkt herum hinzufügen, um ihn explizit zu unterdrücken. Höhlen Diese Schicht gehört Ihnen zu pflegen. Der Mapbox Standard Stil wird aktiv gepflegt und aktualisiert. Wenn Mapbox ändert, wie Settlement-Etiketten in einer zukünftigen Version gestylt werden, wird Ihre benutzerdefinierte Ebene nicht automatisch folgen. Sie müssen die internen Ebenen erneut überprüfen und Ihre Konfiguration entsprechend aktualisieren. Hardcodierte Werte werden die Standard-Style-Konfiguration nicht respektieren. Indem Sie , , usw. auf ihre Standardwerte auflösen, haben Sie diese Anpassungshaken deaktiviert. Wenn Sie möchten, dass Ihr Label auf Design- oder Light-Voreingestellte Änderungen reagiert, fügen Sie die vollständige Konfiguration und das Schema anstelle von Hardcoding-Werten ein. Die Etikettenplatzierung ist kontextabhängig. Der Wert im Tileset wird basierend auf der umgebenden Etikettendichte zum Zeitpunkt der Fliesenerzeugung berechnet. In Isolation verwendet Ihr Etikett die richtige Ankerrichtung, aber die genaue Platzierung kann etwas anders aussehen als sie von anderen Etiketten umgeben wäre.