Erik Westra ( Amazon link )의 'Python Geospatial Development'라는 책을 집어 들고 작업 중입니다. 현재 지리 공간 웹 앱을 구축하기 위해 셰이프 파일에서 PostGIS 데이터베이스로 GSHHS 해안선 데이터를로드하는 방법을 가르치고 있습니다.
내 문제는 이것입니다 : GSHHS 데이터를 PostGIS로 가져 오려고하면 해안선 다각형이 '유효한'것으로 간주되지 않기 때문에 거부됩니다. 구체적으로, 해안선 폴리곤의 일부 (모두는 아님)를 '비 폐쇄 링'으로 설명하는 오류 메시지가 표시됩니다.
이 오류는 다각형의 첫 번째 점과 마지막 점이 동일하지 않다는 것을 알려줍니다. 그러나 이것은 사실이 아닙니다. 많은 다각형의 WKT 표현을 살펴 보았으며 올바른 것입니다. 그들은 분명히 동일한 좌표로 시작하고 끝납니다.
다각형은 OGR 라이브러리를 사용하여 쉐이프 파일에서 추출되고 각 다각형 피처를 WKT로 내 보냅니다. Shapely를 통해 다각형을 재구성하려고 시도하고 WKB를 실험했지만 아무 소용이 없습니다. 나는 한 shp2pgsql 로더를 사용하여 다중 테이블로 PostGIS와에 동일한 데이터를로드 할 수 있었다.
: 내가 거기했다 밖으로 누구 경우 궁금 해서요
(a)는 아마 같은 문제에 붙어있어, 같은 책을 사용하고, 나에게 답이있다?
(ᄂ) 비슷한 문제가 발생하여 해결책을 찾았습니까?
(c) 실패하면 PostGIS에로드하기 전에 유효한 지오메트리를 보장하기위한 '모범 사례'조언이 있습니까?
업데이트 : 동료는 '닫히지 않은 고리'문제가 다른 문제의 증상 일 수 있다고 제안했습니다. PostGIS / PostgreSQL 구성에 크기 제한 (삽입 트랜잭션, 수신 패킷, 텍스트 문자열 등)이있을 수 있습니다.
매우 긴 WKT 다각형을 입력으로 사용하고 있으므로 PostGIS가 너무 빨리 절단하여 각 다각형을 완성 할 수 없습니다. 나는 내일 그것을 시험 할 것이다. 그러나 그것은 아마 들린다. 국가 테두리를 삽입하면 일부 레코드 만 허용하고 다른 레코드 는 허용 하지 않았습니다. 기억 상으로, 받아 들여진 기하학은 앤티가와 같은 작은 섬 국가를위한 것이었다 (아마도 WKT 표현이 짧았다).
따라서 이것은 잘못된 지오메트리 스레드가 아닌 PostGIS 데이터베이스 관리 스레드가 될 수 있습니다.