利用python和百度地圖API實(shí)現(xiàn)數(shù)據(jù)地圖標(biāo)注的方法
如題,先上效果圖:

主要分為兩大步驟
使用python語(yǔ)句,通過百度地圖API,對(duì)已知的地名抓取經(jīng)緯度
使用百度地圖API官網(wǎng)的html例程,修改數(shù)據(jù)部分,實(shí)現(xiàn)呈現(xiàn)效果
一、使用python語(yǔ)句,通過百度地圖API,獲取經(jīng)緯度讀取文件信息
import pandas as pd
data = pd.read_excel('test_baidu.xlsx')
data

圖中可以看出,原始數(shù)據(jù)并沒有經(jīng)緯度。
2. 構(gòu)建抓取經(jīng)緯度函數(shù)
import json from urllib.request import urlopen, quote import requests def getlnglat(address): url = 'http://api.map.baidu.com/geocoder/v2/' output = 'json' ak = '你的百度地圖ak' # 百度地圖ak,具體申請(qǐng)自行百度,提醒需要在“控制臺(tái)”-“設(shè)置”-“啟動(dòng)服務(wù)”-“正逆地理編碼”,啟動(dòng) address = quote(address) # 由于本文地址變量為中文,為防止亂碼,先用quote進(jìn)行編碼 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'] return lat,lng # 緯度 latitude , 經(jīng)度 longitude ,
3. 抓取經(jīng)緯度
for indexs in data.index: get_location = getlnglat(data.loc[indexs,'圈定區(qū)域']) get_lat = get_location[0] get_lng = get_location[1] data.loc[indexs,'緯度'] = get_lat data.loc[indexs,'經(jīng)度'] = get_lng data

已經(jīng)自動(dòng)查找到對(duì)應(yīng)的經(jīng)緯度(不排除部分搜索不準(zhǔn),但是大概看過,還是挺準(zhǔn)的。)
4. 生成HTML適配的格式
data_html = pd.DataFrame(columns=['content'])
for indexs in data.index:
data_html.loc[indexs,'content'] = '{' + \
'"lat":' + str(data.loc[indexs,'緯度']) + ',' + \
'"lng":' + str(data.loc[indexs,'經(jīng)度']) + ',' + \
'"quyu":' + '"' + str(data.loc[indexs,'圈定區(qū)域']) +'"' + \
'}' + ','
data_html.to_csv ("data_html.csv",encoding="gbk")
data_html

生成對(duì)應(yīng)的格式,然后就copy出來(lái)了。
二、使用百度地圖API官網(wǎng)的html例程,修改數(shù)據(jù)部分,實(shí)現(xiàn)呈現(xiàn)效果1. copy百度地圖API官網(wǎng)的HTML例程
地址:http://developer.baidu.com/map/jsdemo.htm#c1_19

2. 修改部分內(nèi)容
放上自己的百度地圖AK
修改一下地圖初始化顯示的中心和縮放的系數(shù)
放上自己需要顯示的信息,記得把數(shù)據(jù)中最后一個(gè)的逗號(hào)刪除
修改前:

修改后:

題外:
其實(shí)一開始是使用folium進(jìn)行嘗試的,因?yàn)榭梢灾苯由蒱tml文件,只需要Python就行了,不需要再寫HTML,但是遇到兩個(gè)暫時(shí)無(wú)法解決的問題:
1、marker不能正常顯示,官網(wǎng)的marker都不行

2、openstreetmap的細(xì)致程度,比不上百度地圖,這個(gè)有點(diǎn)致命。

以上所述是小編給大家介紹的利用python和百度地圖API實(shí)現(xiàn)數(shù)據(jù)地圖標(biāo)注的方法詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Python實(shí)現(xiàn)獲取nginx服務(wù)器ip及流量統(tǒng)計(jì)信息功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)獲取nginx服務(wù)器ip及流量統(tǒng)計(jì)信息功能,涉及Python針對(duì)nginx服務(wù)器信息操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-05-05
Python基于opencv實(shí)現(xiàn)的人臉識(shí)別(適合初學(xué)者)
OpenCV是一個(gè)基于BSD許可開源發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺庫(kù),下面這篇文章主要給大家介紹了關(guān)于Python基于opencv實(shí)現(xiàn)的人臉識(shí)別,文中通過實(shí)例代碼介紹的非常詳細(xì),本文的教程非常適合初學(xué)者,需要的朋友可以參考下2022-03-03
ubuntu 18.04搭建python環(huán)境(pycharm+anaconda)
這篇文章主要為大家詳細(xì)介紹了ubuntu 18.04搭建python環(huán)境,包括Anaconda安裝、Pycharm安裝及初始配置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
Python使用PIL進(jìn)行JPEG圖像壓縮的簡(jiǎn)易教程
本文介紹了如何使用Python編程語(yǔ)言和wxPython圖形用戶界面庫(kù)進(jìn)行JPEG圖像的壓縮,通過添加滑塊控件,我們可以調(diào)整壓縮質(zhì)量,并將壓縮后的照片另存為原來(lái)的名稱加上后綴"壓縮+質(zhì)量數(shù)字"的新文件,需要的朋友可以參考下2023-09-09
Python實(shí)現(xiàn)Mysql數(shù)據(jù)統(tǒng)計(jì)及numpy統(tǒng)計(jì)函數(shù)
這篇文章主要介紹了Python實(shí)現(xiàn)Mysql數(shù)據(jù)統(tǒng)計(jì)的實(shí)例代碼,給大家介紹了Python數(shù)據(jù)分析numpy統(tǒng)計(jì)函數(shù)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
Python調(diào)整數(shù)組形狀如何實(shí)現(xiàn)
這篇文章主要介紹了Python調(diào)整數(shù)組形狀如何實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-12-12
同時(shí)安裝Python2 & Python3 cmd下版本自由選擇的方法
下面小編就為大家分享一篇同時(shí)安裝Python2 & Python3 cmd下版本自由選擇的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2017-12-12
pycharm命令終端運(yùn)行python文件以及傳遞參數(shù)方式
這篇文章主要介紹了pycharm命令終端運(yùn)行python文件以及傳遞參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06

