Ci vuole Classe

Cravatta

Usando le classi Layer dalle API per Javascript è possibile riferirsi ai servizi di mappa erogati da ArcGISServer e da altri MapServers.
Se analizzassimo l’Object Model si vedrebbe che tutte le classi layer ereditano dalla classe “core” Layer. La classe Layer non  ha costruttori così non può essere creato un oggetto direttamente da questa classe. La classe layer definisce giusto i metodi, le proprietà e gli eventi poi ereditati dalle sotto-classi di layer.

Le sotto-classi di Layer sono:
- DynamicMapServiceLayer;
- TiledMapServiceLayer;
- GraphicLayer

DynamicMapServiceLayer e TiledMapServiceLayer agiscono anche come classi core rispettivamente per i servizi di mappa dinamici e per i servizi tiled. Come per Layer non è possibile creare oggetti da queste classi, ma bisogna usare le sue sottoclassi.
Per i TiledMapServiceLayer le sotto classi sono:
— ArcGISTiledMapServiceLayer;
— VETiledLayer;
— OpenStreetMapLayer
Per i DynamicMapServiceLayer le sotto classi sono:
— WMSLayer;
— ArcGISDynamicMapSericeLayer;
— ArcGISImageServiceLayer

Incominciamo ad analizzare le sottoclassi dei TiledMapServiceLayer
ArcGISTiledMapServiceLayer
I servizi di mappa tiled referenziano immagini cached pre-elaborate e salvate sul fileSystem del Server. Spesso i servizi Tiled sono usati come Sfondi delle Mappe.

La classe ArcGISTiledMapServiceLayer è usata quando si vuole riferirsi ad un servizio di mappa tiled esposto da ArcGISServer.
// creare il layer di tipo tiled
var tiled = new esri.layers.ArcGISTiledMapServiceLayer (“http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer”);
Map.addLayer(tiled);

Il costruttore ArcGISTiledMapServiceLayer  accetta un URL ad un servizio di mappa
con le opzioni che consentono di assegnare un ID al servizio di mappa, e controllare
la trasparenza e la visibilità.
Dopo che una istanza della classe ArcGISTiledMapServiceLayer è stato creata viene poi aggiunta alla mappa usando il metodo Map.addLayer() che accetta una variabile che contiene un riferimento al mapServiceLayer Tiled.
Apri Mappa ArcGISTiledMapServiceLayer


VeTiledLayer e OpenStreetMapLayer sono le classi usate per caricare le mappe di Bing o OpenStreetMap. Questi set di tiles non sono forniti da ArcGIS, ma da Microsoft e dal progetto OpenSource OpenStreetMap.
Esempio per usare le mappe OpensOurce OpenStreetMap:
osmLayer = new esri.layers.OpenStreetMapLayer();
map.addLayer (osmLayer);
Apri Mappa OpenStreetMapLayer


Per la classe DynamicMapServiceLayer si analizzerà in primis la sotto-classe ArcGISDynamicMapServiceLayer.
Come per i TiledMapServiceLayer il costruttore dell’ArcGISDynamicMapServiceLayer
accetta un URL che punta al servizio di mappa con una serie di opzioni:
- ID;
- Trasparenza;
- livello di visibilità settato a true o false.
Rispetto al TiledService i singoli Layers all’interno del map service può essere acceso o spento attraverso il metodo setVisibleLayers();
Esempio per un ArcGISDynamicMapServiceLayer:
opLayer = new esri.layers.ArcGISDynamicMapServiceLayer (“http://www.studioat.eu/ArcGIS/rest/services/Demo/GeneraleRF/MapServer”);
Una volta creata l’istanza di un Layer ArcGISDynamicMapServiceLayer
map.addLayer (opLayer);
Apri Mappa DynamicMapServiceLayer

Con una istanza di ArcGISDynamicMapServiceLayer è possibile eseguire diverse operazioni.
Naturalmente è possibile creare mappe che mostrano i dati del servizio, ma anche eseguire query sui layers dei servizio, controllare le feature attraverso layer definitions, controllare la visibilità dei singoli Layer, settare l’informazione temporale, esportare  la mappa come immagine controllare la trasparenza dello sfono ed altro.

Nel link seguente vedete come è stata settata la visibilità solo ai Layer “Camerette” e “Condotti” del servizio Dynamic usato in precedenza andando a settare nel metodo setVisibleLayers gli ID 0 e 1 corrispondenti ai suddetti Layer.
Apri Mappa con 2 layer visibili

Nel prossimo post vedremo nel dettaglio i metodi e proprietà dei Servizi ArcGISDynamicMapServiceLayer.