แปลง GeoJSON เป็น Shapefile โดยใช้ ogr2ogr หรือไม่


24

ฉันมีไฟล์ GeoJson ที่ฉันต้องการแปลงเป็น ESRI Shapefile โดยใช้ ogr2ogr ใน FWTools

ฉันพยายามใช้

ogr2ogr -F "ESRI Shapefile" filename.shp geojsonfile.json OGRGeoJSON

ฉันได้ผลลัพธ์แล้ว

ข้อผิดพลาด 6: ไม่สามารถสร้างฟิลด์ของประเภท StringList บนเลเยอร์ shapefile ข้อผิดพลาด 1: พยายามเขียนเรขาคณิตที่ไม่ใช่รูปหลายเหลี่ยม (POINT) เพื่อพิมพ์ shapefile ข้อผิดพลาด 1: การยกเลิกการแปลก่อนกำหนดหลังจากการแปลเลเยอร์ OGRGeoJSON ล้มเหลว

อินพุต GeoJSON ที่เราให้นั้นอยู่ในรูปแบบ geojson มาตรฐาน

เนื้อหาของ geojson เป็นเหมือน {เพื่อแบ่งปันฉันเอาเพียงบางส่วนจากคุณสมบัติอาร์เรย์}

{"id":1223,
"properties":{"name":"3","level":2},
"map_version":11,"type":"FeatureCollection","x_id":1234,"obj_type":"LevelGeometry",
"features":[

{
"my_area":[131.40093253528894,33.58879853190332,6.515867411008615,3.490549810987222,-0.6237271428108215],
"id":1984791,
"location":{"type":"Point","coordinates":[131.4009325,33.5887985]},
"properties":{"display_name":"xyz"},
"type":"Feature",
"geometry":{"type":"Polygon","coordinates":[[[131.4009508,33.5888314],[131.4008895,33.5887946],[131.4009148,33.5887653],[131.4009761,33.5888020],[131.4009508,33.5888314]]]},
"obj_type":"Geometry"
}

]
}

2
ยินดีต้อนรับสู่ฟอรัม SE.GIS มีคำถามที่คล้ายกันดูgis.stackexchange.com/questions/13762/ …
Sunil

ขอบคุณสำหรับการต้อนรับ :) ฉันได้ผ่านลิงค์นั้นก่อนโพสต์ ฉันไม่ต้องการใช้ FME ต้องการใช้ FWTools สำหรับ linux ฉันแปลง wkt เป็น shapefile ก่อนหน้านี้ซึ่งค่อนข้างน่าพอใจ แต่ตอนนี้ฉันมีข้อมูลเดียวกันในรูปแบบ geoJSON แทนที่จะเป็น wkt และจำเป็นต้องมีไฟล์ shp ในขณะที่ฉันพยายามฉันจะได้รับข้อผิดพลาด;
sidd.k

ฉันลงคะแนนเพื่อให้เปิดอยู่เนื่องจากคำถามที่เชื่อมโยงไม่ตอบคำถามนี้
Devdatta Tengshe

การแปลงข้อมูลทดสอบของคุณใช้ได้ดีสำหรับฉันด้วย ogr2ogr เวอร์ชั่น 1.9.2 และ 1.10 Shapefile ที่มี 1 รูปหลายเหลี่ยมถูกสร้างขึ้นโดยไม่มีข้อผิดพลาด "FWTools for linux" ของคุณอาจเก่าเกินไป สิ่งที่ไม่ogr2ogr --versionพูด?
แฮร์มันน์

1
--version switch ยังไม่มีในรุ่น ogr2ogr ที่เผยแพร่ด้วย FWTools 2.0.6 ฉันยังเดาว่ามันยังไม่รองรับ GeoJSON เช่นกัน 2.0.6 เก่ามาก (~ 2006) มีเหตุผลที่คุณไม่สามารถใช้ GDAL รุ่นที่ทันสมัยได้หรือไม่
DavidF

คำตอบ:


28

คุณต้องบังคับประเภทเรขาคณิต SHP (เนื่องจากประเภทเรขาคณิตของ GeoJSON Geometry Collection ไม่ได้รับการสนับสนุนใน SHP) และใช้-skipfailuresตัวเลือก:

ogr2ogr -nlt POINT -skipfailures points.shp geojsonfile.json OGRGeoJSON    
ogr2ogr -nlt LINESTRING -skipfailures linestrings.shp geojsonfile.json OGRGeoJSON
ogr2ogr -nlt POLYGON -skipfailures polygons.shp geojsonfile.json OGRGeoJSON

(ทดสอบกับ GDAL 1.10.0 เปิดตัว 2013/04/24)


2
เพื่อให้ได้ประโยชน์สูงสุดจาก Geojson ฉันขอแนะนำให้ใช้จุดเดียวกัน (และเส้นถ้าคุณมีใน Geojson) ด้วยวิธีนี้คุณจะได้ไฟล์สองหรือสามรูปจากหนึ่ง Geojson
AndreJ

@ AndreJoost ฉันเห็นด้วยกับคุณนี่เป็นเพียงตัวอย่าง ฉันอัปเดตคำตอบโดยพิจารณาจากคำแนะนำของคุณ ขอบคุณ
Antonio Falciano เมื่อ

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