Mapbox GL AddLayer: Woher kommen die Symbolbilder?

10

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 markersin die Quelle setzen? Das Beispiel ist nicht sehr gut dokumentiert.

tobias47n9e
quelle
Haben Sie den Abschnitt "Stilreferenz" in den API-Dokumenten überprüft?
Tangnar
3
Es ist meiner Meinung nach nicht sehr gut erklärt. Würde gerne ein gut erklärtes Arbeitsbeispiel sehen.
tobias47n9e

Antworten:

13

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:

map.addLayer({
    "id": "pointclick",
    type: 'symbol',
    source: 'pointclick',
    "layout": {
        "icon-image": "harbor_icon",
        "icon-size":1.5
    },
    "paint": {}
});

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.Geben Sie hier die Bildbeschreibung ein

CCantey
quelle
0

Wie in Sprite-Dokumenten gesagt : Gehen Sie"sprite": "https://link" zu Ihrem Stil über, in dem der linkLink 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'.

Mikroraum
quelle