如何动态提取GeoJSON中所有coordinates并转换为WKT?
解决GeoJSON批量转WKT并提取所有coordinates的问题
修改后的代码
from pathlib import Path import geojson from shapely.geometry import shape ROOT = Path('path/') # 遍历目录下所有GeoJSON文件 for gjf in ROOT.glob('*.geojson'): with open(gjf, 'r') as f: gj_data = geojson.load(f) # 遍历文件中所有features for idx, feature in enumerate(gjf_data['features']): # 获取当前feature的geometry(保留原类型,避免硬编码) geometry = feature['geometry'] # 转换为Shapely几何对象并生成WKT geom_obj = shape(geometry) wkt_str = geom_obj.wkt # 生成输出文件名:原文件名_序号.wkt output_filename = gjf.stem + f'_{idx}.wkt' output_path = ROOT / output_filename # 保存WKT到文件 with open(output_path, 'w') as out_f: out_f.write(wkt_str)
关键改动说明
- 遍历所有要素:替换原代码仅提取首个feature的逻辑,用
enumerate遍历所有features并记录序号,确保每个coordinates都被处理 - 保留原生几何类型:不再硬写
type="Polygon",直接使用feature自带的geometry结构,兼容MultiPolygon等其他几何类型 - 规范路径处理:用
Path对象的glob、stem方法替代字符串拼接,避免跨平台路径格式错误 - 独立生成WKT文件:每个要素对应一个单独的WKT文件,文件名以原GeoJSON名加序号区分,方便后续对应查找
内容的提问来源于stack exchange,提问作者DanielBell99
相关产品推荐
相关产品推荐

