Python編程調用百度API實現(xiàn)地理位置經緯度坐標轉換示例
經緯度坐標轉換最常見辦法就是調用第三方 API,例如百度、高德地圖等服務平臺,提供了相應的功能接口,它們的這類技術已經非常成熟啦,準確穩(wěn)定,關鍵還是免費的 ~
本期教程以百度為例(高德的用方類似),介紹一下其用法
1.1,用百度賬號登陸百度地圖控制臺

1.2,創(chuàng)建一個應用,獲取 AK 參數(shù)
登錄控制臺之后,選擇左側 應用管理-> 我的應用 -> 創(chuàng)建應用

創(chuàng)建應用頁面中有三項信息需要填寫
應用名稱,無限制隨意填寫即可;
應用類型 ,選擇服務端;
IP 白名單,只是個人簡單測試的話0.0.0.0/0 即可,如果考慮安全問題, 可以將自己的 IP 填進去, AK 參數(shù)泄露的話非本機 IP 無法訪問,這樣也不用擔心額度被其他用戶盜用

1.3,地理編碼、逆地理編碼
經緯度地理位置根據(jù)轉換方向分為兩類,接下來我們分別演示一下其用法:
地理編碼: 將地理地址轉換為坐標點(經緯度);逆地理編碼,將經緯度轉化為地理地址;
1.3.1 地理編碼
下面就是 Python 測試代碼塊,將 AK 參數(shù)(前面申請到的)和你需要轉換的地理位置拼接到 官方提供的 url 中
用 requests 訪問即可,
import requests
import json
import re
AK = '你的AK'
address ='北京市海淀區(qū)上地十街10號'
url = 'http://api.map.baidu.com/geocoding/v3/?address={}&output=json&ak={}&callback=showLocation'.format(address,AK)
res = requests.get(url)
print(res.text)
results = json.loads(re.findall(r'\((.*?)\)',res.text)[0])
print('\n')
print('location is ',results['result']['location'])
輸出結果如下
showLocation&&showLocation({"status":0,"result":{"location":{"lng":116.3084202915042,"lat":40.05703033345938},"precise":1,"confidence":80,"comprehension":100,"level":"門址"}})
location is {'lng': 116.3084202915042, 'lat': 40.05703033345938}
1.3.2 逆地理編碼
逆地理編與地理編碼用法相似
lat = '40.05703033345938'
lng = '116.3084202915042'
AK = '你的AK'
url = 'http://api.map.baidu.com/reverse_geocoding/v3/?ak={}&output=json&coordtype=wgs84ll&location={},{}'.format(AK,lat,lng)
res = requests.get(url)
print(res.text)
address = json.loads(res.text)['result']['formatted_address']
print('\n')
print('address is ',address)
像我們這類免(bai) 費 piao) 用戶,借助百度 API 每天最高可調用 6000 次,這個量級基本上能滿足我們日常需要,但如果這個數(shù)量滿足不了你的話,可以在線購買更高的使用額度

以上就是Python編程調用百度API實現(xiàn)地理位置經緯度坐標轉換示例的詳細內容,更多關于Python調用百度API轉換經緯度坐標的資料請關注腳本之家其它相關文章!
相關文章
Python操作使用MySQL數(shù)據(jù)庫的實例代碼
本篇文章主要介紹了Python 操作 MySQL的實例代碼,詳細介紹了Python如何連接數(shù)據(jù)庫和對數(shù)據(jù)的增刪查改,有興趣的可以了解一下2017-05-05
Python使用pickle模塊實現(xiàn)序列化功能示例
這篇文章主要介紹了Python使用pickle模塊實現(xiàn)序列化功能,結合實例形式分析了基于pickle模塊的序列化操作相關操作技巧,需要的朋友可以參考下2018-07-07

