Il FeatureStyleFunction,
è dove definisci la logica per applicare in modo selettivo lo stile alle caratteristiche di un set di dati. Restituisce FeatureStyleOptions
in base a questa logica. Se non è necessaria una logica di applicazione dello stile, puoi utilizzare FeatureStyleOptions per impostare gli stili direttamente. Questa pagina mostra come aggiungere un set di dati a una mappa e applicare lo stile.
Prerequisiti
Prima di procedere, devi avere un ID mappa, uno stile di mappa e un ID set di dati.
Associare un ID set di dati a uno stile di mappa
Segui questi passaggi per associare il set di dati allo stile di mappa che stai utilizzando:
- Nella console Google Cloud, vai alla pagina Set di dati.
- Fai clic sul nome del set di dati. Viene visualizzata la pagina Dettagli set di dati.
- Fai clic sulla scheda Anteprima.
- Scorri fino a AGGIUNGI STILE DI MAPPA e fai clic.
- Fai clic sulle caselle di controllo degli stili di mappa da associare e poi su SALVA.
Utilizzare regole di stile semplici
Il modo più semplice per applicare lo stile alle caratteristiche è passare un FeatureStyleOptions per definire gli attributi di stile come colore, opacità e spessore della linea. Applica le opzioni di stile delle caratteristiche direttamente a un livello delle caratteristiche del set di dati o utilizzale insieme a un FeatureStyleFunction.
TypeScript
const styleOptions = { strokeColor: 'green', strokeWeight: 2, strokeOpacity: 1, fillColor: 'green', fillOpacity: 0.3, };
JavaScript
const styleOptions = { strokeColor: 'green', strokeWeight: 2, strokeOpacity: 1, fillColor: 'green', fillOpacity: 0.3, };
Utilizzare regole di stile dichiarative
Utilizza FeatureStyleFunction per impostare le regole di stile in modo dichiarativo e applicarle all'intero set di dati. Applica FeatureStyleOptions a una caratteristica in base ai valori degli attributi del set di dati. Puoi anche restituire null dalla funzione di stile delle caratteristiche, ad esempio se vuoi che un sottoinsieme di caratteristiche rimanga invisibile. Questo esempio mostra una funzione di stile che colora un insieme di punti in base agli attributi dei dati:
TypeScript
function setStyle(params: { feature: google.maps.Feature }) { // Get the dataset feature, so we can work with all of its attributes. const datasetFeature = params.feature as google.maps.DatasetFeature; // Get all of the needed dataset attributes. const furColors = datasetFeature.datasetAttributes.CombinationofPrimaryandHighlightColor; // Apply styles. Fill is primary fur color, stroke is secondary fur color. switch (furColors) { case 'Black+': return { fillColor: 'black', pointRadius: 8, }; break; case 'Cinnamon+': return { fillColor: '#8b0000', pointRadius: 8, }; break; case 'Cinnamon+Gray': return { fillColor: '#8b0000', strokeColor: 'gray', pointRadius: 6, }; break; case 'Cinnamon+White': return { fillColor: '#8b0000', strokeColor: 'white', pointRadius: 6, }; break; case 'Gray+': return { fillColor: 'gray', pointRadius: 8, }; break; case 'Gray+Cinnamon': return { fillColor: 'gray', strokeColor: '#8b0000', pointRadius: 6, }; break; case 'Gray+Cinnamon, White': return { fillColor: 'silver', strokeColor: '#8b0000', pointRadius: 6, }; break; case 'Gray+White': return { fillColor: 'gray', strokeColor: 'white', pointRadius: 6, }; break; default: // Color not defined. return { fillColor: 'yellow', pointRadius: 8, }; break; } }
JavaScript
function setStyle(params) { // Get the dataset feature, so we can work with all of its attributes. const datasetFeature = params.feature; // Get all of the needed dataset attributes. const furColors = datasetFeature.datasetAttributes.CombinationofPrimaryandHighlightColor; // Apply styles. Fill is primary fur color, stroke is secondary fur color. switch (furColors) { case 'Black+': return { fillColor: 'black', pointRadius: 8, }; break; case 'Cinnamon+': return { fillColor: '#8b0000', pointRadius: 8, }; break; case 'Cinnamon+Gray': return { fillColor: '#8b0000', strokeColor: 'gray', pointRadius: 6, }; break; case 'Cinnamon+White': return { fillColor: '#8b0000', strokeColor: 'white', pointRadius: 6, }; break; case 'Gray+': return { fillColor: 'gray', pointRadius: 8, }; break; case 'Gray+Cinnamon': return { fillColor: 'gray', strokeColor: '#8b0000', pointRadius: 6, }; break; case 'Gray+Cinnamon, White': return { fillColor: 'silver', strokeColor: '#8b0000', pointRadius: 6, }; break; case 'Gray+White': return { fillColor: 'gray', strokeColor: 'white', pointRadius: 6, }; break; default: // Color not defined. return { fillColor: 'yellow', pointRadius: 8, }; break; } }
Applicare lo stile al livello delle caratteristiche del set di dati
Per applicare gli stili nella funzione di stile delle caratteristiche:
- Recupera il livello delle caratteristiche del set di dati chiamando
map.getDatasetFeatureLayer(), passando l'ID del set di dati. - Applica lo stile impostando le opzioni di stile delle caratteristiche (ad es.
styleOptions) o la funzione (ad es.setStyle) sul livello del set di dati.
TypeScript
// Dataset ID for NYC park data. const datasetId = 'a75dd002-ad20-4fe6-af60-27cd2ed636b4'; const datasetLayer = innerMap.getDatasetFeatureLayer(datasetId); datasetLayer.style = styleOptions;
JavaScript
// Dataset ID for NYC park data. const datasetId = 'a75dd002-ad20-4fe6-af60-27cd2ed636b4'; const datasetLayer = innerMap.getDatasetFeatureLayer(datasetId); datasetLayer.style = styleOptions;
Rimuovere lo stile da un livello
Per rimuovere lo stile da un livello, imposta style su null:
featureLayer.style = null;
Puoi anche restituire null dalla funzione di stile delle caratteristiche, ad esempio se vuoi che un sottoinsieme di caratteristiche rimanga invisibile.
Aggiungere testo di attribuzione
Quando visualizzi i set di dati caricati su Google Maps, la mappa deve mostrare le attribuzioni richieste. Il testo di attribuzione non deve oscurare o interferire con il logo Google.
Un modo per aggiungere testo di attribuzione è utilizzare i controlli personalizzati per inserire HTML arbitrario in posizioni standard sulla mappa. I seguenti snippet di codice mostrano l'HTML e il CSS utilizzati per le attribuzioni in questo esempio:
<gmp-map
center="40.757815, -73.933123"
zoom="11"
map-id="5cd2c9ca1cf05670"
map-type-control="false">
<div id="attribution" slot="control-block-end-inline-start">
Data source: NYC Open Data
</div>
</gmp-map>
#attribution { background-color: rgba(255, 255, 255, 0.7); font-family: 'Roboto', 'Arial', sans-serif; font-size: 10px; padding: 2px; margin: 2px; }