GeoWebCache: niewspółosiowość płytek

9

Próbuję przetestować prostą mapę internetową opartą na stosie PostGIS / Geoserver / OpenLayers w systemie Windows Server 2008.

Kiedy ładuję moją warstwę WMS przez:

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}

);

Wszystko wydaje się w porządku.

alternatywny tekst

Jednak gdy próbuję dodać warstwę WMS do mojej mapy za pomocą GeoWebCache, zastępując

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

z:

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

Moje dane nagle przechodzą z właściwej pozycji:

alternatywny tekst

Wszelkie pomysły na to, co może być przyczyną?

EDYCJA: dodatkowe informacje o poście na liście mailingowej GWC .

radek
źródło
1
Wygląda to na problem przesunięcia punktu odniesienia. Może być konieczne edytowanie parametrów projekcji do_wgs, jeśli twoja WMS jest przerzucana. trac.osgeo.org/proj/wiki/…
geographika
@geographika: Dlaczego więc ta sama warstwa byłaby wyświetlana poprawnie bez trybu GWC?
radek,
1
Używa innego pliku konfiguracyjnego do projekcji? Zobacz geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache
geographika
@geographika: Zakładam, że jest to stara wersja dokumentów GeoServer. Nowsza wersja: geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache . Moja strona konfiguracji GeoWebCache mówi, że kafelki są gotowe w projekcji 3857, i to również jest używane przez moją mapę internetową.
radek
czy kiedykolwiek rozwiązałeś swój problem? Mam podobny problem z większą zmianą. Widzę, że geographika talsk na temat postu powoduje końcowe rozwiązanie na forum GWC, ale nie znalazłem tego postu.
user28386,

Odpowiedzi:

4

Aktualizacja

Zobacz odpowiedzi na post Radka na forum GWC, aby znaleźć rzeczywistą przyczynę i rozwiązanie. Rozumiem teraz, dlaczego TileCache wybrał wyświetlanie błędów, takich jak „Bieżąca wartość x -1311047.936977, jest zbyt daleko od narożnika kafelka x -1493907.560000”, zamiast przekazywać „najbliższe” kafelki w zakresie arbitralnego błędu.


Czy twoje oryginalne dane są w EPSG 3857? Jeśli nie, to prawie na pewno jest to gdzieś zmiana (nie) odniesienia.

Spróbuj zmienić definicję OpenLayers tak, aby odwoływała się do EPSG: 900913 - może GeoWebCache nie rozpoznaje nowego kodu mercatora internetowego?

Z opublikowanego linku:

Zintegrowana wersja GeoWebCache automatycznie konfiguruje każdą warstwę z dwoma najczęściej występującymi rzutami:

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

Jeśli potrzebujesz dodatkowych prognoz, możesz utworzyć plik konfiguracyjny o nazwie geowebcache.xml w katalogu pamięci podręcznej, na przykład /var/geoserver_data/gwc/geowebcache.xml

Brzmi to tak, jakby Geoserver i GeoWebCache korzystały z różnych plików projekcji. Może twój Geoserver ma parametr to_wgs, a GWC nie.

W systemie Windows uruchom Process Monitor - http://technet.microsoft.com/en-us/sysinternals/bb896645, aby zobaczyć, które pliki naprawdę uzyskujesz dostęp.

Zakładam też, że obrazy nie były buforowane po zmianie niektórych parametrów projekcji? Spróbuj ponownie posiać / usunąć, aby sprawdzić.

geografia
źródło
Dzięki. Tak, oryginalne dane pochodzą z 3857. Wygląda na to, że GWC rozpoznaje ten kod: w sekcji Dema GWC dostępne są wszystkie trzy projekcje: 3857, 4326, 900913. I na potrzeby mojej mapy używam 3857. Próbowałem także z 900913 i błąd pozostaje.
radek
Jeśli twoje oryginalne dane znajdują się w 3857 bez przesunięcia punktu odniesienia, wyobrażam sobie, że w GWC nie ma miejsca żadna zmiana.
geographika,
4

Czy masz poprawny zestaw początku kafelków dla twojej OpenLayers.Map jak w GeoWebCache. Sprawdź, jak ustawiony jest TileOrigin w wersji demo GeoWebCache warstwy i upewnij się, że masz ten sam TileOrigin na swoim konstruktorze OpenLayers.Map.

Piotr
źródło
Dzięki. Próbowałem ustawić go jako: „tilesOrigin: map.maxExtent.left +”, „+ map.maxExtent.bottom”, gdzie maxExtent jest ustawiony zgodnie z wersją demonstracyjną GWC warstwy. Nadal niepoprawne.
radek
Jakie są twoje ustawienia GWC, może być konieczne dostosowanie ustawień DPI w GWC lub OpenLayers
Peter
Próbowałem dopasować ustawienia DPI zgodnie z podglądem demo GWC warstwy. Nie pomogło
radek
3

Takie niewspółosiowanie jest prawie zawsze problemem projekcyjnym. Czy dane są przechowywane w EPSG: 3857? Sprawdź, czy warstwa GeoWebCache jest skonfigurowana do wyświetlania w EPSG: 3857.

Sean
źródło
Tak, zestaw danych znajduje się w 3857, a GWC jest również dla niego skonfigurowany.
radek,
2

Czy próbowałeś wyczyścić pamięć podręczną?

Dave Lowther
źródło
Tak.
radek