รูปหลายเหลี่ยมและ MultiPolygons ควรเป็นไปตามกฎด้านขวา


17

http://geojsonlint.com/ฉันได้รับข้อผิดพลาด

 Polygons and MultiPolygons should follow the right-hand rule

ฉันใช้มัน 3 ปีที่ผ่านมาโดยไม่มีปัญหากับไฟล์ geojson เก่าของฉัน ตอนนี้ geojsonlint บังคับใช้กฎมือขวาวิธีแก้ไขปัญหา

คำตอบ:


7

ณ สิงหาคม 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 รูปหลายเหลี่ยมทั้งหมดของฉันมีบาดแผลทางขวาแล้ว


สำหรับฉันมันจะดีถ้า geojsonlint มีตัวเลือกที่จะข้ามการทดสอบที่คดเคี้ยวหรือรายงานว่าเป็นปัญหาที่แยกต่างหาก นั่นคือสิ่งที่สเปคแนะนำอย่างใดเช่นกัน
30184

4

geojson เก่าของฉันทำงานกับแผนที่ google, แผ่นพับ, openlayer, mapbox, bing map, ฯลฯ อย่างไรก็ตามการตรวจสอบgeojsonlint.comล้มเหลว

ฉันต้องใช้เว็บไซต์อื่นเพื่อตรวจสอบ: http://geojson.io


4

สำหรับทุกคนที่ค้นหาสิ่งนี้และมองหาเครื่องมือในการแก้ไข 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/


3

https://mapster.me/right-hand-rule-geojson-fixer/หน้านี้มีฟังก์ชั่นจาวาสคริปต์ฝั่งไคลเอ็นต์ที่แก้ไขปัญหากฎมือขวา


บริการนี้ไม่ทำงานอีกต่อไปใน FF หรือ Chrome
Henrik

@Henrik: ฉันเพิ่งใช้มันทำงานอย่างถูกต้องใน FF.70 บางทีมันอาจจะกลับมา
allez l'OM

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.