python實現百度地圖API獲取某地址的經緯度


申請百度API

1、打開網頁 http://lbsyun.baidu.com/index.php?title=首頁

 選擇功能與服務中的地圖,點擊左邊的獲取密匙,然后按照要求申請即可,需要手機和百度賬號及郵箱認證。

  

  激活后可看到后台頁面,現在可以開始創建應用了,這里請求校驗方式有兩種,一種是白名單IP,另一種是SN校驗(旁邊有計算的說明),我選擇SN校驗:

  

  成功后會獲得自己的AK和SK,接下來說明如何計算sn

  計算SN(python3.x) 

 

from urllib import parse
import hashlib

def get_urt(address):

    # 以get請求為例http://api.map.baidu.com/geocoder/v2/?address=百度大廈&output=json&ak=你的ak
    queryStr = '/geocoder/v2/?address=%s&output=json&ak=你的ak' % address

    # 對queryStr進行轉碼,safe內的保留字符不轉換
    encodedStr = parse.quote(queryStr, safe="/:=&?#+!$,;'@()*[]")

    # 在最后直接追加上yoursk
    rawStr = encodedStr + '你的sk'

    #計算sn
    sn = (hashlib.md5(parse.quote_plus(rawStr).encode("utf8")).hexdigest())
    
    #由於URL里面含有中文,所以需要用parse.quote進行處理,然后返回最終可調用的url
    url = parse.quote("http://api.map.baidu.com"+queryStr+"&sn="+sn, safe="/:=&?#+!$,;'@()*[]")   
    
    return url

 

  該url可直接進行進行訪問,返回的是json格式,如下

 

{"status":0,"result":{"location":{"lng":116.50104690641698,"lat":39.79092147361288},"precise":1,"confidence":80,"level":"地產小區"}}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM