Un FeatureView
è una rappresentazione accelerata di sola visualizzazione di un
FeatureCollection
.
A differenza di un FeatureCollection
, i cui riquadri della mappa raster vengono generati in tempo reale, i riquadri raster di FeatureView
vengono precomputati per fornire un rendering rapido.
Oltre a eseguire il rendering più velocemente, gli asset FeatureView
implementano la riduzione delle funzionalità in base al livello di zoom. L'effetto è che i set di dati densi potrebbero sembrare incomplete con lo zoom ridotto (le piccole funzionalità non vengono disegnate), ma un maggior numero di dati diventa visibile con lo zoom in, il che può migliorare l'estetica della mappa a livelli di zoom inferiori. Il comportamento di sfoltimento di un set di dati è controllato da diversi
parametri di ottimizzazione
che vengono impostati durante l'esportazione di un asset FeatureCollection
in un asset FeatureView
.
In quanto asset di sola visualizzazione, gli oggetti FeatureView
non possono essere inclusi nei calcoli o nelle espressioni, ma possono essere visualizzati e ispezionati nell'editor di codice JavaScript e nelle app Earth Engine come FeatureViewLayer
. Possono anche essere integrate nelle applicazioni dell'API Google Maps.
Creazione di una visualizzazione caratteristiche
La creazione di un FeatureView
prevede la preparazione di un FeatureCollection
con i tuoi dati, la chiamata della funzione Export.table.toFeatureView
e l'avvio dell'attività di esportazione. L'esempio seguente mostra l'esportazione delle visualizzazioni del
set di dati dei poligoni WDPA.
Nella tua applicazione, utilizza qualsiasi set di dati FeatureCollection
archiviato nel catalogo dati di Earth Engine o creane uno tuo caricando un set di dati vettoriali come risorsa di Earth Engine.
Un FeatureView
può essere personalizzato utilizzando diversi parametri nella funzione
Export.table.toFeatureView
.
maxFeaturesPerTile
: definisce il numero massimo di elementi visualizzati in un riquadro della mappa a un determinato livello di zoom. Utilizza questo parametro per ottimizzare per la velocità o la densità di funzionalità.thinningStrategy
: controlla se lo sfoltimento delle funzionalità per un determinato livello di zoom e una determinata mappa deve essere ottimizzato per una maggiore densità o per una maggiore coerenza della densità tra le mappe. Tieni presente che l'ottimizzazione per una densità più elevata può causare la netta separazione dei confini dei riquadri, poiché la densità di elementi per riquadro è indipendente.thinningRanking
: definisce la priorità dell'assottigliamento delle funzionalità. Ad esempio, puoi ottimizzare l'assottigliamento in modo da avere come target la conservazione di una determinata proprietà della funzionalità con valori elevati. In altre parole, man mano che diminuisci lo zoom, le funzionalità con un valore basso per la proprietà selezionata verranno assottigliate per prime, lasciando visibili quelle più importanti (in base alle tue regole).zOrderRanking
: definisce l'ordine z (ordine di sovrapposizione) degli elementi visualizzati sulla mappa. Questo parametro controlla la modalità di visualizzazione degli elementi in sovrapposizione consentendo di impostare regole di priorità in base alle proprietà degli elementi, al tipo di geometria e al livello di zoom. Ad esempio, puoi dare la priorità alle funzionalità con valori elevati di una determinata proprietà in modo che vengano sovrapposte alle funzionalità che si intersecano con valori bassi.
Per ulteriori dettagli su questi parametri e sui relativi argomenti accettati, consulta la FeatureView
pagina Ottimizzazione.
Nell'esempio seguente, gli argomenti specificati per questi parametri producono un
FeatureView
in cui il numero massimo di elementi per tile a un determinato livello di zoom è
1500, la densità degli elementi per tile è indipendente e può raggiungere
il massimo di 1500, i poligoni più piccoli vengono assottigliati per primi e i poligoni più piccoli
si sovrappongono a quelli più grandi.
Editor di codice (JavaScript)
// Import the WDPA feature collection. var wdpa = ee.FeatureCollection('WCMC/WDPA/current/polygons'); // Export the WDPA FeatureCollection as a FeatureView asset. Export.table.toFeatureView({ collection: wdpa, assetId: 'wdpa-featureview-demo', description: 'wdpa-featureview-demo', maxFeaturesPerTile: 1500, thinningStrategy: 'HIGHER_DENSITY', thinningRanking: ['REP_AREA DESC'], zOrderRanking: ['REP_AREA DESC'], });
L'esecuzione dello snippet di codice riportato sopra nell'editor di codice genererà un'attività di esportazione. Esegui l'attività per avviare l'esportazione.
Località degli asset FeatureView
Le risorse FeatureView
sono disponibili nel
Catalogo di dati pubblico e tra le tue
risorse personali nella scheda
Asset di Code Editor. Tutti gli asset FeatureCollection
pertinenti nel Data Catalog hanno un asset FeatureView
aggiuntivo con impostazioni di importazione applicabili in generale. L'archivio delle risorse personali includerà tutti gli
FeatureView
asset che crei.
Importazione di asset FeatureView negli script
Le risorse FeatureView
possono essere importate negli script di Code Editor utilizzando i pulsanti nelle finestre di dialogo delle risorse di Code Editor e le voci delle risorse personali, nonché fornendo un ID risorsa FeatureView
come input al costruttore ui.Map.FeatureViewLayer
.
Finestra di dialogo della risorsa Data Catalog
Le finestre di dialogo delle risorse della tabella del Catalogo di dati, a cui si accede dalla barra di ricerca dell'editor di codice, hanno un pulsante Importa in basso a destra con un menu a discesa. Nel menu a discesa, seleziona "Importa FeatureView". La risorsa verrà inclusa nella sezione Importazioni nella parte superiore dello script.
Finestra di dialogo Asset personale
Le finestre di dialogo delle risorse FeatureView
personali, a cui si accede selezionando una risorsa dalla scheda Risorse di Code Editor, hanno un pulsante Importa in alto a destra.
L'attivazione del pulsante includerà l'asset nella sezione Importazioni nella parte superiore dello script. Puoi anche utilizzare il pulsante di scorciatoia per l'importazione
(icona a forma di freccia rivolta verso destra) visualizzato quando passi il mouse sopra un asset nella
scheda Risorse.
ID risorsa
Gli asset FeatureView
hanno un ID che può essere fornito come input al constructor ui.Map.FeatureViewLayer
, che ti consente di accedere all'asset nel tuo script. Gli snippet di importazione precostituiti sono disponibili nelle pagine delle risorse e nelle finestre di dialogo delle risorse di Data Catalog nell'editor di codice.
Figura 1. Dialogo della risorsa Data Catalog che mette in evidenza i metodi di importazione FeatureView
.
Metadati di FeatureView
Le informazioni e i metadati di FeatureView
sono disponibili nelle finestre di dialogo delle risorse
menzionate nella sezione Località delle risorse FeatureView
sopra. Oltre alla descrizione e alle proprietà che possono essere condivise con la sorgente FeatureCollection
, esistono cinque proprietà uniche di FeatureView
. Sono incluse le impostazioni dei parametri di importazione descritte nella sezione Creare una FeatureView e sourceVersion
, ovvero il timestamp "ultima modifica" della risorsa tabella da cui è stato creato FeatureView
. La Figura 1 sopra mostra le proprietà specifiche di FeatureView
in una finestra di dialogo dell'asset di Data Catalog. Come per gli altri asset, puoi anche recuperare le proprietà in modo programmatico dal dizionario restituito da ee.data.getAsset
.
Visualizzazione di una visualizzazione caratteristiche
Un oggetto FeatureView
può essere visualizzato in Code Editor, nelle app Earth Engine e in Google Maps.
Editor di codice
L'editor di codice include il componente ui.Map.FeatureViewLayer
per visualizzare gli assetFeatureView
su una mappa. L'esempio seguente definisce un ID risorsa FeatureView
, importa la risorsa come FeatureViewLayer
e la mostra sulla mappa.
Editor di codice (JavaScript)
// Define the FeatureView asset ID. var assetId = 'WCMC/WDPA/current/polygons_FeatureView'; // Import the FeatureView asset as a FeatureViewLayer. var layer = ui.Map.FeatureViewLayer(assetId); // Add the FeatureViewLayer to the map. Map.add(layer);
Stili
Puoi applicare uno stile a FeatureViewLayer
passando un dizionario di stili alla funzione ui.Map.FeatureViewLayer
o aggiungendoli a un livello utilizzando il metodo setVisParams
. Di seguito è riportato un esempio che applica stili a:
- colori di contorno in base alla proprietà "MARINE" (se l'area protetta rientra totalmente o parzialmente nell'ambiente marino),
- colore di riempimento in base alla proprietà "IUCN_CAT" (categoria della International Union for Conservation of Nature (IUCN)) e
- Opacità del riempimento in base alle dimensioni dell'area protetta definita dalla proprietà "REP_AREA".
Visita la pagina Stili di FeatureView per ulteriori dettagli sulle opzioni di stile disponibili.
Editor di codice (JavaScript)
// Set visualization properties for the defined layer. layer.setVisParams({ color: { property: 'MARINE', categories: [ ['0', 'purple'], ['1', 'green'], ['2', 'blue'], ] }, fillColor: { property: 'IUCN_CAT', defaultValue: 'd3d3d3', categories: [ ['Ia', 'a6cee3'], ['Ib', '1f78b4'], ['II', 'b2df8a'], ['III', '33a02c'], ['IV', 'fb9a99'], ['V', 'e31a1c'], ['VI', 'fdbf6f'], ] }, fillOpacity: { property: 'REP_AREA', mode: 'interval', palette: [ [0, 0.5], [80, 0.35], [2000, 0.22], [5000, 0.15], ], }, width: 1.0, pointSize: 6.0, });
Filtri
Le regole di filtro possono essere applicate per applicare stili o nascondere in modo selettivo le funzionalità in base alle loro proprietà. Ad esempio, per escludere le aree protette più piccole di una determinata area indicata da un widget di scorrimento, puoi utilizzare il seguente codice. Per saperne di più sul campo rules
, consulta la sezione Regole specifiche della pagina Stili FeatureView
.
Editor di codice (JavaScript)
// Define the FeatureView asset ID. var assetId = 'WCMC/WDPA/current/polygons_FeatureView'; // Import the FeatureView asset as a FeatureViewLayer. var layer = ui.Map.FeatureViewLayer(assetId, null, 'WDPA FeatureViewLayer'); // Callback function to update FeatureViewLayer style. var updateVisParams = function() { layer.setVisParams({ color: { property: 'MARINE', categories: [ ['0', 'purple'], ['1', 'green'], ['2', 'blue'], ] }, fillColor: { property: 'IUCN_CAT', defaultValue: 'd3d3d3', categories: [ ['Ia', 'a6cee3'], ['Ib', '1f78b4'], ['II', 'b2df8a'], ['III', '33a02c'], ['IV', 'fb9a99'], ['V', 'e31a1c'], ['VI', 'fdbf6f'], ] }, fillOpacity: { property: 'REP_AREA', mode: 'interval', palette: [ [0, 0.5], [80, 0.35], [2000, 0.22], [5000, 0.15], ], }, width: 1.0, pointSize: 6.0, rules: [ { filter: ee.Filter.lt('REP_AREA', filterSlider.getValue()), isVisible: false, }, ], }); }; // Slider widget that calls the updateVisParams function on change. var filterSlider = ui.Slider({ min: 0, max: 10000, step: 10, value: 0, style: { stretch: 'horizontal'}, onChange: updateVisParams, }); var filterSliderLabel = ui.Label( 'Adjust slider to hide features less than the specified area (km²)'); // Add the slider to the map. Map.add(ui.Panel([filterSliderLabel, filterSlider])); // Initialize the FeatureViewLayer style. updateVisParams(); // Add the FeatureViewLayer to the map. Map.add(layer);
Figura 2. Visualizzazione FeatureViewLayer
con un widget cursore per nascondere gli elementi
più piccoli dell'area specificata.
API di Google Maps
La procedura per visualizzare una risorsa FeatureView
utilizzando l'API Google Maps è composta da quattro fasi: ottieni una chiave delle tessere utilizzando ee.data.getFeatureViewTilesKey
, passala a un'istanza di FeatureViewTileSource
, crea un ee.layer.ImageOverlay
e poi aggiungi l'overlay all'istanza google.maps.Map
. Di seguito è riportato un codice campione per la creazione di ImageOverlay
in JavaScript.
var tilesKey = ee.data.getFeatureViewTilesKey({
assetId: 'WCMC/WDPA/current/polygons_FeatureView',
visParams: { … },
});
var tileSource = new ee.layers.FeatureViewTileSource(tilesKey);
var overlay = new ee.layers.ImageOverlay(tileSource);
Al termine, puoi aggiungere l'overlay all'istanza google.maps.Map
come mostrato di seguito.
// embeddedMap is your google.maps.Map instance.
embeddedMap.overlayMapTypes.setAt(0, overlay);
Ispezione di una visualizzazione caratteristiche
Un livello FeatureViewLayer
aggiunto alla mappa di Editor di codice predefinita può essere esaminato utilizzando lo strumento di ispezione.
La funzionalità è la stessa di un FeatureCollection
. Tieni presente che
i risultati restituiti per la località su cui è stato fatto clic elencano solo le funzionalità visibili
al livello di zoom corrente. Le geometrie non vengono mostrate per gli elementi ispezionati poiché vengono semplificate nell'ambito del processo di esportazione di FeatureView
.
Figura 3. Sto controllando un FeatureViewLayer
. L'ispettore mostra il livello,
le caratteristiche, l'ID risorsa e i parametri di visualizzazione.