快捷搜索:  汽车  科技

python用经纬度画地图(Python高德地图指定区域经纬度数据抓取)

python用经纬度画地图(Python高德地图指定区域经纬度数据抓取)# 引如requess库 import requests # 下载数据 data = requests.get(url='http://ditu.amap.com/service/poiInfo?query_type=TQUERY&keywords=东莞理工学院') # 导入json包 import json # 利用json包把上述字符串解析成Python字典 js = json.loads(data.text) # 将结果保存下来,进行下一步解析 points1 = js['data']['poi_list'][0]['bound'] points2 = js['data']['poi_list'][1]['bound'] # 用‘_’来分割这些点 会生成一个列表 point

python用经纬度画地图(Python高德地图指定区域经纬度数据抓取)(1)

在这里插入图片描述

@Author : Runsen

高德地图【东莞理工学院】

  • 如下链接为从高德地图获取【东莞理工学院】这个区域边界经纬度坐标点的链接

https://ditu.amap.com/service/poiInfo?query_type=TQUERY&keywords=东莞理工学院

  • 可以发现,访问该链接返回的数据是以json格式存储的 如果直接存储返回的网页,那么默认保存格式应该为json
  • 目标是将该json文件中区域边缘点的经纬度坐标提取出来

# 引如requess库 import requests # 下载数据 data = requests.get(url='http://ditu.amap.com/service/poiInfo?query_type=TQUERY&keywords=东莞理工学院') data.text # 导入json包 import json # 利用json包把上述字符串解析成Python字典 js = json.loads(data.text)

python用经纬度画地图(Python高德地图指定区域经纬度数据抓取)(2)

在这里插入图片描述

# 再看嵌套的小字典data的keys js['data'].keys() dict_keys(['codepoint' 'code' 'suggestion' 'timestamp' 'lqii' 'is_general_search' 'result' 'keywords' 'message' 'total' 'busline_list' 'bus_list' 'general_flag' 'bounds' 'version' 'busline_count' 'magicbox_data' 'interior_count' 'poi_list'])

# 查看输出,我们知道区域边缘坐标点应该是保存在key = 'poi_list'对应的value中的,把它提取出来 js['data']['poi_list']

g

python用经纬度画地图(Python高德地图指定区域经纬度数据抓取)(3)

python用经纬度画地图(Python高德地图指定区域经纬度数据抓取)(4)

python用经纬度画地图(Python高德地图指定区域经纬度数据抓取)(5)

python用经纬度画地图(Python高德地图指定区域经纬度数据抓取)(6)

python用经纬度画地图(Python高德地图指定区域经纬度数据抓取)(7)

以下是全代码

# 引如requess库 import requests # 下载数据 data = requests.get(url='http://ditu.amap.com/service/poiInfo?query_type=TQUERY&keywords=东莞理工学院') # 导入json包 import json # 利用json包把上述字符串解析成Python字典 js = json.loads(data.text) # 将结果保存下来,进行下一步解析 points1 = js['data']['poi_list'][0]['bound'] points2 = js['data']['poi_list'][1]['bound'] # 用‘_’来分割这些点 会生成一个列表 points= points1.split('_') import pandas as pd df = pd.DataFrame(points columns=['lat_lng']) # 把经度解析出来 df['longitude'] = df['lat_lng'].apply(lambda s:s.split(' ')[0]) # 把纬度解析出来 df['latitude'] = df['lat_lng'].apply(lambda s:s.split(' ')[1]) # 删掉第一个字段 df = df.drop('lat_lng' axis = 1) # 把数据保存到本地 df.to_csv('./data/scau.csv' index = False)

现在试下抓取的数据 用的

python用经纬度画地图(Python高德地图指定区域经纬度数据抓取)(8)

python用经纬度画地图(Python高德地图指定区域经纬度数据抓取)(9)

python用经纬度画地图(Python高德地图指定区域经纬度数据抓取)(10)

猜您喜欢: