为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 Python 的 LineStrings 列表创建 GeoJSON

如何从 Python 的 LineStrings 列表创建 GeoJSON

qq_笑_17 2021-07-02 14:00:26
我有一个看起来像这样的 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)

])


查看完整回答
反对 回复 2021-07-13
  • 1 回答
  • 0 关注
  • 215 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信