基于python實現(xiàn)地址和經(jīng)緯度轉(zhuǎn)換
中文領(lǐng)域:
指的是提取境內(nèi)地址的經(jīng)緯度,的主要調(diào)用的是百度API。中間經(jīng)歷了一些波折,剛開始直接使用網(wǎng)上代碼debug半天都不行,才發(fā)現(xiàn)要隨時跟進官方改動,使用別人的API一定要看說明書??!
首先需要從百度地圖平臺上注冊一個AK(在這之前要注冊百度的開發(fā)者身份,免費),進入其地理編碼網(wǎng)址:
http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding
頁面:

由于我們是要從地址轉(zhuǎn)換經(jīng)緯度,因此看地理編碼就可以了。

官網(wǎng)給出了服務(wù)文檔(千萬要看),因為爬取地址時需要提供url,這個url必須和官方提供的一致。這里需要注意兩點:
1. 網(wǎng)上有的代碼里給出的是v2,但是現(xiàn)在已經(jīng)更新到了v3
2. 中文需要編碼,使用urllib.request庫里的quote默認的就行,但是可能在別的網(wǎng)址中會使用非大眾的漢字編碼方式,這個時候可以查一下相應(yīng)的編碼并encode一下
import json from urllib.request import urlopen, quote import requests def getlnglat(address): url = 'http://api.map.baidu.com/geocoding/v3/' output = 'json' ak = '你的AK' # 百度地圖ak,具體申請自行百度,提醒需要在“控制臺”-“設(shè)置”-“啟動服務(wù)”-“正逆地理編碼”,啟動 address = quote(address) # 由于本文地址變量為中文,為防止亂碼,先用quote進行編碼 uri = url + '?' + 'address=' + address + '&output=' + output + '&ak=' + ak +'&callback=showLocation%20'+'//GET%E8%AF%B7%E6%B1%82' # req = urlopen(uri) # res = req.read().decode() 這種方式也可以,和下面的效果一樣,都是返回json格式 res=requests.get(uri).text temp = json.loads(res) # 將字符串轉(zhuǎn)化為json lat = temp['result']['location']['lat'] lng = temp['result']['location']['lng'] return lat,lng # 緯度 latitude,經(jīng)度 longitude
結(jié)果:
address='北京市海淀區(qū)上地十街10號' getlnglat(address) >>(40.05703033345938, 116.3084202915042)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python 實現(xiàn)德洛內(nèi)三角剖分的操作
這篇文章主要介紹了python 實現(xiàn)德洛內(nèi)三角剖分的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
用Python selenium實現(xiàn)淘寶搶單機器人
今天給大家?guī)淼氖顷P(guān)于Python實戰(zhàn)的相關(guān)知識,文章圍繞著用Python selenium實現(xiàn)淘寶搶單機器人展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下2021-06-06
初次部署django+gunicorn+nginx的方法步驟
這篇文章主要介紹了初次部署django+gunicorn+nginx的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
解決python 兩個時間戳相減出現(xiàn)結(jié)果錯誤的問題
這篇文章主要介紹了解決python 兩個時間戳相減出現(xiàn)結(jié)果錯誤的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03

