====== Mappe e Planimetrie ======
Versioni:
* [[:gwusermanual:interface:interface:Mappe e Planimetrie#Versione 4.5.X|Versione 4.5.X]]
* [[:gwusermanual:interface:interface:Mappe e Planimetrie#Campi Comuni|Campi Comuni]]
* [[:gwusermanual:interface:interface:Mappe e Planimetrie#Configurazione XML|Configurazione XML]]
* [[:gwusermanual:interface:interface:Mappe e Planimetrie#Associazione a MapGuide|Associazione a MapGuide]]
* [[:gwusermanual:interface:interface:Mappe e Planimetrie#Sfondi Cartografici (BaseLayer e WMS)|Sfondi Cartografici (BaseLayer e WMS)]]
* [[:gwusermanual:interface:interface:Mappe e Planimetrie#Layer Openlayers|Layer Openlayers]]
* [[:gwusermanual:interface:interface:Mappe e Planimetrie#Mappa Cartografica|Mappa Cartografica]]
* [[:gwusermanual:interface:interface:Mappe e Planimetrie#Mappa Planimetrica|Mappa Planimetrica]]
* [[:gwusermanual:interface:interface:Mappe e Planimetrie#Mappa Cartografica Parzializzata|Mappa Cartografica Parzializzata]]
* [[:gwusermanual:interface:interface:Mappe e Planimetrie#Versione 4.0.X|Versione 4.0.X]]
===== Versione 4.5.X =====
Per poter visualizzare una scheda di tipo //mapLayout2D// (Mappa 2D) occorre preventivamente configurare appositi metadati.
Tale configurazione viene gestita nella sezione “Gestione Mappe e Scene” di Geoweb Admin.
{{ :gwusermanual:admin_maps_and_scene_management.jpg|}}
Una //gwMap// è un particolare metadato di Geoweb che determina in che particolare modo verrà presentata all'utente una scheda di tipo //mapLayout2D//, che utilizza la definizione contenuta nella //gwMap// stessa. Essa può, a seconda della tipologia, legare a se altri metadati di Geoweb.
==== Campi Comuni ====
* **Nome**, obbligatorio, deve essere uguale ad una mappa configurata in MapGuide.
* **Descrizione**, opzionale, non funzionale
* **Sistema di Coordinate**, obbligatorio per la cartografia, va configurato in modo coerente con la configurazione MapGuide Maestro. Valori di esempio: 'EPSG:3857', '3857'
* **Tipologia Mappa**, obbligatorio, 'Cartografia', 'Planimetria', 'Cartografia Parzializzata'
* **Colore di Sfondo**, opzionale, default #FFFFFF. permette di configurare un colore di sfondo, visualizzato sotto ogni altra cosa
==== Configurazione XML ====
C'è una parte di xml che determina cosa sarà presente nella UI visualizzata dall'utente, comprese le varie funzionalità, anche erogate da plugin. Questa è una configurazione generale, esempi più calzanti per le varie tipologie di mappa sono disponibili sotto.
Sono gestiti commenti dentro ''. I tag non riconosciuti e testo fuori dai tag non danno errori bloccanti.
Il tag tag //// ha degli attributi, //name//, //label//, //icon//, //defaultSelected// attualmente non valutati.
Sotto il tag ////, sono presenti tre sezioni:
* tag ****, ospita tag ****, ognuno dei quali determina la comparsa sulla toolbar principale di un gruppo di bottoni organizzati secondo gruppi predefiniti nel framework, o resi disponibili tramite plugin.
* **** predefiniti (determinati dal //name//):
* //selection//
* //navigation//
* //info//
* //refresh//
* //report//
* //commandsTab// particolare gruppo che rende disponibili sulla toolbar principale scorciatoie per aprire i Tab (configurabili sotto) e collassare/espandere il relativo menu a scomparsa
* //googleStreetView// definito su plugin (configurato, ma veramente disponibile e visualizzato solo in presenza del relativo plugin **googleStreetView**)
* tag ****, ospita tag ****, ognuno dei quali determina un tipo di tab disponibile, fra quelli predefiniti od erogati da plugin.
* predefiniti (determinati dal //type//):
* //layers//, se presente, viene visualizzata la scheda per la gestione dei //layer erogati da MapGuide//
* //baseMaps//, se presente, viene visualizzata la scheda per la visualizzazione dei //baseLayer//
* //edit//, se presente, viene visualizzata la scheda per l'editing in mappa delle entità sulle quali l'utente è abilitato
* pluginTab, esempio di eventuale tab definito in un qualche plugin. effettivamente visualizzato solo se è presente il relativo plugin
* tag ****, ospita tag ****, ognuno dei quali permette di configurare proprietà e relativi valori, che possono essere riletti in vari punti del framework, anche ad uso e consumo dei plugin. Le proprietà, booleane, conosciute e valutate di default (che hanno prevalenza anche sulle corrispettive eventualmente definite nell' xml di progetto), sono:
* //showScaleLineControl//
* //showScaleControl//
* //showMousePositionControl//
* //startWithMapSwitcherOpened//
==== Associazione a MapGuide ====
E' prassi associare alla gwMap, una corrispettiva mappa definita in **MapGuide Maestro** (//mgMap//). Questo viene fatto soprattutto per sfruttare le funzionalità del motore cartografico MapGuide, che permette di renderizzare in maniera molto efficiente un numero molto elevato di entità per il //Bounding Box// corrente della mappa (definito, a parità di spazio disponibile in finestra del browser, dalla posizione corrente della finestra di mappa e dal livello corrente di zoom). Inoltre sono presenti logiche di selezioni delle entità renderizzare in mappa, basate su query spaziali, in cui il motore Cartografico di MapGuide è parte fondamentale.
==== Sfondi Cartografici (BaseLayer e WMS) ====
A mappe di tipo cartografico, sono in genere associati dei metadati atti a visualizzare uno sfondo cartografico. Questi, i //baseLayer//, sono definiti e configurati a parte (sempre nello stesso albero) e possono essere associati alla singola gwMap. Le tipologie disponibili sono fisse e sono erogate dai principali provider di servizi di cartografia: **Google**, **Bing**, **OpenStreetMap**.
Esistono inoltre dei particolari sfondi cartografici, definiti di tipo **WMS**, e configurati per lavorare con appositi servizi erogati da server esterni a geoweb. Una guida sui servizi WMS e loro configurazioen è disponibile [[https://wiki.geowebframework.com/doku.php?id=custom:external_wms_integration|qui]].
==== Layer Openlayers ====
Esistono poi anche dei layer di tipo **Openlayers**, che possono essere configurati e visualizzati indipendentemente da MapGuide. Essi vanno creati nella sezione 'Layer', delle varie gwClass interessate (nell'albero 'Temi e Classi'), ed associati alla gwMap desiderata.
Essi vengono rendderizzati ad ogni apertura mappa, permettono customizzazioni spinte nelle renderizzazione delle varie entità rappresentate in mappa.
Se esistono si possono utilizzare anche per avere punti di snap aggiuntivi durante le fasi di editing in mappa.
Hanno lo svantaggio che, essendo sempre renderizzati tutti per un dato BoundingBox corrente della gwMap, in caso di un elevato numero di entità ci potrebbe essere un degrado nelle performance.
==== Mappa Cartografica ====
E' la tipologia usata per rappresentare entità distribuite sul territorio, mediante il supporto di mappe cartografiche.
La si sceglie configurando 'Cartografia' nel select **Tipologia Mappa**.
Va obbligatoriamente configurato il **Sistema di Coordinate**.
{{ :gwusermanual:admin_carthog_map_manag_1.jpg|}}
Nell'xml notiamo tra i //buttonGroup// la presenza di //googleStreetView//, che è erogato dall' apposito plugin **googleStreetView**, ed è una funzionalità usabile solo nelle mappe cartografiche (a cui tra l'altro sono associati baseLayer Google opportunamente configurati per farsi erogare i vari servizi dal Provider Google).
Essendo una mappa cartografica è presente il tab con type='baseMaps'.
BaseLayer associati alla mappa (configurati a parte).
{{ :gwusermanual:admin_carthog_map_manag_2.jpg|}}
Associazione con la mappa MapGuide.
{{ :gwusermanual:admin_carthog_map_manag_3.jpg|}}
==== Mappa Planimetrica ====
E' la tipologia usata per rappresentare entità distribuite su planimetrie di edifici. La parte architettonica e delle entità presenti è erogata tramite MapGuide. Le entità possono opzionalmente avere anche un layer OpenLayers.
La si sceglie configurando 'Planimetria' nel select **Tipologia Mappa**.
Non va configurato il **Sistema di Coordinate**.
{{ :gwusermanual:admin_plan_map_manag_1.jpg|}}
Essendo una mappa planimetrica non è presente il tab con type='baseMaps'.
Lato xml, è stato aggiunto il tab con type //furniture//, che è reso disponibile dal plugin **fornitureplugin**.
Essendo una Planimetria, in questo caso non c'è alcun BaseLayer associato alla mappa.
{{ :gwusermanual:admin_plan_map_manag_2.jpg|}}
Associazione con la mappa MapGuide.
{{ :gwusermanual:admin_plan_map_manag_3.jpg|}}
In questo caso è associato anche qualche layer di tipo OpenLayers che anche se configurato (a parte) come invisibile, è utile per lo snap in fase di editing Arredi in Planimetria.
{{ :gwusermanual:admin_plan_map_manag_4.jpg|}}
==== Mappa Cartografica Parzializzata ====
Si utilizza per casi particolari, in cui i dati di una mappa fondamentalmente //cartografica//, sono gestiti in maniera simile ai criteri di partializzazione usati per le planimetrie (basati sulla presenza del campo **DRAWING** sulle tabelle, e relative configurazioni).
Questa modalità d'uso è spesso associata alla presenza di specifici parametri in sessione.
===== Versione 4.0.X =====
Le configurazioni sono molto simili a quanto descritto sopra, ad eccezione del fatto che non esisteva del tutto la parte xml.
Quindi non c'è la possibilità di scegliere, mappa per mappa, quali gruppi di bottoni o schede laterali mostrare. Le logiche sono regolate da rigidi automatismi.
Inoltre la parte di configurazione presente nel tag //// del'xml è recuperata in toto dall'xml di progetto, nella sezione ////.
In caso non fosse configurata si fa ancora riferimento a dei valori di default.