简单快速获取POI-BaiduPOI

所属专辑   规划资源和工具

文件个数1个文件

背     景


从本科开始我就对城市规划中的数据分析很感兴趣,研究生在美国学了data science。有了一些编程能力之后,感觉自己之前收集数据的方法实在是不太明智(当然,现在的这个小程序也不怎么聪明),于是写了一个小程序来帮助大家简单直白地获取POI。


首先简单介绍一下,小程序使用的是百度的API。API可以理解为一个接口,让用户能够向服务器请求数据。很多网站都有API,谷歌,高德,微博都有。有了API我们就可以合法地获取数据,而不是使用风险很高的“爬虫”。API通常是付费的,不过百度目前免费,每个用户每天有两千次的使用权限,别太贪心,这个数量是够用的。


在正式开始介绍小程序的使用方法前,我还是想说,获取开源数据非常容易,在ArcGIS里搞一些莫名其妙的图也很容易,但是难点仍然是如何解读结果,如何把结果应用到规划和设计。


测试环境: win 10 pro x64



操 作 步 骤


第一步:下载程序


百度网盘:

https://pan.baidu.com/s/1sKW3cJYHVxQ1a0a52m-y9A

提取码: pdmb



或Dropbox:

https://www.dropbox.com/s/6ugh5m0vdy4qfx7/BaiduPoi.exe?dl=0

下载exe文件后,双击打开即可,无需安装。



第二步:获取AK


AK即API Key,是一个用户身份的验证,要输入正确的API Key程序才能正常使用。好好保管,不要泄露。


http://lbsyun.baidu.com/

登录-控制台-创建应用


1570590488665018.jpg

1570590499541575.jpg

1570590520652674.jpg


应用类型选“浏览器端”。


1570590538789454.jpg


不要尝试用截图里的key,已经被我删掉了。



第三步:双击打开软件BaiduPOI,依次输入以下内容


1570590557420273.jpg

漫长的等待,出现提示后依次输入。


1. 输入API Key

每次使用软件只需要在第一次搜索时输入API Key,之后会默认使用同一APIKey。


2. 输入POI类型

详见页面

http://lbsyun.baidu.com/index.php?title=lbscloud/poitags


3. 输入中心点坐标

建议使用百度坐标拾取器:

https://api.map.baidu.com/lbsapi/getpoint/index.html


目前只能实现圆形搜索,更多搜索方法请参考:

http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-placeapi


4. 输入坐标类型

1)WGS84ll即GPS经纬度

2)GCJ02ll即国测局经纬度坐标

3)BD09l即百度经纬度坐标


建议:wgs84不要在国内用,gcj是高德坐标系。百度API就用BD09ll,取中心点坐标的时候也用百度取。


5. 输入地点名称

下载结束后会自动生成一个输入地点名称的文件名,相同地点名的不同POI类型会分别命名同在同一文件夹下,如图所示:


1570590618751414.jpg


6. 输入搜索半径

以米为单位


采集数据结果截图展示:

1570590640323127.jpg

CSV格式


1570590657294693.jpg

Shp格式



一 些 建 议

  • 本程序尽量放在桌面上使用。




  • API每次最多返回400条数据,所以搜索半径尽量小,一定用二级行业分类,宁可多用几个中心点多搜索几次。

  • 由于上一条提到的问题,所以多次搜索的时候可能会出现重复,这种情况下就不能直接使用shp,把几次搜索结果的csv文件放在excel里删去重复值。


  • 在ArcGIS中使用时,导入shp后defineprojection为GCS_WGS_1984,SRID为4326。虽然前文说了不要使用WGS_1984,但是ArcGIS里并没有百度的坐标系,百度和高德也只是在wgs84上进行了一次加密。只要你其他数据源和POI使用的同一套地理坐标系就好。

  • 更多说明请参考:

http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-placeapi