Geojson轉Shapefile

這幾天和學長一起打比賽,處理了下數據。
如果你對Geojson轉Shapefile有疑問,就看下去吧~

Geojson的解釋

這是我處理的部分數據,還是比較複雜的。

{"type": "FeatureCollection",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::32631" } },

"features": [
{ "type": "Feature", "properties": { "roof_075mean": 9.5799999237060547, "roof_075median": 9.5799999237060547, "roof_075stdev": 0.0, "Building_ID": 25788, "origarea": 335.77789383629062, "origlen": 0, "partialDec": 1.0, "truncated": 0 }, 
          "geometry": { "type": "Polygon", 
          				"coordinates": [ [ [ 592407.327600155258551, 5749547.382130783051252, 0.0 ], [ 592413.664810819551349, 5749518.051389320753515, 0.0 ], [ 592402.858775754342787, 5749515.791177336126566, 0.0 ], [ 592396.220214118831791, 5749545.007996829226613, 0.0 ], [ 592407.327600155258551, 5749547.382130783051252, 0.0 ] ] ] } },
}

crs代表座標系,這個是非常重要的,如果你轉換成Shapefile文件沒有座標系,那其實都沒有用。
"features"字段裏面的geometry代表不同的類型,有Polygon,LineString和Point。

我查閱了geoJson轉換Shapefile這篇文章,這篇文章對我來說有2個問題,1.代碼只涉及轉換了 geometry,沒有轉換其他字段,而且轉換的shapefile沒有座標系。2.這篇文章的Python的庫,我下了很久。於是我覺得還是找現成的工具,不要自己打代碼。這句話對大家,我覺得也是適用的。

使用ogr2ogr命令轉換文件格式

1.大家需要下載一個軟件。windows編譯好的gdal下載地址:http://www.gisinternals.com/release.php。如果是,windows,大家要下載zip版本啊,我原本選的msi不可以。
下載完畢後,打開下載的文件的目錄,解壓然後進入。右鍵SDKShell.bat,以管理員身份進行。
在這裏插入圖片描述
然後輸入命令,就可以了。
shpefile轉GeoJSON格式

下面這條命令可以讓test.geojson變成 result.shp。如果要加入路徑,可以以下爲例,替換代碼,路徑寫\\,我強烈推薦大家result.shp一定要加目錄,這樣就很好找(最好用英文目錄啊!)。

ogr2ogr -f "ESRI Shapefile" D:\\Research\\result.shp  D:\\Research\\test.geojson

("GeoJSON"不要忘記雙引號)
test.shp轉result.geojson格式,也是同樣的道理。如果要加路徑,和上面代碼是一樣的。

ogr2ogr -f "GeoJSON" result.geojson test.shp

找到相應目錄,查看產生的shapefile結果文件(比如我的就是D:\\Research\\result.shp)是否產生成果。然後打開ArcMap,添加數據點擊產生的shapefile數據,你就可以看到有座標系的圖形了。

附一張我的結果圖 😃,希望大家也成功!
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章