我有一个看起来像这样的 python 列表:type(route)>>>listprint(route)[{'type': 'LineString','coordinates': [[-94.586472, 39.098705], [-64.586487, 39.098716], [-64.585969, 39.094146], [-64.586037, 39.093936], [-64.586037, 39.093936], [-64.586046, 39.093933]]},{'type': 'LineString','coordinates': [[-94.581459, 39.093506], [-64.581451, 39.09351], [-64.581444, 39.093506], [-64.581459, 39.093433], [-64.581726, 39.093418], [-64.588631, 39.087582]]},{'type': 'LineString','coordinates': [[-94.584312, 39.042758], [-64.584312, 39.042758], [-64.583225, 39.099256], [-64.584328, 39.09932]]}]如何将其转换为有效的 GeoJSON 文件?我试过了test = FeatureCollection(features=route),但是当我后来转储它时创建了一个无效的文件。
1 回答

眼眸繁星
TA贡献1873条经验 获得超9个赞
看起来FeatureCollection需要每个项目的类型Feature都与您当前的路由具有不同的架构。最简单的解决方案是使用列表理解将每个路由映射到Feature模式中。
def route_to_feature(idx, route):
return {
'type': 'Feature',
'geometry': route,
'properties': {
'name': f'Route #{idx}'
}
}
可以这样使用。
geojson.FeatureCollection([
route_to_feature(i, route)
for i, route
in enumerate(routes)
])
添加回答
举报
0/150
提交
取消