1. 程式人生 > >python進行地理編碼正反解碼

python進行地理編碼正反解碼

import json
from urllib.request import urlopen, quote
import requests
def getlnglat(address):
    #http://api.map.baidu.com/geocoder/v2/?address=北京市海淀區上地十街10號&output=json&ak=您的ak&callback=showLocation //GET請求
    url = 'http://api.map.baidu.com/geocoder/v2/'
    output = 'json'
    ak = '你的AK' # 瀏覽器端金鑰
    address = quote(address) # 由於本文地址變數為中文,為防止亂碼,先用quote進行編碼
    uri = url + '?' + 'address=' + address  + '&output=' + output + '&ak=' + ak 
    req = urlopen(uri)
    res = req.read().decode() 
    temp = json.loads(res)
    lat = temp['result']['location']['lat']
    lng = temp['result']['location']['lng']

    code=temp['status']
    print(lat, lng,code,)
    return lat, lng
if __name__ == '__main__':
    getlnglat('臨潁縣邢莊村')

#showLocation&&showLocation
# 返回的json內容({"status":0,"result":{"location":{"lng":116.3084202915042,"lat":40.05703033345938},"precise":1,"confidence":80,"comprehension":100,"level":"道路"}})
#可以檢視js的編碼內容,正編碼與反編碼返回的json資料是不一樣的