如何用用Python將地址標(biāo)記在地圖上
本文就將講解,給你一個(gè)地址,如何用Python進(jìn)行可視化,只需要兩步:
將地址轉(zhuǎn)成經(jīng)緯度 根據(jù)經(jīng)緯度在地圖上標(biāo)記點(diǎn) 一、將地址轉(zhuǎn)成經(jīng)緯度首先我們需要將地理位置轉(zhuǎn)成經(jīng)緯度這種統(tǒng)一格式,方便代碼去識(shí)別。完成這一個(gè)需求可以使用爬蟲通過在線的經(jīng)緯度轉(zhuǎn)換網(wǎng)站來實(shí)現(xiàn),也可以使用一些專業(yè)的API比如百度、高德等,這里我們使用百度地圖開放平臺(tái)。
使用API并不是直接就能調(diào)用,首先需要去申請一個(gè)地圖可視化的AK,打開百度地圖開放平臺(tái)
http://lbsyun.baidu.com/
登陸之后依次點(diǎn)擊控制臺(tái)
⟹創(chuàng)建應(yīng)用
⟹選擇瀏覽器端,按照指示創(chuàng)建一個(gè)地圖可視化應(yīng)用,以申請到AK結(jié)束
之后啟動(dòng)Jupyter Notebook,只要不到十行代碼就能將地址轉(zhuǎn)成經(jīng)緯度,直接看代碼,沒有什么特別需要解釋的,利用地址和AK構(gòu)造查詢URL,之后使用requests請求并取出經(jīng)緯度,代碼拿走就能用?
import pandas as pdimport requestsAK = '替換為你申請的AK' def get_position(name,AK): url = f’http://api.map.baidu.com/geocoding/v3/?address={name}&output=json&ak={AK}’ res = requests.get(url) val = res.json() retval = {’地址’:name,’經(jīng)度’:val[’result’][’location’][’lng’],’緯度’:val[’result’][’location’][’lat’],’地區(qū)標(biāo)簽’:val[’result’][’level’],’是否精確查找’:val[’result’][’precise’]} longitude = retval[’經(jīng)度’] latitude = retval[’緯度’] return(longitude,latitude)
我們來測試一下
可以看到,現(xiàn)在給它一個(gè)地址,就能返回經(jīng)緯度,再返回地圖驗(yàn)證一下經(jīng)緯度,沒有問題
當(dāng)然如果需要一次性對(duì)多個(gè)地址處理,就可以使用pandas中的apply函數(shù)實(shí)現(xiàn),此處不在贅述,另外需要注意的是,如果有大量地址需要處理就要再次去平臺(tái)申請一個(gè)個(gè)人開發(fā)者,否則會(huì)有一定限制。我自己測試不難申請,填寫基本信息并寫一段200字小作文就行。
二、根據(jù)經(jīng)緯度進(jìn)行標(biāo)記現(xiàn)在有了經(jīng)緯度就可以在地圖上進(jìn)行標(biāo)記,工具有很多,我們選擇pyecharts,并使用Geo地理坐標(biāo)系,其實(shí)很簡單就是先創(chuàng)建一個(gè)指定地圖后根據(jù)經(jīng)緯度往地圖上添加點(diǎn)即可。
我們還是以上面的Apple西湖地址為例, 先導(dǎo)入相關(guān)庫,之后使用Geo().add_schema(maptype='杭州')實(shí)例化一個(gè)杭州地圖,再將我們的經(jīng)緯度添加進(jìn)去,最后使用.render_notebook()直接在notebook中渲染
from pyecharts.charts import Geofrom pyecharts import optionsfrom pyecharts.globals import GeoTypeg = Geo().add_schema(maptype='杭州')g.add_coordinate(addr, longitude, latitude)data_pair = [(addr,1)]g.add(’’,data_pair, type_=GeoType.EFFECT_SCATTER, symbol_size=20)g.set_series_opts(label_opts=options.LabelOpts(is_show=False))g.set_global_opts(title_opts=options.TitleOpts(title='pyecharts地圖標(biāo)點(diǎn)測試'))g.render_notebook()
效果如下
現(xiàn)在,我們就學(xué)會(huì)了如何利用Python對(duì)將一個(gè)地址位置信息進(jìn)行可視化,如果是一個(gè)組地理位置呢?只要寫一個(gè)循環(huán),依次將每個(gè)地址都轉(zhuǎn)成經(jīng)緯度并添加到地圖中就可以了!這里就不再過多講解,相信只要先把上面的代碼理解、執(zhí)行后,多思考一下就可以完成,拜拜~
以上就是如何用用Python將地址標(biāo)記在地圖上的詳細(xì)內(nèi)容,更多關(guān)于Python將地址標(biāo)記在地圖上的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. PHP循環(huán)與分支知識(shí)點(diǎn)梳理2. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)3. 利用CSS3新特性創(chuàng)建透明邊框三角4. 解析原生JS getComputedStyle5. css代碼優(yōu)化的12個(gè)技巧6. ASP實(shí)現(xiàn)加法驗(yàn)證碼7. 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁8. ASP基礎(chǔ)入門第三篇(ASP腳本基礎(chǔ))9. 前端從瀏覽器的渲染到性能優(yōu)化10. 讀大數(shù)據(jù)量的XML文件的讀取問題
