第二篇博客写个poi点数吧,简单写一下思路。
一、需求:
获取某个中心城区的所有poi点,要素成果直接为shp格式
二、数据源与工具:
高德api,pandas库,pyshp(用来直接生成shp文件)
三、实现步骤:
注意点:
1.本次调用的是高德api矩阵选框,所以api构造需符合矩阵函数。详见高德api:https://lbs.amap.com/api/webservice/guide/api/search。offset为单页个数,最大值为25,回调参数有个count,则该poi点的页码数为:pages = math.ceil(float(dt[‘count’])/25) #math.ceil为页码进一。
2.由于每次仅能从单一矩阵采集数据900个,所以需要切割矩阵,将其做切割成多个矩阵,写一个类或者函数来实现,核心思路为确定左下右上角范围坐标,切割尺度。本次的范围为1500km2。
3.利用json.cn查看回调的json,确定需要存储的指标,我选取的指标为大类、中类、小类、name、address和timestamp以及location。
4.构造pois字典,按照键值对存放大类和中类,pois={‘交通设施服务’:[‘停车场’,‘公交车站’],‘商务住宅’:[‘楼宇’,‘住宅区’]};
5.坐标切割,遍历调用高德api函数get_datapoi(key,query,loc),参数分别为:key,query(查询字段)和loc(当前坐标);
6.坐标转换及数据清洗,github上提供了坐标转换函数,https://github.com/wandergis/coordTransform_py。数据清洗主要是由于网络不佳造成的try重复采集,所有需要利用到drop.duplicates()函数去重。
7.利用pyshp第三库,将数据生成shp。
成果:封装写好后,就让它跑吧,福州市中心城区1500km2,大概4个小时能全部下载完,暂时还没想到用处,先放着,做基础数据库,后期做一些设施评价和便利性以及与同类型城市横向对比用。
高德poi数据下载思路
最新推荐文章于 2024-05-10 09:19:11 发布