GeoWebCache : 타일 정렬 불량


9

Windows Server 2008의 PostGIS / Geoserver / OpenLayers 스택을 기반으로 간단한 웹 맵을 테스트하려고합니다.

다음과 같이 WMS 계층을로드 할 때 :

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}

);

모든 것이 괜찮은 것 같습니다.

대체 텍스트

그러나 GeoWebCache를 사용하여 맵에 WMS 레이어를 추가하려고하면

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

와:

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

내 데이터가 갑자기 올바른 위치에서 이동합니다.

대체 텍스트

원인이 무엇인지에 대한 아이디어가 있습니까?

편집 : GWC 메일 링리스트 포스트 에 대한 추가 정보 .


1
데이텀 전환 문제처럼 보입니다. wms가 재 투영되는 경우 투영 to_wgs 매개 변수를 편집해야 할 수도 있습니다. trac.osgeo.org/proj/wiki/…
geographika

@geographika : 그렇다면 왜 같은 레이어가 GWC 모드없이 올바르게 표시됩니까?
radek

1
프로젝션에 다른 구성 파일을 사용합니까? 참조 geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache
geographika

@geographika : 이전 버전의 GeoServer 문서라고 가정합니다. 최신 버전 : geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache . 내 GeoWebCache 구성 페이지에 타일이 3857 프로젝션으로 준비되었다고 표시되어 있으며 이는 내 웹 맵에서도 사용됩니다.
radek

문제를 해결 한 적이 있습니까? 더 큰 변화와 비슷한 문제가 있습니다. GWC 포럼에서 게시물에 대한 geographika talsk가 최종 솔루션을 유발하지만 해당 게시물을 찾지 못했습니다.
user28386

답변:


4

최신 정보

실제 원인과 해결 방법은 GWC 포럼에서 Radek의 게시물에 대한 답변을 참조하십시오. TileCache가 "현재 x 값 -1311047.936977이 임의의 오류 범위 내에서"가장 가까운 "타일을 다시 전달하지 않고 타일 모서리 x -1493907.560000과 너무 멀리 떨어져있는 이유를 이해했습니다.


EPSG 3857의 원본 데이터입니까? 그렇지 않은 경우 어딘가에서 발생하는 데이텀 전환 (아직)은 거의 확실합니다.

EPSG : 900913을 참조하도록 OpenLayers 정의를 변경해보십시오. GeoWebCache가 새 웹 메르카토르 코드를 인식하지 못합니까?

게시 한 링크에서 :

GeoWebCache의 통합 버전은 가장 일반적인 두 가지 투영법으로 모든 레이어를 자동으로 구성합니다.

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

추가 프로젝션이 필요한 경우 캐시 디렉토리에 geowebcache.xml이라는 구성 파일을 작성할 수 있습니다 (예 : /var/geoserver_data/gwc/geowebcache.xml).

Geoserver와 GeoWebCache가 다른 투영 파일을 사용하는 것처럼 들립니다. 어쩌면 지오 서버에는 to_wgs 매개 변수가 있고 GWC에는 없습니다.

Windows에서 프로세스 모니터-http: //technet.microsoft.com/en-us/sysinternals/bb896645 를 실행 하여 실제로 액세스중인 파일을 확인하십시오.

또한 일부 투영 매개 변수를 변경 한 후에 이미지가 캐시되지 않았다고 가정합니까? 다시 시드 / 삭제하여 확인하십시오.


감사. 예, 원래 데이터는 3857입니다. GWC가이 코드를 인식하는 것처럼 보입니다. GWC 데모 섹션에는 3857, 4326, 900913의 세 가지 투영법을 사용할 수 있습니다. 그리고지도의 목적 상 3857을 사용하고 있습니다. 900913으로 오류가 남아 있습니다.
radek

원본 데이터가 데이텀 이동없이 3857에있는 경우 GWC에서 재 투영이 발생하지 않으며 원래 데이터를 다시 투영해야한다고 생각합니다.
geographika

4

GeoWebCache에서와 같이 OpenLayers.Map에 올바른 타일 출처가 설정되어 있습니까? TileOrigin이 레이어의 GeoWebCache-demo에 어떻게 설정되어 있는지 확인하고 OpenLayers.Map 생성자에 동일한 TileOrigin이 있는지 확인하십시오.


감사. "tilesOrigin : map.maxExtent.left + ','+ map.maxExtent.bottom"으로 설정하려고했습니다. 여기서 maxExtent는 레이어의 GWC 데모에 따라 설정됩니다. 여전히 정확하지 않습니다.
radek

GWC 설정은 무엇입니까? GWC 또는 OpenLayers에서 DPI 설정을 조정해야 할 수도 있습니다
Peter

레이어의 GWC 데모 미리보기에 따라 DPI 설정을 조정하려고했습니다. 도움이되지 않았습니다.
radek

3

이와 같은 오정렬은 거의 항상 투영 문제입니다. 데이터가 EPSG : 3857에 저장되어 있습니까? GeoWebCache 레이어가 EPSG : 3857로 출력되도록 구성되어 있는지 확인하십시오.


예, 데이터 세트는 3857이며 GWC도 구성되어 있습니다.
radek

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.