GeoWebCache: Fehlausrichtung von Kacheln

9

Ich versuche, eine einfache Webkarte basierend auf dem PostGIS / Geoserver / OpenLayers-Stapel unter Windows Server 2008 zu testen.

Wenn ich meine WMS-Ebene lade durch:

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}

);

Alles scheint in Ordnung zu sein.

Alt-Text

Wenn ich jedoch versuche, meiner Karte mithilfe von GeoWebCache einen WMS-Layer hinzuzufügen, wird dieser ersetzt

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

mit:

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

Meine Daten bewegen sich plötzlich von der richtigen Position:

Alt-Text

Irgendwelche Ideen, was die Ursache sein könnte?

BEARBEITEN: Einige zusätzliche Informationen zum Beitrag der GWC-Mailingliste .

Radek
quelle
1
Es sieht aus wie ein Problem mit der Bezugsverschiebung. Möglicherweise müssen Sie Ihre Projektion auf_wgs-Parameter bearbeiten, wenn Ihr wms neu projiziert wird. trac.osgeo.org/proj/wiki/…
geographika
@geographika: Warum sollte dann dieselbe Ebene ohne GWC-Modus korrekt angezeigt werden?
Radek
1
Es verwendet eine andere Konfigurationsdatei für Projektionen? Siehe geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache
geographika
@geographika: Ich nehme an, es ist eine alte Version von GeoServer-Dokumenten. Neuere Version: geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache . Auf meiner GeoWebCache-Konfigurationsseite wird angegeben, dass die Kacheln in der 3857-Projektion bereit sind. Dies wird auch von meiner Webkarte verwendet.
Radek
Hast du jemals dein Problem gelöst? Ich habe ein ähnliches Problem mit einer größeren Verschiebung. Ich sehe, dass Geographika über einen Beitrag mit Ursachen und Endlösung im GWC-Forum spricht, aber ich finde diesen Beitrag nicht.
user28386

Antworten:

4

Aktualisieren

In den Antworten auf Radeks Beitrag im GWC-Forum finden Sie die tatsächliche Ursache und Lösung. Ich verstehe jetzt, warum TileCache sich für die Anzeige von Fehlern wie "Aktueller x-Wert -1311047.936977 ist zu weit von der Kachelecke x -1493907.560000 entfernt" entschieden hat, anstatt die "nächsten" Kacheln innerhalb eines beliebigen Fehlerbereichs zurückzugeben.


Sind Ihre Originaldaten in EPSG 3857? Wenn nicht, dann ist es mit ziemlicher Sicherheit eine (nicht) irgendwo stattfindende Bezugsverschiebung.

Versuchen Sie, Ihre OpenLayers-Definition so zu ändern, dass sie auf EPSG: 900913 verweist. Vielleicht erkennt GeoWebCache den neuen Web-Mercator-Code nicht?

Über den Link, den Sie gepostet haben:

Die integrierte Version von GeoWebCache konfiguriert automatisch jede Ebene mit den beiden häufigsten Projektionen:

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

Wenn Sie zusätzliche Projektionen benötigen, können Sie im Cache-Verzeichnis eine Konfigurationsdatei mit dem Namen geowebcache.xml erstellen, z. B. /var/geoserver_data/gwc/geowebcache.xml

Das klingt so, als ob Geoserver und GeoWebCache unterschiedliche Projektionsdateien verwenden. Möglicherweise hat Ihr Geoserver einen to_wgs-Parameter und GWC nicht.

Führen Sie unter Windows Process Monitor - http://technet.microsoft.com/en-us/sysinternals/bb896645 aus , um festzustellen, auf welche Dateien Sie wirklich zugreifen.

Ich gehe auch davon aus, dass die Bilder nicht zwischengespeichert wurden, nachdem Sie einige Projektionsparameter geändert haben. Versuchen Sie erneut zu säen / löschen, um dies zu überprüfen.

geographika
quelle
Vielen Dank. Ja, die Originaldaten befinden sich in 3857. GWC erkennt diesen Code anscheinend: Im Abschnitt GWC-Demos stehen alle drei Projektionen zur Verfügung: 3857, 4326, 900913. Und für den Zweck meiner Karte verwende ich 3857. Auch versucht es mit 900913 und Fehler bleibt.
Radek
Wenn sich Ihre Originaldaten in 3857 ohne Datumsverschiebung befinden, würde ich mir vorstellen, dass in GWC keine Neuprojektion stattfindet und Ihre Originaldaten erneut projiziert werden müssen.
Geographika
4

Haben Sie den richtigen Kachelursprungssatz für Ihre OpenLayers.Map wie in GeoWebCache festgelegt? Überprüfen Sie, wie das TileOrigin in der GeoWebCache-Demo der Ebene festgelegt ist, und stellen Sie sicher, dass Ihr OpenLayers.Map-Konstruktor dasselbe TileOrigin enthält.

Peter
quelle
Vielen Dank. Ich habe versucht, es wie folgt einzustellen: "tilesOrigin: map.maxExtent.left + ',' + map.maxExtent.bottom" wobei maxExtent gemäß der GWC-Demo des Layers festgelegt wird. Immer noch nicht richtig.
Radek
Was sind Ihre GWC-Einstellungen, müssen Sie möglicherweise DPI-Einstellungen in GWC oder OpenLayers anpassen
Peter
Ich habe versucht, die DPI-Einstellungen gemäß der GWC-Demovorschau der Ebene anzupassen. Hat nicht geholfen.
Radek
3

Eine solche Fehlausrichtung ist fast immer ein Projektionsproblem. Sind die Daten in EPSG: 3857 gespeichert? Überprüfen Sie, ob die GeoWebCache-Ebene für die Ausgabe in EPSG: 3857 konfiguriert ist.

Sean
quelle
Ja, der Datensatz befindet sich in 3857 und GWC ist auch dafür konfiguriert.
Radek
2

Haben Sie versucht, den Cache zu leeren?

Dave Lowther
quelle
Ja, habe ich.
Radek