Mapbox GL AddLayer: da dove provengono le immagini delle icone


10

Molti esempi caricano sempre l'immagine dell'icona in questo modo (ad esempio qui: 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"
    }
});

Dove è memorizzata questa icona e come posso collegarmi a un png o svg locale? O come posso mettere il mio markersnella fonte? L'esempio non è ben documentato.


Hai controllato la sezione "riferimento di stile" dei documenti API?
Tangnar,

3
Secondo me non è molto ben spiegato. Mi piacerebbe vedere un esempio di lavoro ben spiegato.
Tobias47n9e,

Risposte:


13

Se segui gli esempi, otterrai solo gli sprite che si caricano con il foglio sprite del tuo stile particolare, che NON È NECESSARIO una corrispondenza 1 a 1 con qualsiasi altro stile.

es: emerald-v8 NON ha "icon-image": "harbor-15" come nell'esempio che usa streets-v8.

Per vedere l'elenco degli sprite disponibili dagli stili corrispondenti: https://github.com/mapbox/mapbox-gl-styles/tree/master/sprites

Posso scegliere l'icona "harbor" dal loro repository emerald-v8 in questo modo:

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

Ecco la risorsa che mi ha aiutato a mettere insieme tutto e spiega come creare le tue icone: https://www.mapbox.com/help/custom-markers/#locate-mapbox-styles-images

MODIFICARE:

Fondamentalmente, per aggiungere una delle tue icone, vai su Mapbox studio, crea il tuo stile o modifica una delle loro. Aggiungi semplicemente uno dei tuoi SVG personalizzati, quindi quell'icona diventerà disponibile nel tuo foglio sprite personalizzato.inserisci qui la descrizione dell'immagine



0

Come si dice nei documenti di sprite : passa "sprite": "https://link"al tuo stile, dove si linktrova il link a json generato con spritezero-cli . spritezero-cli ha generato png sprite dall'elenco delle tue icone in formato svg. Che puoi usare le icone nei livelli simbolo come 'icon-image'.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.