1 申請密匙
注冊百度地圖API:http://lbsyun.baidu.com/index.php?title=webapi

點擊左側 “獲取密匙” ,經過填寫個人信息、郵箱注冊等,成功之后在開放平台上點擊“創建應用”,填寫相關信息,在這里特別說明的是,在IP白名單框里,如果不清楚自己的IP地址,最好設置為:*。提交后,在你創建應用的訪問應用(AK)那一欄就是你的密鑰。


2 構造經緯度獲取函數
使用百度Web服務API下的Geocoding API接口來獲取你所需要地址的經緯度坐標
接口文檔見:http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding

導入所需的庫
from urllib.request import urlopen,quote import requests,csv import pandas as pd #導入庫
根據服務文檔中的請求格式寫出獲取經緯度的函數:
def getlnglat(adress): url = 'http://api.map.baidu.com/geocoder/v2/?address=' output = 'json' ak = '密匙編號' add = quote(adress)#使用quote進行編碼 為了防止中文亂碼 url2 = url + add + '&output=' + output + '&ak=' + ak req = urlopen(url2) res = req.read().decode() temp = json.loads(res) return temp
3 根據地址獲取經緯度
用python讀取csv文件的數據,並將location列單獨讀出來,批量獲取經度、緯度坐標
#打開csv df = pd.read_csv('sites.csv',encoding = 'GBK') df['lng'] = 'collng'#創建新列存放經度 df['lat'] = 'collat'#創建新列存放緯度 dim = df.shape [row,col] = dim#獲取行列 for i in df.values: b = i[2] #第三列的地址 print(b) i[3] = getlnglat(b)['result']['location']['lng']#獲取經度並寫入 i[4] = getlnglat(b)['result']['location']['lat']#獲取緯度並寫入 print(i) df df.to_excel('sites2.xlsx')
原始sites.csv如下

輸出結果

注意
http://lbsyun.baidu.com/index.php?title=coordinate


參考:
如果您想調用服務器端的坐標轉換方法,請參考坐標轉換API
如果您想在JS的前端網頁中使用坐標轉換功能,請參考JavaScript API坐標轉換示例
如果您想在Android終端系統上使用坐標轉換功能,請參考Android地圖SDK坐標轉換開發指南
如果您想在iOS的終端系統上使用坐標轉換功能,請參考iOS地圖SDK坐標轉換開發指南
