如何使用Python基于谷歌地图或公开空间数据集构建城市graph
问题解答
城市空间graph生成可行性
完全可以实现,有两类成熟实现路径:
- 基于谷歌地图能力实现:可调用谷歌地图Places API、Roads API拉取对应区域的POI(含办公区、居民区、商铺的属性信息)、道路网络、出行路线数据,拿到原始数据后用Python的
networkx库即可构建拓扑graph:可将POI点位、道路交叉口设为节点,出行路线/道路路段设为边,同时可直接给节点附加用地类型标注、给边附加通行距离/时长等权重。 - 基于公开数据集实现:可直接拉取开源城市空间数据,配合
osmnx库可以直接基于OpenStreetMap原始数据一键生成对应城市的道路、POI关联graph,也支持直接导入你手头已有的标注信息补充到节点/边的属性中。
可被Python直接读取的真实城市空间数据集
目前有大量通用公开数据集支持直接读取使用:
- OpenStreetMap(OSM)全量城市数据:通过
osmnx库可直接按城市名拉取对应区域的道路、POI、建筑、用地分类数据,拉取后可直接转为networkx的graph结构或者GeoDataFrame格式,无需额外做格式转换。 - 纽约市官方公开数据集:纽约市政开放平台提供全量的地块用地标注(明确区分办公、住宅、商业分类)、公交线路、步行道、POI点位数据,通用格式为shp、geojson,用Python的
geopandas库可直接读取,匹配你现有标注后即可关联到graph的节点/边属性上。 - 通用城市空间数据集:还有全球城市POI数据集、出行OD数据集等公开资源,大多支持导出为csv、geojson格式,可直接用Python的
pandas、geopandas读取后集成到你的graph中。
内容的提问来源于stack exchange,提问作者laser
相关产品推荐
相关产品推荐

