日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高德地图接口调用

發布時間:2023/12/18 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高德地图接口调用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

高德地圖api的調用方法


前言

高德地圖開放平臺有很多提供開發者使用的工具,https://lbs.amap.com/,訪問官網注冊。

一、創建應用獲取key,選擇api類型


在開放平臺里面注冊后,打開我的應用,并創建應用,回到首頁點擊開發支持里的web服務API,里面有大量的說明文檔和類型接口,開發者可以根據實際情況選擇,操作上基本上大同小異。


二、使用步驟

這里以調用路徑規劃里的騎行路徑規劃為例子。

1.分析接口組成(參數類型,含義等)


這里提到一個url和get方法,還有一些必要參數,下面直接上代碼: import requests # 導入requests import re # 正則等下會應用到提參 if __name__ == '__main__':url = 'https://restapi.amap.com/v4/direction/bicycling?'params = {'key': 'c26090cfad60515aa67024f2c4c644db', # 應用key值'origin': 'origin', # 輸入起點經緯度'destination': 'destination', # 輸入終點經緯度'output': 'json'# 輸出格數 可以是xml 這里為了方便直接json}r = requests.get(url=url, params=params).text # get請求后面除了帶上url,還有參數集params

pycharm輸出:


json如下:


是不是很亂,下面我們來清洗數據


2.分析json屬性值

代碼如下(示例):

"destination":"116.465302,40.004717","origin":"116.481028,39.989643" "paths"[] "orientation""" . . . @等等,包括方向,距離,道路名稱的都是需要的吧 @這里直接用上正則來匹配它們,為什么不用xpath,bs4?后者對于json格式來說操作性不靈活,所以這里直接上手正則distance_data = '"distance":(.*?),' duration_data = '"duration":(.*?),' action_data = '"action":"(.*?)"' instruction_data = '"instruction":"(.*?)"' orientation_data = '"orientation":"(.*?)"' polyline_data = '"polyline":"(.*?)"' road_data = '"instruction":"(.*?)"' steps_data = '"steps":(.*?),"errcode"'distance_list = re.findall(distance_data, r) duration_list = re.findall(duration_data, r) action_list = action_debug instruction_list = re.findall(instruction_data, r) orientation_list = re.findall(orientation_data, r) polyline_list = re.findall(polyline_data, r) road_list = re.findall(road_data, r)

3.每種屬性值提取后,可以優化使用

n = len(action_debug)print('一共' + str(n) + '步')for a in range(n):print("第" + str(a) + '步')distance_list = re.findall(distance_data, r)[a]duration_list = re.findall(duration_data, r)[a]action_list = action_debug[a]instruction_list = re.findall(instruction_data, r)[a]orientation_list = re.findall(orientation_data, r)[a]polyline_list = re.findall(polyline_data, r)[a]road_list = re.findall(road_data, r)[a]

給一個循環讓輸出值按一步步來實現,更加直觀。


origin = input('inter a origin: ' + str(''))destination = input('inter a destination: ' + str(''))'origin': origin,'destination': destination,

經緯度可以自由填寫


全部代碼

import requests import redistance_data = '"distance":(.*?),' duration_data = '"duration":(.*?),' action_data = '"action":"(.*?)"' instruction_data = '"instruction":"(.*?)"' orientation_data = '"orientation":"(.*?)"' polyline_data = '"polyline":"(.*?)"' road_data = '"instruction":"(.*?)"' steps_data = '"steps":(.*?),"errcode"'origin = input('inter a origin: ' + str('')) destination = input('inter a destination: ' + str(''))if __name__ == '__main__':url = 'https://restapi.amap.com/v4/direction/bicycling?'params = {'key': 'c26090cfad60515aa67024f2c4c644db','origin': origin,'destination': destination,'output': 'json'}r = requests.get(url=url, params=params).textprint(r)steps_list = re.findall(steps_data, r)[0]action_debug = re.findall(action_data, r)str_list = ['']n = len(action_debug)print('一共' + str(n) + '步')for i in range(n):if action_debug[i] in str_list:action_debug[i] = 'none'print(action_debug)for a in range(n):print("第" + str(a) + '步')distance_list = re.findall(distance_data, r)[a]duration_list = re.findall(duration_data, r)[a]action_list = action_debug[a]instruction_list = re.findall(instruction_data, r)[a]orientation_list = re.findall(orientation_data, r)[a]polyline_list = re.findall(polyline_data, r)[a]road_list = re.findall(road_data, r)[a]print(distance_list, duration_list, action_list, instruction_list, orientation_list, polyline_list, road_list)

總結

以上是生活随笔為你收集整理的高德地图接口调用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。