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.