python爬取高德POI并生成shp(关键字搜索/多边形搜索)

本文介绍了如何使用Python调用高德开放平台API进行关键字和多边形搜索,获取POI信息,并利用pandas和geopandas生成GIS的shp文件。内容涵盖了申请API key、处理返回数据以及搜索策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高德开放平台提供了搜索POI功能,可以调用API来获取兴趣点的地理位置信息。本篇尝试用python获取高德POI并生成GIS常用shp文件。需要用的库有urllib3(或者request),json,以及用来生成shp的pandas和geopandas。

1. 申请高德开放平台Web服务API的key,个人开发者注意配额管理别超了额度和并发量,可以氪金增加额度。

2. 每次请求API最多返回对应区域内1000个POI信息,为了获取区域所有的POI,一般要划分区域或者划分多边形来获取。如果获取POI的数量大概不多,1000个都不到,按县来进行关键字搜索即可;如果数量比较多,需要用多边形搜索。

3. 平台还提供了POI分类编码和城市编码,用来选择类别和区域,用这个编码搜索会更准确。

1 关键字搜索

找出想要的POI编码,例如'140100'即为博物馆的POI。把想要的区域做成一个列表,例如['440303','440304']即为深圳罗湖区和福田区。另外还需要注意的是获取的POI坐标系是GCJ02,可以自行转换坐标系。

# get_Amap_POI('高德key','POI分类编码',[城市编码的列表],生成shp的路径名称)
def get_Amap_POI(key, types, location_list, shpname):
    poi_dict = {'id':[],'name':[],'type':[],'address':[],'lon':[],'lat':[]}
    print ('getting data...')
    for location in location_list:
        # count: number of POI in the page;
        count, page_index = 1,1
        while count != 0:
            parameters = "key={}&keywords={}&city={}&citylimit=true&output=JSON&page={}".format(key,types,location,page_index)
            url = "https://restapi.amap.com/v3/place/text?" + parameters
            http = urllib3.PoolManager()
            response = http.request('GET', url, timeout = 5.0)
            jsonDat
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值