Перетворення GeoJSON у Shapefile за допомогою ogr2ogr?


24

У мене є файл GeoJson, який я хочу перетворити на ESRI Shapefile за допомогою ogr2ogr у FWTools.

Я спробував використовувати

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

Я отримав вихід

ПОМИЛКА 6: Неможливо створити поля типу StringList на шарах форм-файлів. ПОМИЛКА 1: Спроба записати не багатокутну (POINT) геометрію для введення shapefile. ПОМИЛКА 1: Передчасне припинення трансляції після невдалого перекладу шару OGRGeoJSON

Вхід GeoJSON, який ми надаємо, знаходиться у стандартному форматі geojson.

вміст geojson схожий на {to share Я взяв лише частину з масиву функцій}

{"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/…
Суніл

Дякую за привітання :) Я пройшов це посилання перед публікацією. Я не хочу використовувати FME, хочу зробити це за допомогою FWTools для Linux. Раніше я конвертував wkt у shapefile, що було цілком задовільно, але тепер я маю ті самі дані у форматі geoJSON замість wkt. і мені потрібно мати файл shp, в той час як я намагаюся зробити, я отримую помилки;
sidd.k

Я голосую за те, щоб відкрити це, оскільки пов'язане питання не відповідає на це запитання.
Devdatta Tengshe

Перетворення ваших тестових даних для мене добре працює з версіями ogr2ogr 1.9.2 та 1.10. Файл форми з 1 багатокутником створюється без помилок. Ваші "FWTools для linux" можуть бути занадто старими. Що ogr2ogr --versionговорить?
Герман

1
Перемикач --version ще не існував у версії 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 Я згоден з вами, це був лише приклад. Я оновлюю відповідь, враховуючи вашу пропозицію. Спасибі.
Антоніо Фальчіано

2
не рішення, але мені пощастило використовувати онлайн-інструмент, створений з ogr2ogr: ogre.adc4gis.com
JasonBK
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.