Come usare i modelli di immagine

Le immagini possono essere usate con marcatori HTML e vari livelli all'interno dell'SDK Web di Mappe di Azure:

  • I livelli simbolo possono eseguire il rendering dei punti sulla mappa con un'icona dell'immagine. È anche possibile eseguire il rendering dei simboli lungo un percorso di linee.
  • È possibile eseguire il rendering dei livelli poligono con un'immagine del motivo di riempimento.
  • I marcatori HTML possono eseguire il rendering dei punti usando immagini e altri elementi HTML.

Per garantire prestazioni ottimali con i livelli, caricare le immagini nella risorsa sprite dell'immagine della mappa prima del rendering. IconOptions, di SymbolLayer, precarica un paio di immagini di marcatore in pochi colori nello sprite dell'immagine della mappa, per impostazione predefinita. Queste immagini di marcatore e altro ancora sono disponibili come modelli SVG. Possono essere usati per creare immagini con scale personalizzate o usate come colore primario e secondario del cliente. In totale sono disponibili 42 modelli di immagine: 27 icone dei simboli e 15 modelli di riempimento poligono.

I modelli di immagine possono essere aggiunti alle risorse sprite dell'immagine della mappa usando la funzione map.imageSprite.createFromTemplate. Questa funzione consente di passare fino a cinque parametri;

createFromTemplate(id: string, templateName: string, color?: string, secondaryColor?: string, scale?: number): Promise<void>

id è un identificatore univoco creato. L'oggetto id viene assegnato all'immagine quando viene aggiunto allo sprite dell'immagine di mappe. Usare questo identificatore nei livelli per specificare quale risorsa immagine eseguire il rendering. templateName specifica il modello di immagine da usare. L'opzione color imposta il colore principale dell'immagine mentre le opzioni secondaryColor impostano il colore secondario dell'immagine. L'opzione scale ridimensiona il modello di immagine prima di applicarlo allo sprite dell'immagine. Quando l'immagine viene applicata allo sprite dell'immagine, viene convertita in un file PNG. Per garantire un rendering nitido, è preferibile aumentare le prestazioni del modello di immagine prima di aggiungerlo allo sprite, piuttosto che aumentare le prestazioni in un livello.

Questa funzione carica in modo asincrono l'immagine nello sprite dell'immagine. Restituisce quindi una promessa che è possibile attendere il completamento di questa funzione.

Il codice seguente illustra come creare un'immagine da uno dei modelli predefiniti, quindi usarla con un livello simbolo.

map.imageSprite.createFromTemplate('myTemplatedIcon', 'marker-flat', 'teal', '#fff').then(function () {

   //Add a symbol layer that uses the custom created icon.
   map.layers.add(new atlas.layer.SymbolLayer(datasource, null, {
      iconOptions: {
         image: 'myTemplatedIcon'
      }
   }));
});

Usare un modello di immagine con un livello simbolo

Dopo aver caricato un modello di immagine nello sprite dell'immagine della mappa, è possibile eseguirne il rendering come simbolo in un livello simbolo facendo riferimento all'ID risorsa immagine nell'opzione image di iconOptions.

L'esempio di livello Simbolo con modello di icona predefinito illustra come eseguire questa operazione eseguendo il rendering di un livello simbolo con il modello di immagine marker-flat con un colore primario verde acqua e un colore secondario bianco, come illustrato nello screenshot seguente.

Screenshot che mostra una mappa che mostra un livello simbolo in cui si utilizza il modello di immagine piatta con un colore primario verde acqua e un colore secondario bianco.

Per il codice sorgente per questo esempio, vedere Livello Simbolo con codice di esempio di modello di icona predefinito.

Usare un modello di immagine lungo un percorso di linee

Dopo aver caricato un modello di immagine nello sprite dell'immagine della mappa, è possibile eseguirne il rendering lungo il percorso di una linea aggiungendo un oggetto LineString a un'origine dati e usando un livello Simbolo con un'opzione lineSpacing e facendo riferimento all'ID della risorsa immagine nell'opzione image di th iconOptions.

Il livello Linea con il modello di icona predefinito illustra come eseguire questa operazione. Come illustrato nello screenshot seguente, esegue il rendering di una linea rossa sulla mappa e usa un livello simbolo usando il modello di immagine car con un colore primario blu Dodger e un colore secondario bianco. Per il codice sorgente per questo esempio, vedere Livello Linea con codice di esempio di modello di icona predefinito.

Screenshot che mostra una mappa che mostra un livello linea che contrassegna il percorso con le icone delle auto lungo il percorso.

Suggerimento

Se il modello di immagine punta verso l'alto, impostare l'opzione icona rotation del livello Simbolo su 90 se si desidera che punti nella stessa direzione della linea.

Usare un modello di immagine con un livello poligono

Dopo aver caricato un modello di immagine nello sprite dell'immagine della mappa, è possibile eseguirne il rendering come motivo di riempimento in un livello poligono facendo riferimento all'ID risorsa immagine nell'opzione fillPattern del livello.

L'esempio di Riempire il poligono con il modello di icona predefinito illustra come eseguire il rendering di un livello poligono usando il modello di immagine dot con un colore primario rosso e un colore secondario trasparente, come illustrato nello screenshot seguente. Per il codice sorgente per questo esempio, vedere Riempire il poligono con il codice di esempio del modello di icona predefinito.

Screenshot che mostra una mappa che mostra un livello poligono usando il modello di immagine punto con un colore primario rosso e un colore secondario trasparente.

Suggerimento

L'impostazione del colore secondario dei motivi di riempimento rende più semplice vedere la mappa sottostante fornendo comunque il motivo primario.

Usare un modello di immagine con un marcatore HTML

Un modello di immagine può essere recuperato usando la funzione altas.getImageTemplate e usato come contenuto di un marcatore HTML. Il modello può essere passato all'opzione htmlContent del marcatore e quindi personalizzato usando le opzioni color, secondaryColor e text.

L'esempio di Marcatore HTML con modello di icona predefinito illustra l'uso del modello marker-arrow con un colore primario rosso, un colore secondario rosa e un valore di testo "00", come illustrato nello screenshot seguente. Per il codice sorgente per questo esempio, vedere Marcatore HTML con modello di icona predefinito.

Screenshot della mappa che mostra il modello di freccia del marcatore con colori secondari primari e rosa rossi e 00 all'interno della freccia rossa.

Suggerimento

I modelli di immagine possono essere usati anche all'esterno della mappa. La funzione getImageTemplate restituisce una stringa SVG con segnaposto; {color}, {secondaryColor}, {scale} e {text}. Sostituire questi valori segnaposto per creare una stringa SVG valida. È quindi possibile aggiungere la stringa SVG direttamente al DOM HTML oppure convertirla in un URI di dati e inserirla in un tag immagine. Ad esempio:

//Retrieve an SVG template and replace the placeholder values.
var svg = atlas.getImageTemplate('marker').replace(/{color}/, 'red').replace(/{secondaryColor}/, 'white').replace(/{text}/, '').replace(/{scale}/, 1);

//Convert to data URI for use in image tags.
var dataUri = 'data:image/svg+xml;base64,' + btoa(svg);

Creare modelli riutilizzabili personalizzati

Se l'applicazione usa la stessa icona all'interno di moduli diversi o se si sta creando un modulo che aggiunge altri modelli di immagine, è possibile aggiungere e recuperare facilmente queste icone dall'SDK Web di Mappe di Azure. Usare le funzioni statiche seguenti nello spazio dei nomi atlas.

Nome Tipo restituito Descrizione
addImageTemplate(templateName: string, template: string, override: boolean) Aggiunge un modello di immagine SVG personalizzato allo spazio dei nomi atlas.
getImageTemplate(templateName: string, scale?: number) string Recupera un modello SVG in base al nome.
getAllImageTemplateNames() string[] Recupera un modello SVG in base al nome.

I modelli di immagine SVG supportano i valori segnaposto seguenti:

Segnaposto Descrizione
{color} Colore principale.
{secondaryColor} Il colore secondario.
{scale} L'immagine SVG viene convertita in un'immagine png quando viene aggiunta allo sprite dell'immagine della mappa. Questo segnaposto può essere usato per ridimensionare un modello prima che venga convertito per assicurarsi che venga eseguito il rendering in modo chiaro.
{text} Posizione in cui eseguire il rendering del testo quando viene usato con un marcatore HTML.

L'esempio Aggiungere modello di icona personalizzato allo spazio dei nomi atlas illustra come acquisire un modello SVG e aggiungerlo all'SDK Web di Mappe di Azure come modello di icona riutilizzabile, come illustrato nello screenshot seguente. Per il codice sorgente per questo esempio, vedere Aggiungere modello di icona personalizzato allo spazio dei nomi atlas.

Screenshot che mostra una mappa che mostra un livello poligono nella forma di un grande triangolo verde con più immagini di ancoraggi blu all'interno.

Elenco di modelli di immagine

Questa tabella elenca tutti i modelli di immagine attualmente disponibili nell'SDK Web di Mappe di Azure. Il nome del modello è sopra ogni immagine. Per impostazione predefinita, il colore principale è blu e il colore secondario è bianco. Per semplificare la visualizzazione del colore secondario su uno sfondo bianco, le immagini seguenti hanno il colore secondario impostato su nero.

Modelli di icone dei simboli

marker

marcatore-spesso

marker-circle

marker-flat

icona del marcatore

icona marcatore-spesso

icona marcatore-cerchio

icona marcatore-piatto


marcatore quadrato

marker-square-cluster

marcatore-freccia

marker-ball-pin

icona marcatore-quadrato

icona marcatore-quadrato-cluster

icona marcatore-freccia

icona marcatore-perno-sferico


marker-square-rounded

marker-square-rounded-cluster

flag

contrassegno-triangolo

icona marcatore-quadrato-arrotondato

icona marcatore-quadrato-arrotondato-cluster

icona flag

icona contrassegno-triangolo


triangolo

triangolo-spesso

triangle-arrow-up

triangle-arrow-left

icona triangolo

icona triangolo-spesso

icona triangolo-freccia-su

triangle-arrow-left icon


hexagon

hexagon-thick

hexagon-rounded

hexagon-rounded-thick

icona esagono

icona esagono spesso

icona esagono-arrotondato

icona esagono-arrotondato-spesso


pin

perno-rotondo

arrotondato-quadrato

arrotondato-quadrato-spesso

icona Aggiungi

icona perno-rotondo

icona arrotondato-quadrato

icona arrotondato-quadrato-spesso


freccia-su

freccia-su-sottile

car

 

icona freccia-su

icona freccia su-sottile

icona auto

 

Modelli di motivi di riempimento dei poligoni

checker

checker-ruotato

cerchi

cerchi distanziati

icona checker

icona checker ruotato

icona cerchi

icona cerchi distanziati


diagonal-lines-up

diagonal-lines-down

diagonal-stripes-up

diagonal-stripes-down

icona linee diagonali verso l'alto

icona diagonali verso il basso

icona strisce diagonali verso l'alto

icona strisce diagonali verso il basso


linee griglia

linee griglia ruotate

strisce griglia ruotate

riempimento x

icona linee griglia

icona linee griglia ruotate

icona strisce griglia ruotate

icona di riempimento x


zig-zag

zig-zag-vertical

punti

 

icona zig-zag

icona zig-zag-verticale

icona puntini

 


Icone di immagine precaricate

La mappa precarica un set di icone nello sprite dell'immagine di mappe usando i modelli marker, pin e pin-round. Questi nomi di icona e i relativi valori di colore sono elencati nella tabella seguente.

nome dell'icona color secondaryColor
marker-black #231f20 #ffffff
marker-blue #1a73aa #ffffff
marker-darkblue #003963 #ffffff
marker-red #ef4c4c #ffffff
marker-yellow #f2c851 #ffffff
pin-blue #2072b8 #ffffff
pin-darkblue #003963 #ffffff
pin-red #ef4c4c #ffffff
pin-round-blue #2072b8 #ffffff
pin-round-darkblue #003963 #ffffff
pin-round-red #ef4c4c #ffffff

Provalo ora strumento

Con lo strumento seguente è possibile eseguire il rendering dei diversi modelli di immagine predefiniti in vari modi e personalizzare i colori e la scala primari e secondari.


Passaggi successivi

Per altre informazioni sulle classi e sui metodi usati in questo articolo, vedere:

Vedere gli articoli seguenti per altri esempi di codice in cui è possibile usare i modelli di immagine: