In vielen Beispielen wird das Symbolbild immer so geladen (Beispiel hier: https://www.mapbox.com/mapbox-gl-js/example/geojson-markers/ ):
map.addLayer({
"id": "markers",
"type": "symbol",
"source": "markers",
"layout": {
"icon-image": "{marker-symbol}-15",
"text-field": "{title}",
"text-font": ["Open Sans Semibold", "Arial Unicode MS Bold"],
"text-offset": [0, 0.6],
"text-anchor": "top"
}
});
Wo ist dieses Symbol gespeichert und wie kann ich eine Verknüpfung zu einem lokalen PNG oder SVG herstellen? Oder wie kann ich meine eigenen markers
in die Quelle setzen? Das Beispiel ist nicht sehr gut dokumentiert.
Antworten:
Wenn Sie den Beispielen folgen, erhalten Sie nur die Sprites, die mit dem Sprite Sheet Ihres bestimmten Stils geladen werden. Dies ist NICHT NOTWENDIG eine 1: 1-Übereinstimmung mit einem anderen Stil.
Beispiel: smaragd-v8 hat KEIN "Symbol-Bild": "Hafen-15" wie das Beispiel, das Straßen-v8 verwendet.
So zeigen Sie die Liste der verfügbaren Sprites aus den entsprechenden Stilen an: https://github.com/mapbox/mapbox-gl-styles/tree/master/sprites
Ich kann das "Hafen" -Symbol aus ihrem Smaragd-v8-Repository wie folgt auswählen:
Hier ist die Ressource, die mir geholfen hat, alles zusammenzuführen, und die erklärt, wie Sie Ihre eigenen Symbole erstellen: https://www.mapbox.com/help/custom-markers/#locate-mapbox-styles-images
BEARBEITEN:
Um eines Ihrer eigenen Symbole hinzuzufügen, gehen Sie in Mapbox Studio, erstellen Sie Ihren eigenen Stil oder bearbeiten Sie eines davon. Fügen Sie einfach eine Ihrer eigenen SVGs hinzu, und dieses Symbol wird Ihnen in Ihrem benutzerdefinierten Sprite-Sheet zur Verfügung stehen.
quelle
Sie können auch externe / generierte Symbole verwenden, als
icon-image
ob Siemap.loadImage()
undmap.addImage()
zuerst verwenden.Beispiele:
Fügen Sie der Karte ein Symbol hinzu
Fügen Sie der Karte ein generiertes Symbol hinzu
quelle
Wie in Sprite-Dokumenten gesagt : Gehen Sie
"sprite": "https://link"
zu Ihrem Stil über, in dem derlink
Link zu json mit spritezero-cli erstellt wurde . spritezero-cli hat ein PNG-Sprite aus der Liste Ihrer Symbole im SVG-Format generiert. Dass Sie Symbole in Symbolebenen als verwenden können'icon-image'
.quelle