如何从 Python 的 LineStrings 列表创建 GeoJSON

我有一个看起来像这样的 python 列表:


type(route)

>>>list


print(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),但是当我后来转储它时创建了一个无效的文件。


qq_笑_17
浏览 258回答 1
1回答

眼眸繁星

看起来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)])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python