http://geojsonlint.com/ 오류가 발생합니다
Polygons and MultiPolygons should follow the right-hand rule
오래된 geojson 파일에 아무런 문제없이 지난 3 년 동안 사용했습니다. 이제 geojsonlint는 올바른 규칙을 적용하여 문제를 해결하는 방법을 설명합니다.
http://geojsonlint.com/ 오류가 발생합니다
Polygons and MultiPolygons should follow the right-hand rule
오래된 geojson 파일에 아무런 문제없이 지난 3 년 동안 사용했습니다. 이제 geojsonlint는 올바른 규칙을 적용하여 문제를 해결하는 방법을 설명합니다.
답변:
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에서 온 모든 다각형은 이미 오른 손상이었습니다.
내 오래된 geojson은 Google지도, 전단지, 오픈 레이어, 맵 박스, 빙 맵 등으로 작업했지만 geojsonlint.com의 유효성 검사에 실패했습니다 .
다른 웹 사이트를 사용하여 확인해야합니다 : http://geojson.io
이것을 찾아서 고칠 도구를 찾는 사람이라면 누구나. 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/
https://mapster.me/right-hand-rule-geojson-fixer/ 이 페이지에는 오른손 규칙 문제를 해결하는 클라이언트 측 자바 스크립트 기능이 있습니다.
이것은 파이썬을 사용하여 매우 쉽게 해결할 수 있습니다 geojson-rewind
.
from geojson_rewind import rewind
rewoundGeoJSON = rewind(geoJSONString)