高德地图全家桶
首先写下这几个标准操作
import pandas as pd # 实用的制表标准库
from pandas.io.json import json_normalize # 这个可以将json变成表格
import requests # 网络爬虫标准配置
key ="3f773d**********62d221d"
获取地理编码
def geocode(address,city=None,batch=None,sig=None)->dict:
"""获取地理编码"""
url = 'https://restapi.amap.com/v3/geocode/geo?parameters'
params={
'key': key,
'address':address,
'city':city,
'batch':batch,
'sig':sig,
'output':'json'
}
response = requests.get(url,params=params)
data = response.json()
# data_df = json_normalize(response.json()['geocodes'])
return data
家 = geocode('广…省潮…市潮…区潮……') # 写下家的详细地址
家_location = 家['geocodes'][0]['location'] # 这就是家的地理编码
逆地理编码
将经纬度转换为详细结构化的地址,且返回附近周边的POI、AOI信息。
def regeocode(location,poitype=None,radius=None,extensions="base",batch=False,roadlevel=None,sig=None,homeorcorp=None)->dict:
"""获取逆地理编码"""
url = 'https://restapi.amap.com/v3/geocode/regeo?parameters'
params={
'key': key,
'location':location,
'poitype':poitype,
'radius':radius,
'extensions':extensions,
'batch':batch,
'roadlevel':roadlevel,
'homeorcorp':homeorcorp,
'sig':sig,
'output':'json'
}
response = requests.get(url,params=params)
data = response.json()
return data
同时可以将地理编码和你地理编码的两个函数包装在一起,
def df_regecode(locale):
地理编码 = geocode(locale)['geocodes'][0]['location']
逆地理编码 = regeocode(地理编码,extensions="all")
df_逆地理编码 = json_normalize(逆地理编码['regeocode']['pois'])
return df_逆地理编码
df_regecode('广东省*****察大队')
路线规划
在此之前我们获取我所在的高中的地理编码“中学_location”。
步行
def walking(origin,destination,sig=None)->dict:
url = 'https://restapi.amap.com/v3/direction/walking?parameters'
params={
'key':key,
'origin':origin,
'destination':destination,
'output':'json'
}
response = requests.get(url,params=params)
data = response.json()['route']['paths'][0]['steps']
data_df = json_normalize(data)
return data_df
家_中学 = walking(家_location,中学_location)
(tips:这个函数是直接返回一个表格,如果想返回json格式则是
# 将
data = response.json()['route']['paths'][0]['steps']
data_df = json_normalize(data)
# 改成
data = response.json()
公交车
def bus(origin,destination,city,cityd,strategy,nightflag)->dict:
url = 'https://restapi.amap.com/v3/direction/transit/integrated?parameters'
params={
'key':key,
'origin':origin,
'destination':destination,
'city':city,
'cityd':cityd,