tecnica:gps_cartografia_gis:openlayers_tips
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tecnica:gps_cartografia_gis:openlayers_tips [2010/11/05 15:01] – niccolo | tecnica:gps_cartografia_gis:openlayers_tips [2013/03/18 16:25] (current) – [Layer supportati da OpenLayers] niccolo | ||
---|---|---|---|
Line 6: | Line 6: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | * [[http:// | ||
===== Layer supportati da OpenLayers ===== | ===== Layer supportati da OpenLayers ===== | ||
Line 12: | Line 12: | ||
^ Markers | ^ Markers | ||
^ Text | Del tutto simile al '' | ^ Text | Del tutto simile al '' | ||
- | ^ GeoRSS | + | ^ GeoRSS |
- | ^ Vector | + | ^ Vector |
^ KML | Layer vettoriale. Supporta diverse strategie di caricamento, | ^ KML | Layer vettoriale. Supporta diverse strategie di caricamento, | ||
^ WFS | | | ^ WFS | | | ||
Line 235: | Line 235: | ||
il **rettangolo che evidenzia l' | il **rettangolo che evidenzia l' | ||
- | ===== Sistemi di riferimento ===== | + | ===== Sistemi di riferimento |
- | OpenLayers supporta | + | OpenLayers supporta alcuni sistemi di riferimento, |
* EPSG:900913 | * EPSG:900913 | ||
* EPSG:4326 | * EPSG:4326 | ||
- | Per supportare altri sistemi di riferimento è possibile | + | Per supportare altri sistemi di riferimento è possibile |
+ | |||
+ | <code html> | ||
+ | <script type=" | ||
+ | <script type=" | ||
+ | <script type=" | ||
+ | <script type=" | ||
+ | </ | ||
+ | |||
+ | In teoria OpenLayers dovrebbe scoprire automaticamente che è disponibile la libreria proj4js, senza bisogno di includere lo script. ma non è chiaro come. | ||
+ | |||
+ | Sistemi di riferimento aggiuntivi vengono definiti con la stessa sintassi di PROJ.4, aggiungendo dei file nella directory **'' | ||
+ | |||
+ | Ecco ad esempio | ||
<code javascript> | <code javascript> | ||
+ | Proj4js.defs[" | ||
+ | +proj=tmerc +lat_0=0 +lon_0=9 +k=0.999600 +x_0=1500000 +y_0=0 \ | ||
+ | +ellps=intl +units=m +no_defs"; | ||
+ | </ | ||
+ | Dopo aver incluso il JavaScript di cui sopra, diventa possibile fare operazioni del tipo: | ||
+ | |||
+ | <code javascript> | ||
+ | var lonLat = new OpenLayers.LonLat(1554000, | ||
+ | alert(" | ||
+ | lonLat.transform(new OpenLayers.Projection(' | ||
+ | alert(" | ||
</ | </ | ||
+ | |||
+ | :!: **ATTENZIONE!** Se non si aggiunge manualmente la definizione del sistema di riferimento (inline nel codice o tramite un file in **'' | ||
+ | |||
+ | ===== i18n ===== | ||
+ | |||
+ | OpenLayers offre supporto per la internazionalizzazione (i18n) delle applicazioni tramite la classe **[[http:// | ||
+ | |||
+ | Ecco un esempio di come usarla: | ||
+ | |||
+ | <code javascript> | ||
+ | OpenLayers.Lang.it = { | ||
+ | ' | ||
+ | ' | ||
+ | }; | ||
+ | |||
+ | OpenLayers.Lang.setCode(' | ||
+ | alert(OpenLayers.i18n(' | ||
+ | </ | ||
+ | |||
+ | ===== Click destro ===== | ||
+ | |||
+ | Per gestire il click destro sulla mappa bisogna anzitutto disabilitare il //context menu// che presenta il browser al click destro. Ci sono due metodi. | ||
+ | |||
+ | Con questa istruzione si disabilita il context menu nel <div> della mappa: | ||
+ | |||
+ | <code javascript> | ||
+ | map.div.oncontextmenu = function noContextMenu(e) {return false;}; | ||
+ | </ | ||
+ | |||
+ | In alternativa si fa in modo che il '' | ||
+ | |||
+ | <code javascript> | ||
+ | map = new OpenLayers.Map(" | ||
+ | controls: [ | ||
+ | new OpenLayers.Control.Navigation({handleRightClicks: | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | |||
+ | Infine si registra la funzione handler per l' | ||
+ | |||
+ | Per vedere gli eventi supportati dalla mappa basta vedere la proprietà **'' | ||
+ | |||
+ | <code javascript> | ||
+ | function mousedown_handler(e) { | ||
+ | if (OpenLayers.Event.isRightClick(e)) { | ||
+ | alert(" | ||
+ | OpenLayers.Event.stop(e); | ||
+ | return false; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | map.events.register(' | ||
+ | map.events.register(' | ||
+ | </ | ||
+ | |||
+ | ===== Problema con Layer.Markers e pop-up ===== | ||
+ | |||
+ | Se si disegna un layer di tipo **'' | ||
+ | |||
+ | È possibile anche usare il metodo **'' | ||
+ | |||
+ | <code javascript> | ||
+ | map.addLayer(vectorLayer); | ||
+ | map.raiseLayer(vectorLayer, | ||
+ | </ | ||
+ | |||
+ | Si decrementa di 2 per tenere in conto il layer stesso e un solo baselayer, di 3 se i baselayer sono due, ecc. |
tecnica/gps_cartografia_gis/openlayers_tips.1288965668.txt.gz · Last modified: 2010/11/05 15:01 by niccolo