| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 使用python,利用OSMnx库,获取国外POI数据 -> 正文阅读 |
|
[Python知识库]使用python,利用OSMnx库,获取国外POI数据 |
由于百度或者高德的API只能获取国内的POI,谷歌API需要翻墙而且还收费,所以一直为为何白嫖国外POI数据头疼。最近终于找到了方法,使用OSMnx,得到基于OSM地图提供的POI数据。 在学习的过程中,发现居然没有人写相关的文章介绍,没办法只能摸着石头过河,一点一点学习,这个功能最提出是在github issue中提到的。里面对于最初的功能设计、内容呈现之类的问题都有讨论,还是挺有意思的。同时也感谢这些开源贡献者,非常感谢! 基本介绍OSMnx是由南加大规划系的Geoff Boeing教授编写的OpenStreetMap的python拓展包。
OSMnx的基本功能:下载街道网络、下载POI、下载城市路网结构、可视化等。
对于这个文章,我们只需要知道,如何获得行政地点边界就可以,因为获取POI要使用到。 获得行政地点边界:osmnx.geocode_to_gdf(place)
获取POI的方法OSMnx提供获取POI的方法,和最初在github issue中的名字已经不一样了,现在的模块叫做osmnx.geometries module。模块非常规整,给出了5种获得数据的方式,分别是:
这5种方法,大家可以根据需要自己选择。具体的内容可以看官方文档,下面主要使用4和5方法。
实战在这里为了对比不同的方法,使用4和5方法进行演示。
通过点周围的POI获取经度 -122.3133443 ; 维度37.9285095,这个点附近10km的POI分布。
得到的p1是一个DataFrame,index包括三个:node,way,relation。
way和relation是图中的多边形,对于获取POI而言意义不大,我们只需要node 获得城市的POIox.geometries_from_polygon(place) ,其中的place需要是shapely.geometry.Polygon 或 shapely.geometry.MultiPolygon数据类型,因此这就需要用最开始提到了获取城市边界函数geocode_to_gdf,通过先获取指定城市的边界,之后将边界传入geometries_from_polygon
全部内容可视化
最后是储存数据,可以将p1所有的内容都存储为csv,方便对POI进行分类和分析,也可以将POI点存为shp文件,方便在gis软件操作。
gis中呈现 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 11:39:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |