溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用Python怎么將地址標(biāo)記在地圖

發(fā)布時(shí)間:2021-02-07 18:14:43 來(lái)源:億速云 閱讀:201 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)使用Python怎么將地址標(biāo)記在地圖,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

一、將地址轉(zhuǎn)成經(jīng)緯度

首先我們需要將地理位置轉(zhuǎn)成經(jīng)緯度這種統(tǒng)一格式,方便代碼去識(shí)別。完成這一個(gè)需求可以使用爬蟲(chóng)通過(guò)在線的經(jīng)緯度轉(zhuǎn)換網(wǎng)站來(lái)實(shí)現(xiàn),也可以使用一些專業(yè)的API比如百度、高德等,這里我們使用百度地圖開(kāi)放平臺(tái)。

使用API并不是直接就能調(diào)用,首先需要去申請(qǐng)一個(gè)地圖可視化的AK,打開(kāi)百度地圖開(kāi)放平臺(tái)

http://lbsyun.baidu.com/

登陸之后依次點(diǎn)擊控制臺(tái)

?
創(chuàng)建應(yīng)用

?
選擇瀏覽器端,按照指示創(chuàng)建一個(gè)地圖可視化應(yīng)用,以申請(qǐng)到AK結(jié)束

使用Python怎么將地址標(biāo)記在地圖

之后啟動(dòng)Jupyter Notebook,只要不到十行代碼就能將地址轉(zhuǎn)成經(jīng)緯度,直接看代碼,沒(méi)有什么特別需要解釋的,利用地址和AK構(gòu)造查詢URL,之后使用requests請(qǐng)求并取出經(jīng)緯度,代碼拿走就能用?

import pandas as pd
import requests

AK = "替換為你申請(qǐng)的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)

我們來(lái)測(cè)試一下

使用Python怎么將地址標(biāo)記在地圖

可以看到,現(xiàn)在給它一個(gè)地址,就能返回經(jīng)緯度,再返回地圖驗(yàn)證一下經(jīng)緯度,沒(méi)有問(wèn)題

使用Python怎么將地址標(biāo)記在地圖

當(dāng)然如果需要一次性對(duì)多個(gè)地址處理,就可以使用pandas中的apply函數(shù)實(shí)現(xiàn),此處不在贅述,另外需要注意的是,如果有大量地址需要處理就要再次去平臺(tái)申請(qǐng)一個(gè)個(gè)人開(kāi)發(fā)者,否則會(huì)有一定限制。我自己測(cè)試不難申請(qǐng),填寫(xiě)基本信息并寫(xiě)一段200字小作文就行。

二、根據(jù)經(jīng)緯度進(jìn)行標(biāo)記

現(xiàn)在有了經(jīng)緯度就可以在地圖上進(jìn)行標(biāo)記,工具有很多,我們選擇pyecharts,并使用Geo地理坐標(biāo)系,其實(shí)很簡(jiǎn)單就是先創(chuàng)建一個(gè)指定地圖后根據(jù)經(jīng)緯度往地圖上添加點(diǎn)即可。

我們還是以上面的Apple西湖地址為例, 先導(dǎo)入相關(guān)庫(kù),之后使用Geo().add_schema(maptype="杭州")實(shí)例化一個(gè)杭州地圖,再將我們的經(jīng)緯度添加進(jìn)去,最后使用.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地圖標(biāo)點(diǎn)測(cè)試"))

g.render_notebook()

以上就是使用Python怎么將地址標(biāo)記在地圖,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI