다각형 및 다중 다각형은 오른쪽 규칙을 따라야합니다.


17

http://geojsonlint.com/ 오류가 발생합니다

 Polygons and MultiPolygons should follow the right-hand rule

오래된 geojson 파일에 아무런 문제없이 지난 3 년 동안 사용했습니다. 이제 geojsonlint는 올바른 규칙을 적용하여 문제를 해결하는 방법을 설명합니다.

답변:


7

2016 년 8 월 현재 GeoJSON은 공식적인 IETF 사양 입니다. 그리고 일부 비공식적 2008 비공식 사양 에서 변경되었습니다 . 따라서 2016 사양에 유효하려면 다각형에 반드시 오른쪽 상처가 있어야 합니다.

참조 https://tools.ietf.org/html/rfc7946#section-3.1.6를

MUST 사용은 사양의 절대 요구 사항을 나타냅니다. 그러나 다른 권선을 거부하지 않는 것에 대한 후속 언어는 이상하고 일부 논쟁에 개방적입니다. 파서는 다른 권선을 받아들이고 수정해야합니다. 나는 geojsonlint (geojsonhint에서)가 피드백 메시지에서 반드시 사용해야하는 대신 단어를 사용하게 된 이유를 생각 합니다.

그래서 나는 geojsonlint.com위치가 2016 사양에 대한 링크를 페이지 상단에 배치 함에 따라 동의합니다 . 2016 년 사양에 따라 다각형이 잘못되었습니다. 그러나 2008 년 비공식 사양에 따르면 괜찮습니다. 따라서 다각형의 와인딩을 변경하지 않으려는 경우 사용하는 특정 린터 또는 파서는 2008 년 이전 사양을 준수해야하며 언젠가 갑자기 새로운 공식 사양으로 마이그레이션하지 않아야합니다.

또는 다각형 와인딩을 변경하면 두 사양에 모두 부합하고 2008 사양이 사라짐에 따라 미래에 더 잘 위치 할 수 있습니다.

저에게 2016 사양의 가장 큰 변화는 좌표계에 대한 지원이 완전히 떨어지는 것이 었습니다. 나는 NAD83에 모든 GeoJSON을 가지고 있었고 이제는 모든 GeoJSON이 WGS84이므로 조용히 제거해야했습니다. 다행히도 Oracle Spatial에서 온 모든 다각형은 이미 오른 손상이었습니다.


geojsonlint가 권선 테스트를 건너 뛰거나 별도의 문제로보고하는 옵션이 있다면 나에게 좋을 것입니다. 그것이 사양이 어떻게 든 권장하는 것입니다.
user30184

4

내 오래된 geojson은 Google지도, 전단지, 오픈 레이어, 맵 박스, 빙 맵 등으로 작업했지만 geojsonlint.com의 유효성 검사에 실패했습니다 .

다른 웹 사이트를 사용하여 확인해야합니다 : http://geojson.io


4

이것을 찾아서 고칠 도구를 찾는 사람이라면 누구나. GDAL ogr2ogr은 "2008"사양 GeoJSON을 가져 와서 "RFC7946"표준 모드 (오른쪽 방향에 따라 다각형을 사용)로 작성할 수 있습니다.

ogr2ogr -f GeoJSON -lco RFC7946=YES output.json input.json

또는 GeoJSON을 문자열로 입력 및 출력하려는 ​​스크립트에서 사용하십시오.

echo 'Your GeoJSON' | ogr2ogr -f GeoJSON -lco RFC7946=YES /vsistdout/ /vsistdin/



2

이것은 파이썬을 사용하여 매우 쉽게 해결할 수 있습니다 geojson-rewind.

from geojson_rewind import rewind

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