http://geojsonlint.com/ฉันได้รับข้อผิดพลาด
Polygons and MultiPolygons should follow the right-hand rule
ฉันใช้มัน 3 ปีที่ผ่านมาโดยไม่มีปัญหากับไฟล์ geojson เก่าของฉัน ตอนนี้ geojsonlint บังคับใช้กฎมือขวาวิธีแก้ไขปัญหา
http://geojsonlint.com/ฉันได้รับข้อผิดพลาด
Polygons and MultiPolygons should follow the right-hand rule
ฉันใช้มัน 3 ปีที่ผ่านมาโดยไม่มีปัญหากับไฟล์ geojson เก่าของฉัน ตอนนี้ geojsonlint บังคับใช้กฎมือขวาวิธีแก้ไขปัญหา
คำตอบ:
ณ สิงหาคม 2016 GeoJSON ตอนนี้เป็นสเปคของ IETF อย่างเป็นทางการ และบางสิ่งบางอย่างที่มีการเปลี่ยนแปลงจากเก่าทางการ 2008 สเปค ดังนั้นเพื่อให้ถูกต้องสำหรับข้อมูลจำเพาะปี 2559 รูปหลายเหลี่ยมของคุณต้องเป็นแผลขวามือ
ดูhttps://tools.ietf.org/html/rfc7946#section-3.1.6
การใช้งานต้องระบุถึงข้อกำหนดที่แน่นอนของข้อกำหนด อย่างไรก็ตามภาษาที่ตามมาเกี่ยวกับการไม่ปฏิเสธการพันขดลวดอื่น ๆ นั้นแปลกและเปิดให้มีการโต้แย้ง - บางที parsers ควรยอมรับและแก้ไขไขลานอื่น ๆ ฉันคิดว่านี่เป็นสิ่งที่นำไปสู่ geojsonlint (จาก geojsonhint) เพื่อใช้คำว่าควรแทนที่จะต้องอยู่ในข้อความแสดงความคิดเห็นของพวกเขา
ดังนั้นฉันจึงเห็นด้วยกับตำแหน่งของ geojsonlint.comเนื่องจากพวกเขาวางที่ด้านบนของหน้าลิงก์ไปยังสเป็คของปี 2016 รูปหลายเหลี่ยมของคุณไม่ดีตามข้อกำหนด 2016 แต่ถึงกระนั้นก็ยังไม่เป็นไรตามมาตรฐาน 2008 อย่างไม่เป็นทางการ ดังนั้นหากคุณไม่ต้องการเปลี่ยนรูปหลายเหลี่ยมที่คดเคี้ยวของคุณคุณจะต้องแน่ใจว่า linters หรือ parsers ใด ๆ ที่คุณใช้เป็นเกียรติแก่สเป็คเก่าปี 2008 และไม่ได้ย้ายไปสเป็คทางการใหม่ทันที
หรือบางทีคุณควรพิจารณาที่จะเปลี่ยนรูปหลายเหลี่ยมที่คดเคี้ยวเหมือนทำเช่นนั้นจะทำให้คุณสอดคล้องกับทั้งรายละเอียดและวางตำแหน่งที่ดีขึ้นสำหรับอนาคตเมื่อข้อมูลจำเพาะของปี 2008 จางหายไป
โปรดทราบว่าสำหรับฉันการเปลี่ยนแปลงที่ใหญ่ที่สุดในข้อมูลจำเพาะปี 2016 คือการลดลงอย่างเต็มที่ของการสนับสนุนสำหรับระบบพิกัด ฉันมี GeoJSON ของฉันทั้งหมดใน NAD83 แล้วต้องลบออกเงียบ ๆ เพราะตอนนี้ GeoJSON ทั้งหมดคือ WGS84 โชคดีสำหรับฉันที่มาจาก Oracle Spatial รูปหลายเหลี่ยมทั้งหมดของฉันมีบาดแผลทางขวาแล้ว
geojson เก่าของฉันทำงานกับแผนที่ google, แผ่นพับ, openlayer, mapbox, bing map, ฯลฯ อย่างไรก็ตามการตรวจสอบgeojsonlint.comล้มเหลว
ฉันต้องใช้เว็บไซต์อื่นเพื่อตรวจสอบ: http://geojson.io
สำหรับทุกคนที่ค้นหาสิ่งนี้และมองหาเครื่องมือในการแก้ไข GDALs ogr2ogr สามารถใช้ข้อมูลจำเพาะ GeoJSON "2008" และเขียนออกมาในโหมดมาตรฐาน "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)