Python实现Shapefile转GeoJSON:基于shapefile库的完整代码示例
本文介绍如何使用Python将Shapefile(.shp)文件转换为GeoJSON格式。通过shapefile库读取数据,处理字段编码(如gb2312),并将几何对象与属性映射为FeatureCollection。提供完整代码示例,适用于GIS数据格式转换场景。
Shapefile转换为GeoJSON
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')
总结
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对本站的支持。如果你想了解更多相关内容请查看下面相关链接
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













