shapefile转换geojson
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import shapefile
import codecs
from json import dumps
# read the shapefile
def shp2geo( file = "line出产.shp" ):
reader = shapefile.Reader( file )
fields = reader.fields[ 1 :]
field_names = [field[ 0 ] for field in fields]
buffer = []
for sr in reader.shapeRecords():
record = sr.record
record = [r.decode( 'gb2312' , 'ignore' ) if isinstance (r, bytes)
else r for r in record]
atr = dict ( zip (field_names, record))
geom = sr.shape.__geo_interface__
buffer .append( dict ( type = "Feature" , geometry = geom, properties = atr))
# write the GeoJSON file
geojson = codecs. open ( file .split( '.' )[ 0 ] + "-geo.json" , "w" , encoding = "gb2312" )
geojson.write(dumps({ "type" : "FeatureCollection" , "features" : buffer }, indent = 2 ) + "\n" )
geojson.close()
if __name__ = = '__main__' :
# import os
# for z,x,c in os.walk('.'):
# for zz in c:
# if zz.endswith(".shp"):
# shp2geo(zz)
# shp2geo(file='D.shp')
shp2geo( file = 'ttttttttttt.shp' )
|
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/staHuri/article/details/80838226