溫馨提示×

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

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

Python怎么獲取各大地圖平臺(tái)經(jīng)緯度數(shù)據(jù)

發(fā)布時(shí)間:2021-11-25 11:28:50 來(lái)源:億速云 閱讀:462 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要講解了“Python怎么獲取各大地圖平臺(tái)經(jīng)緯度數(shù)據(jù)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Python怎么獲取各大地圖平臺(tái)經(jīng)緯度數(shù)據(jù)”吧!

一、騰訊地圖

首先,咱們需要在騰訊位置服務(wù)平臺(tái)注冊(cè)并獲得一個(gè)key,作為位置數(shù)據(jù)調(diào)用的密匙。步驟如下:

1、構(gòu)造函數(shù)

獲得key以后,咱們就可以構(gòu)造API數(shù)據(jù)請(qǐng)求函數(shù)tengxun(),將json格式數(shù)據(jù)中的經(jīng)緯度解析出來(lái)即可,Python代碼如下:

import requests

def tengxun(addr):
    url = "https://apis.map.qq.com/jsapi?"   #騰訊地圖API接口
    para = {
        "qt": "geoc",
        "addr":addr, #傳入地址參數(shù)
        "output": "json",
        "key": "D7EBZ-NHYKX-UAH4A-74TW4-6M2JE-UHFLY", #即騰訊地圖API的key
        "pf":"jsapi",
        "ref":"jsapi"
    }
    req = requests.get(url,para) #請(qǐng)求數(shù)據(jù)
    req = req.json() #轉(zhuǎn)為json格式
    #print(req)
    m = req["detail"]
    g = f"{m['pointx']},{m['pointy']}" #解析到經(jīng)緯度數(shù)據(jù)
    print(g)
    return g
tengxun(addr="深圳市")

傳入自變量“深圳市”,運(yùn)行Python代碼,即可獲得深圳市的經(jīng)緯度數(shù)據(jù):

'113.883080,22.553290'

2、讀取數(shù)據(jù)

函數(shù)構(gòu)造好以后,導(dǎo)入準(zhǔn)備好的excel文件,文件包含廣州500所學(xué)校的地址數(shù)據(jù)??稍凇覆薐學(xué)Python」公眾后臺(tái)回復(fù)學(xué)校自動(dòng)獲取。

import pandas as pd
df1 = pd.read_excel("gz_school.xlsx")
df1.head()

數(shù)據(jù)預(yù)覽:

Python怎么獲取各大地圖平臺(tái)經(jīng)緯度數(shù)據(jù)

3、應(yīng)用函數(shù)

將學(xué)校數(shù)據(jù)中的地址列應(yīng)用于前文構(gòu)造的函數(shù),批量獲取500所學(xué)校的經(jīng)緯度數(shù)據(jù)并進(jìn)行程序計(jì)時(shí)。

import time
time_start = time.time() #程序起始時(shí)間
df1['經(jīng)緯度']=df1['address'].apply(tengxun) #調(diào)用函數(shù)
time_end = time.time() #程序結(jié)束時(shí)間
t = time_end-time_start #運(yùn)行時(shí)間
print('共用時(shí)%s秒'%t)

通過(guò)騰訊地圖批量解析500個(gè)地址獲取經(jīng)緯度數(shù)據(jù)共用時(shí)約52.40秒,平均1秒鐘可以獲取9個(gè)地址的經(jīng)緯度。

共用時(shí)52.39904499053955秒

4、保存數(shù)據(jù)

獲取到經(jīng)緯度數(shù)據(jù)后,保存為excel文件。

df1.head()
df1.to_excel('result.xlsx',index = False)

數(shù)據(jù)預(yù)覽:

Python怎么獲取各大地圖平臺(tái)經(jīng)緯度數(shù)據(jù)

高德地圖開(kāi)放平臺(tái)

1、構(gòu)造函數(shù)

import pandas as pd
import requests
import time
import csv
import json

def gaode(addr):
        para = {
            'key':'你自己的',  #高德地圖開(kāi)放平臺(tái)申請(qǐng)的key
            'address':addr #傳入地址參數(shù)
        }
        url = 'https://restapi.amap.com/v3/geocode/geo?' #高德地圖API接口
        req = requests.get(url,para)
        req = req.json()
        print('-' * 30)
        m = req['geocodes'][0]['location']
        print(m)
        return m
gaode(addr="深圳")

2、應(yīng)用函數(shù)

df2 = pd.read_excel('gz_school.xlsx') #讀取地址數(shù)據(jù)
time_start = time.time()
df2['經(jīng)緯度'] = df2['address'].apply(gaode) #調(diào)用函數(shù)
time_end = time.time()
t = time_end-time_start
print('共用時(shí)%s秒'%t)

通過(guò)高德地圖批量解析500個(gè)地址獲取經(jīng)緯度數(shù)據(jù)共用時(shí)約37.74秒,平均1秒鐘可以獲取13個(gè)地址的經(jīng)緯度,解析速度高于騰訊地圖。

共用時(shí)37.740272998809814秒

三、百度地圖

百度地圖批量獲取經(jīng)緯度方法與高德地圖一致。

百度地圖開(kāi)放平臺(tái)

1、構(gòu)造函數(shù)

import pandas as pd
import requests
import time
import csv
import json

def baidu(addr):
    url = "http://api.map.baidu.com/geocoding/v3/?" #百度地圖API接口
    para = {
        "address": addr, #傳入地址參數(shù)
        "output": "json",
        "ak": "你自己的" #百度地圖開(kāi)放平臺(tái)申請(qǐng)ak
    }
    req = requests.get(url,para)
    req = req.json()
    #print(req)
    print('-' * 30)
    m = req["result"]["location"]
    g = f"{m['lng']},{m['lat']}"
    print(g)
    return g
baidu(addr="深圳")

2、應(yīng)用函數(shù)

df3 = pd.read_excel('gz_school.xlsx')
time_start = time.time()
df3['經(jīng)緯度'] = df3['address'].apply(baidu)
time_end = time.time()
t = time_end-time_start
print('共用時(shí)%s秒'%t)

通過(guò)百度地圖批量解析500個(gè)地址獲取經(jīng)緯度數(shù)據(jù)共用時(shí)約24.06秒,平均1秒鐘可以獲取20個(gè)地址的經(jīng)緯度,解析速度高于高德地圖和騰訊地圖。

共用時(shí)24.0550799369812秒

感謝各位的閱讀,以上就是“Python怎么獲取各大地圖平臺(tái)經(jīng)緯度數(shù)據(jù)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Python怎么獲取各大地圖平臺(tái)經(jīng)緯度數(shù)據(jù)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向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