1.地理/逆地理编码

第一步:申请key
第二步:发起http/https请求
第三步:接收请求返回的数据(JSON或XML格式)

url:https://restapi.amap.com/v3/geocode/geo?parameters
https://restapi.amap.com/v3/geocode/geo?address=北京市朝阳区阜通东大街6号&output=XML&key=<用户的key>

返回的参数通过请求参数 output 指定,默认为 JSON 形式。返回的省市区信息为简要地址信息

def address(address):url="http://restapi.amap.com/v3/geocode/geo?key=%s&address=%s"%('你的key',address)data=requests.get(url)contest=data.json()#返回经度和纬度contest=contest['geocodes'][0]['location']return contest

批量地址编码

def geocode_batch(address_list):location_list = []num_reqs = len(address_list) // 20for index in range(num_reqs):sl = slice(index * 20, (index + 1) * 20)#每20个进行解析address_picked = address_list[sl]  address = '|'.join(address_picked)  # 用“|”拼接地址url = 'http://restapi.amap.com/v3/geocode/geo'params = {'address':address, 'key':'你的key', 'batch':True  # 要传batch参数,False为单点查询}try:res = requests.get(url, params, timeout=10)for add, geo in zip(address_picked, res.json()['geocodes']):if geo['location']:  # 当地址错误时,该地址的location为空location = map(float, geo['location'].split(','))else:print('address:{} can\'t be geocoded.'.format(add))location = [None] * 2  # 异常值用None代替location_list.append(location)except Exception as e:print(e)location_list += [[None, None]] * len(address_picked)return location_list

不同写法:

import requests# 执行一次高德地图地理逆编码的查询
# 输入值:coordList -> 经纬度的序列,currentKey -> 当前使用的Key
# 返回值:resultList -> 查询成功,返回结果地址的序列
#        -1 -> 执行当前查询时Key的配额用完了
#        -2 -> 执行当前查询出错
def geocode(locationlist):res=[]for add in locationlist:url = 'https://restapi.amap.com/v3/geocode/regeo?key=你的key&location='+add#     print(url)response = requests.get(url=url)answer = json.loads(response.text)adress = answer['regeocode']['formatted_address']
#     adress = answer['regeocode']['addressComponent']['province'] + \
#              answer['regeocode']['addressComponent']['city'] + \
#              answer['regeocode']['addressComponent']['district']+\
#              answer['regeocode']['addressComponent']['township']res.append(adress)return res

2.路径规划

driving 可以换成walking
https://restapi.amap.com/v3/direction/driving?origin=116.45925,39.910031&destination=116.587922,40.081577&output=xml&key=<用户的key>
def get_route(origin,destination):key = '你的key'url = https://restapi.amap.com/v3/direction/driving?origin={origin}&destination={destination}&output=xml&key=<你的key>res = request.get(url)res = res.textjsonData=json.loads(res)return jsonData
def get_route_info(start,end):    routeplan=[]for o in start:for d in end:route=[]#起点route.append(o)#终点route.append(d)#起点终点转换为经纬度ori=address(o)des=address(d)#路线规划info=get_route(ori,des)#status为0时,info返回错误原;否则返回“OK”。详情参阅info状态表if info["info"]=='OK':#起终点步行距离try:walk_distance=info['route']['distance']except:walk_distance='null'route.append(walk_distance)# 路线出租车费用try:taxi_cost=info['route']['taxi_cost']except:taxi_cost='null'route.append(taxi_cost)#路线时间try:duration=info['route']['transits'][0]['duration']except:duration='null'route.append(duration)#路线费用try:price=info['route']['transits'][0]['cost']except:price='null'route.append(price)#路线距离try:distance=info['route']['transits'][0]['distance']except:distance='null'route.append(distance)print(o,d,taxi_cost,duration,price,distance)routeplan.append(route)return routeplan

3.搜索poi

#关键字搜索
https://restapi.amap.com/v3/place/text?keywords=北京大学&city=beijing&output=xml&offset=20&page=1&key=<用户的key>&extensions=all
#周边搜索
https://restapi.amap.com/v3/place/around?key=<用户的key>&location=116.473168,39.993015&radius=10000&types=011100
#多边形搜索
https://restapi.amap.com/v3/place/polygon?polygon=116.460988,40.006919|116.48231,40.007381|116.47516,39.99713|116.472596,39.985227|116.45669,39.984989|116.460988,40.006919&keywords=kfc&output=xml&key=<用户的key>
#id查询
https://restapi.amap.com/v3/place/detail?id=B0FFFAB6J2&output=xml&key=<用户的key>
def PolygonSearch(address_list):address = '|'.join(address_list)  # 用“|”拼接地址inputUrl = "https://restapi.amap.com/v3/place/polygon?polygon=" + address + "&offset=20&page=1&types=010000&output=json&key=0ff30ea4c08544b5df4ed773a5a6636f"response = requests.get(inputUrl)# 返回结果,JSON格式resultAnswer = response.json()# 返回结果中的状态标签,1为成功,0为失败resultStatus = resultAnswer['status']if resultStatus == '1':  # 返回成功# 读取返回的POI列表resultList = resultAnswer['pois']if len(resultList) == 0:  # 返回的POI列表为空print("当前返回结果为空!")else:# 返回的POI列表不为空,则遍历读取所有的数据for j in range(0, len(resultList)):saveId = str(resultList[j]['id'])  # POI编号saveName = str(resultList[j]['name'])  # POI名称saveType = str(resultList[j]['type'])  # POI类别saveTypecode = str(resultList[j]['typecode'])  # POI类别编号saveAddress = str(resultList[j]['address'])  # POI地址saveLocation = str(resultList[j]['location'])  # POI坐标print([saveId, saveName, saveType, saveTypecode, saveAddress, saveLocation])else:print("当前返回结果错误!")

4.天气查询

url = "https://restapi.amap.com/v3/weather/weatherInfo"
key = '你的key'
data = {'key': key, "city": 320100}
req = requests.post(url, data)
info = req.json()

python +高德地图API调用相关推荐

  1. [Python 高德地图] API调用学习历程(四)

    [四]高德天气API调用 通过调用天气,应用在QQ机器人上,实现查天气功能 Python代码示例: async def get_weather_of_city(city: str) -> str ...

  2. python高德地图api调用实例_Python 利用高德地图api实现经纬度与地址的批量转换...

    我们都知道,可以使用高德地图api实现经纬度与地址的转换.那么,当我们有很多个地址与经纬度,需要批量转换的时候,应该怎么办呢? 在这里,选用高德Web服务的API,其中的地址/逆地址编码,可以实现经纬 ...

  3. [Python 高德地图] API调用学习历程(三)

    [三]基于网页/URL的地图点标记 单点标记 #基于网页单点位置标注 def heml_map(loaction: str):url_a = 'https://m.amap.com/navi/?des ...

  4. [Python 高德地图] API调用学习历程(一)

    [一]正逆地理编码调用 #地理编码调用 def geo(address: str,city = None)->dict:parameters = {'key':key,'city':city,' ...

  5. python + 高德地图API实现地图找房

    python + 高德地图API实现地图找房 项目简介:根据工作地点信息和58同城爬取的租房信息,通过高德地图进行显示,同时利用高德API自动规划房源到工作地点的通勤路线(公交+地铁) 项目仓库:ht ...

  6. 高德地图API调用和标准(转)

    看过高德地图API的同学都知道,高德地图不同端调用是不一样的,作为一个前端菜鸟,前一阵分别在pc端和移动端分别调用了高德地图.情况是这个样子的,PC端呢我们可以用高德API的web端的javascri ...

  7. 高德地图api调用demo_微信小程序----高德地图API实现的DEMO

    [实例简介] 微信小程序----高德地图API实现的周边,天气,路线规划,地址详情等的DEMO.简单的效果,问一下官方能不能不要乱涨积分,你们涨积分,作者被骂!我真的很失望,再这样,我就不上传资源了! ...

  8. 高德地图api调用demo_高德地图定位如何调用api?

    我看了下,貌似没有得到具体街道的位置,不过可以得到经纬度相关信息 AMap.Geolocation定位服务插件.基于HTML5的定位接口,只有支持该定位接口的浏览器才能使用该功能.它在浏览器原生定位接 ...

  9. 高德地图api调用demo_一 (1)高德SDK的使用

    1 申请高德SDK 需要填写SHA1安全码&包名 文档解决方案 https://lbs.amap.com/faq/top/hot-questions/249 package name 获取bu ...

  10. 高德 linux python,Python高德地图API实用篇

    数据怎么来 高德地图官网有提供相应的开发支持,下面我们简单介绍一下. 图片 2)做好注册,并新建应用获取KEY(调用接口时必需). 图片 3)当我们创建好应用,就可以获取到相应的KEY,这时候就可以操 ...

最新文章

  1. rails 常用方法
  2. oracle函数 case,oracle的case函数和case控制结构 (摘)
  3. 大数据WEB阶段(十四)JavaEE开发模式
  4. 用计算机做科学实验心得体会,科学实验的心得体会
  5. [转载] Python 完整实现的简单遗传算法(SGA)
  6. 如何添加行号 c语言,如何为程序代码加上行号
  7. 计算机组成原理 精选习题集
  8. qcc3020定制、qcc3020软件开发tws耳机的注意事项
  9. Python学习 Task01 :变量,运算符,与数据类型
  10. 我的数据库是半瓶子水的水平
  11. 华为android贡献度,从EMUI的6次里程碑事件,看华为对安卓生态的贡献
  12. 防火门行业研究及十四五规划分析报告
  13. 领带的打法10种——男士必看(图)
  14. Android动画总结系列(2)——补间动画使用
  15. c++ 巧妙利用二进制,猜出你的生日 猜生日游戏
  16. Linux中Python程序CPU占用高排查
  17. Java 实现视频弹幕功能
  18. 又一创新!阿里云 Serverless 调度论文被云计算顶会 ACM SoCC 收录
  19. 公派访问学者博士后语言考试WSK(PETS5)介绍及常见问题
  20. Running flutter pub get in flutter_app...卡死

热门文章

  1. flux护眼软件设置
  2. Actors编程模型
  3. 2021kali系列 -- 破解无线密码
  4. 阿里、美团、Oracle凭这套题不知道刷了多少人
  5. H5页面点击图片自动全屏代码
  6. Java前端内联和外联的区别,css外联和内联、嵌入的区别是什么?
  7. iphone申请AppleID后无法登陆App Store
  8. 事件监听(窗口关闭、输入框事件、计算器、画笔、鼠标、窗口、键盘)
  9. YY 0709|视觉报警信号的要求和测试方法
  10. 2022年中式烹调师(初级)考试题库及在线模拟考试