0
私のデータはcensus mapsです。私はshapefilesやWKTファイルに慣れていませんが、私は自分自身のコードを作成しようとしたので、solutionを見つけることができました。WKTマルチポリゴン列のシェイプファイルからCSVへ
import ogr
import csv
#Open files
csvfile=open("states_wkt.csv",'wb')
ds=ogr.Open("cb_2015_us_state_20m.shp")
lyr=ds.GetLayer()
#Get field names
dfn=lyr.GetLayerDefn()
nfields=dfn.GetFieldCount()
fields=[]
for i in range(nfields):
fields.append(dfn.GetFieldDefn(i).GetName())
fields.append('kmlgeometry')
csvwriter = csv.DictWriter(csvfile, fields)
これは動作しますが、私はのように見えるジオメトリ結果を得る:私はこのようなマルチポリゴンの形でジオメトリデータを返すしたい私の特定のケースで
""kmlgeometry"":""<MultiGeometry>
<Polygon><outerBoundaryIs><LinearRing><coordinates>-118.593969,33.467198
-118.484785,33.487483 -118.370323,33.409285 -118.286261
</coordinates></LinearRing></outerBoundaryIs></Polygon>
<Polygon><outerBoundaryIs><LinearRing><coordinates>-118.594033,33.035951
-118.540069,32.980933 -118.446771,32.895424 -118.353504,32.821962 -118.425634
</coordinates></LinearRing></outerBoundaryIs></Polygon>
</MultiGeometry>
を:
MULTIPOLYGON (((-71.6062550000000044 42.0133709999999994,
-71.5276060000000058 42.0149979999999985, -71.5169060000000059
42.0155979999999971, -71.4999080000000049 42.0171989999999980,
-71.3814009999999968 42.0187979999999968, -71.3815050000000042
42.0000110000000006, -71.3812010000000043 41.9811979999999991)))
どうすれば実現できますか?私はGDALを使用して、使いやすい簡単なスクリプトを見つけるために管理
をあなたが表示されたコードは、どの時点で、あなたはKMLを抽出しない、まったくの結果と一致していませんか?いずれにしても、ogr features/geomsには 'ExportToJSON'メソッドもあります。 –
このコードはこの結果をもたらしました。私は読みやすさのためにそれを短縮しました。とにかく、これがKML形式であることのヒントについて感謝します。私がやったのは、http://gis.stackexchange.com/questions/7339/converting-shapefiles-to-text-asciiで見つけた 'ogr2ogr -f CSV output.csv myshape.shp -lco GEOMETRY = AS_WKT'です。ファイル –