WMS를 사용하여 Geoserver에서 사라지는 포인트 기능


10

WMS를 사용하여 Geoserver 2.2.1과 함께 사용하려는 전 세계에 약 6,500 개의 점이있는 shapefile이 있습니다. 전단지를 사용하는 클라이언트 응용 프로그램에서 필터링 기능을 구현할 때까지 모든 것이 잘되었습니다. WMS 쿼리에 CQL_FILTER (공간 필터가 아닌 속성 필터)를 추가하면 축소시 누락 된 기능이 발견되었습니다. 다시 확대하면 때로는 다시 나타나지만 항상 그런 것은 아닙니다. 아래 이미지를 참조하십시오-

나란히 비교

왼쪽의 확대 / 축소 수준에서는 애틀랜타가 표시되지 않습니다. 확대하면 그렇습니다. 그러나 때때로 탬파의 지점조차도 왼쪽의 확대 / 축소 수준으로 표시되지 않습니다. 3 단계를 더 축소하면 포인트가 전혀 표시되지 않습니다. 문제가 CQL_FILTER 매개 변수인지 확실하지 않습니다 .6,500 점에서는 글로벌 스케일에서 누락 된 점이 거의 보이지 않지만 여기에 표시된 특정 필터는 세 가지 기능으로 만 필터링됩니다. 특히 눈에 띄는 줌 레벨에 따라 1 ~ 3 개가 없습니다.

고급 맵 옵션에서 CQL 필터를 사용하여 지오 서버의 자체 레이어 미리보기에서 이와 동일한 동작을 다시 만들 수 있으므로 클라이언트 응용 프로그램이 아니라고 확신합니다.

이 문제를 디버깅하는 내 자신의 단계에 대해서는 기본 Points 스타일 / sld 파일을 사용하여 내 레이어 스타일을 배제했습니다. 내가 아는 모든 캐싱을 해제했습니다. 투영이 올바른지 다시 확인했습니다. WGS_1984_Web_Mercator_Auxiliary_Sphere를 투영으로 사용하여 ArcGIS 10에서 shapefile을 생성했으며 지오 서버에서 레이어가 EPSG : 3857로 설정되어 있습니다. 또한 geoserver 2.2에서 2.2.1로 업그레이드했으며 두 가지 모두에서 동일한 문제가 있습니다. 또한 지오 서버의 공간 인덱스 파일 (.qix)을 삭제하고 공간 인덱스가 손상된 Arc에서 비슷한 문제를 보았으므로 다시 생성 할 수 있었지만 분명히 작동하지 않았습니다.

다음은 CQL 필터를 켜고 위에서 표시된 것과 동일한 영역으로 확대 한 Geoserver 자체 레이어 미리보기의 스냅 샷입니다. 빨간색 원은 대략 다른 지점 (애틀랜타)을 볼 수있는 곳입니다.

오픈 레이어 예제

내가 생각할 수있는 다른 모든 설정을 조정하려고했지만 운이 없습니다. 또한 지오 서버 로그를 위아래로 살펴보고 자세한 로깅을 활성화했으며 오류 / 예외가 표시되지 않습니다. 또한 크롬 개발자 도구에 잘못된 요청이 표시되지 않습니다.

중요한 정보가 누락 된 경우 가능한 정보를 제공하지만 내부 / 비공개 응용 프로그램입니다.


1
명백한 것을 배제 : 당신은 우연히 규모에 따라 스타일이 있습니까? (즉, 포인트는 특정 저울 사이에 표시됩니다)
unicoletti

1
VENUE_TYPE의 값이 유효 / 일관되는지 확인할 수 있습니까? 일관되지 않은 결과는 bbox의 약간의 차이로 인해 다른 순서로 기능이 반환되고 그 중 하나가 어떤 방식 으로든 '나쁜'기능으로 인해 렌더링이 애틀랜타에 닿기 전에 중지되는 결과 일 수 있습니다. 데이터를 다른 형식으로 내보내는 것을 테스트 한 다음 1) 예상대로 이동 한 모든 항목을 확인한 다음 2) 필터 / 렌더링 다시 테스트
tomfumb

1
@unicoletti 스크린 샷에 표시된 레이어에는 스케일 종속성이 있지만 Geoserver가 제공하는 기본 '포인트'스타일을 사용할 때 동일한 결과가 표시됩니다. 스케일 종속성이 없으므로 동일한 스케일에서 정확히 동일한 점이 사라지는 것을 볼 수 있습니다 .
MWrenn

1
@tomfumb VENUE_TYPE 열의 값을 살펴 보았고 가끔 슬래시 '/'또는 앰퍼샌드 '&'를 제외한 모든 영숫자입니다. 슬래시와 앰퍼샌드로 레코드를 가져 와서 차이가 있는지 확인하겠습니다. 참고 로이 shapefile의 DBF는 지오 서버에서도 설정 한 UTF-8로 인코딩됩니다. 그것이 차이를 만들 수 있습니까?
MWrenn

4
@MWrenn 확실하지 않으므로 답변을 시도하지 않지만 데이터를 다른 형식으로 내 보내면 현재 상점 / 형식이 문제인지 확인하는 데 도움이됩니다. 아마도 ArcMap 또는 QGIS에서 Shp를 열어 영역을 예제의 bbox로 제한 한 다음 포함 된 기능의 속성을 검사하십시오. 여기에는 인코딩의 영향을받는 특수 문자가 포함됩니까?
tomfumb

답변:


1

내가 구현 한 "솔루션"은 shp2pqsql을 사용하여 shapefile을 postGIS 데이터베이스로 가져 오는 것으로 CQL 필터를 사용할 때 사라지는 포인트 기능을 해결했습니다. 정확히 동일한 CQL 필터 요청을 만들고 모든 확대 / 축소 수준에서 모든 포인트를 볼 수 있습니다. 그런 다음 shapefile 대신 postGIS 데이터베이스를 업데이트하기 위해 몇 가지 자동화 된 프로세스를 조정해야했지만 몇 시간 밖에 걸리지 않았습니다.

나는 여전히 포인트 기능이 사라지는 근본 원인을 확신하지 못합니다. 매번 동일한 결과로 다른 투영 및 쉐이프 파일 작성자 (QGis, ESRI, shapefile.py 또는 pyShape 또는 기타)를 시도했습니다. 지오 서버에 대한 전문가가 아니므로 버그라고 부르는 것이 주저하고 아마도 내 설정과 관련이 있지만 2.2 및 2.2를 실행하는 두 개의 서로 다른 지오 서버 컴퓨터에서 실행되는 두 개의 서로 다른 인스턴스에서 재현 할 수있었습니다. Windows (Server 2003의 경우 하나의 XP)

소스 셰이프 파일도 게시 할 수 없으므로 근본 원인이 미스터리로 남아있을 것 같습니다.

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