python在地图上标注点_只要两步,用Python将地址标记在地图上!
大家好,在之前的大眾點評一線快餐品牌分析文章中,很多讀者私信對如何將商家地址標記到地圖上感興趣👇
本文就將講解,給你一個地址,如何用Python進行可視化,只需要兩步:
將地址轉成經緯度
根據經緯度在地圖上標記點
一、將地址轉成經緯度
首先我們需要將地理位置轉成經緯度這種統一格式,方便代碼去識別。完成這一個需求可以使用爬蟲通過在線的經緯度轉換網站來實現,也可以使用一些專業的API比如百度、高德等,這里我們使用百度地圖開放平臺。
使用API并不是直接就能調用,首先需要去申請一個地圖可視化的AK,打開百度地圖開放平臺
http://lbsyun.baidu.com/
登陸之后依次點擊控制臺創建應用選擇瀏覽器端,按照指示創建一個地圖可視化應用,以申請到AK結束
之后啟動Jupyter Notebook,只要不到十行代碼就能將地址轉成經緯度,直接看代碼,沒有什么特別需要解釋的,利用地址和AK構造查詢URL,之后使用requests請求并取出經緯度,代碼拿走就能用👇
import?pandas?as?pd
import?requests
AK?=?"替換為你申請的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,'經度':val['result']['location']['lng'],'緯度':val['result']['location']['lat'],'地區標簽':val['result']['level'],'是否精確查找':val['result']['precise']}
longitude?=?retval['經度']
latitude?=?retval['緯度']
return(longitude,latitude)
我們來測試一下
可以看到,現在給它一個地址,就能返回經緯度,再返回地圖驗證一下經緯度,沒有問題
當然如果需要一次性對多個地址處理,就可以使用pandas中的apply函數實現,此處不在贅述,另外需要注意的是,如果有大量地址需要處理就要再次去平臺申請一個個人開發者,否則會有一定限制。我自己測試不難申請,填寫基本信息并寫一段200字小作文就行。
二、根據經緯度進行標記
現在有了經緯度就可以在地圖上進行標記,工具有很多,我們選擇pyecharts,并使用Geo地理坐標系,其實很簡單就是先創建一個指定地圖后根據經緯度往地圖上添加點即可。
我們還是以上面的Apple西湖地址為例, 先導入相關庫,之后使用Geo().add_schema(maptype="杭州")實例化一個杭州地圖,再將我們的經緯度添加進去,最后使用.render_notebook()直接在notebook中渲染
from?pyecharts.charts?import?Geo
from?pyecharts?import?options
from?pyecharts.globals?import?GeoType
g?=?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地圖標點測試"))
g.render_notebook()
效果如下
現在,我們就學會了如何利用Python對將一個地址位置信息進行可視化,如果是一個組地理位置呢?只要寫一個循環,依次將每個地址都轉成經緯度并添加到地圖中就可以了!這里就不再過多講解,相信只要先把上面的代碼理解、執行后,多思考一下就可以完成,拜拜~
總結
以上是生活随笔為你收集整理的python在地图上标注点_只要两步,用Python将地址标记在地图上!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java duplicate key_j
- 下一篇: 简明python指南(预览版)