GeoWebCache: disallineamento delle piastrelle


9

Sto provando a testare una semplice mappa Web basata sullo stack PostGIS / Geoserver / OpenLayers su Windows Server 2008.

Quando carico il mio livello WMS per:

var gwctest = new OpenLayers.Layer.WMS(
    "gwctest",
    "http://localhost:1979/geoserver/wms",
    {
    'layers': 'Index2000:index_vect_s100',
    'format': 'image/png',
    'srs': 'EPSG:3857', 
    'units': 'm',
    'transparent': true
    },
    {'opacity': 0.8, 'isBaseLayer': false, 'visibility': false}

);

Tutto sembra andare bene.

testo alternativo

Tuttavia, quando provo ad aggiungere un livello WMS alla mia mappa usando GeoWebCache, la sostituzione

"http://localhost:1979/geoserver/wms"

con:

"http://localhost:1979/geoserver/gwc/service/wms"

I miei dati si spostano improvvisamente dalla posizione corretta:

testo alternativo

Qualche idea su quale potrebbe essere la causa?

EDIT: alcune informazioni aggiuntive sul post della mailing list di GWC .


1
Sembra un problema di spostamento del riferimento. Potrebbe essere necessario modificare i parametri di proiezione to_wgs se il tuo wms viene riproiettato. trac.osgeo.org/proj/wiki/…
geographika

@geographika: Perché lo stesso layer dovrebbe essere visualizzato correttamente senza la modalità GWC?
Radek,

1
Utilizza un file di configurazione diverso per le proiezioni? Vedi geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache
geographika

@geographika: presumo sia una vecchia versione dei documenti GeoServer. Versione più recente: geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache . La mia pagina di configurazione di GeoWebCache dice che i riquadri sono pronti nella proiezione 3857, e questo è utilizzato anche dalla mia mappa web.
Radek,

hai mai risolto il tuo problema? Sto riscontrando un problema simile con uno spostamento maggiore. Vedo che geographika parla di un post con cause e soluzioni nel forum GWC, ma non trovo quel post.
user28386,

Risposte:


4

Aggiornare

Vedi le risposte al post di Radek nel forum GWC per la causa e la soluzione effettive. Ora capisco perché TileCache ha optato per la visualizzazione di errori come "Valore x corrente -1311047.936977 è troppo lontano dall'angolo di piastrella x -1493907.560000" piuttosto che restituire i riquadri "più vicini" all'interno di un intervallo di errore arbitrario.


I tuoi dati originali sono in EPSG 3857? Altrimenti, è quasi certamente un cambiamento di riferimento (non) che sta avvenendo da qualche parte.

Prova a modificare la definizione di OpenLayers in modo da fare riferimento a EPSG: 900913 - forse GeoWebCache non riconosce il nuovo codice del web mercator?

Dal link che hai pubblicato:

La versione integrata di GeoWebCache configura automaticamente ogni livello con le due proiezioni più comuni:

* EPSG:4326 (standard Latitude/Longitude)
* EPSG:900913 (Spherical Mercator, the projection used in Google Maps)

Se sono necessarie ulteriori proiezioni, è possibile creare un file di configurazione chiamato geowebcache.xml nella directory della cache, ad esempio /var/geoserver_data/gwc/geowebcache.xml

Sembra che Geoserver e GeoWebCache utilizzino file di proiezione diversi. Forse il tuo Geoserver ha un parametro to_wgs e GWC no.

Mentre sei su Windows, esegui Process Monitor - http://technet.microsoft.com/en-us/sysinternals/bb896645 per vedere a quali file stai realmente accedendo.

Suppongo anche che le immagini non siano state memorizzate nella cache dopo aver modificato alcuni parametri di proiezione? Prova a ridimensionare / eliminare per verificare.


Grazie. Sì, i dati originali sono nel 3857. Sembra che GWC riconosca questo codice: nella sezione Demo GWC ci sono tutte e tre le proiezioni disponibili da usare: 3857, 4326, 900913. E ai fini della mia mappa sto usando 3857. Ho anche provato con 900913 e l'errore rimane.
radek,

Se i tuoi dati originali sono nel 3857 senza uno spostamento di riferimento, immaginerei che non avvenga alcuna riproiezione in GWC e che i tuoi dati originali debbano essere riproiettati di nuovo.
geographika,

4

Hai impostato l'origine delle piastrelle corretta per OpenLayers.Map come in GeoWebCache. Controlla come viene impostato TileOrigin nella demo GeoWebCache del layer e assicurati di avere lo stesso TileOrigin sul tuo costruttore OpenLayers.Map.


Grazie. Ho provato a impostarlo come: "tilesOrigin: map.maxExtent.left + ',' + map.maxExtent.bottom" dove maxExtent è impostato in base alla demo GWC del layer. Ancora non corretto
Radek,

Quali sono le tue impostazioni GWC, potrebbe essere necessario regolare le impostazioni DPI in GWC o OpenLayers
Peter,

Ho provato a regolare le impostazioni DPI in base all'anteprima demo GWC del livello. Non ha aiutato
Radek,

3

Disallineamenti come questo sono quasi sempre un problema di proiezione. I dati sono archiviati in EPSG: 3857? Verificare che il layer GeoWebCache sia configurato per l'output in EPSG: 3857.


Sì, il set di dati è nel 3857 e anche GWC è configurato per questo.
Radek,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.