中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python怎么獲取各大地圖平臺經緯度數據

發布時間:2021-11-25 11:28:50 來源:億速云 閱讀:472 作者:iii 欄目:大數據

這篇文章主要講解了“Python怎么獲取各大地圖平臺經緯度數據”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python怎么獲取各大地圖平臺經緯度數據”吧!

一、騰訊地圖

首先,咱們需要在騰訊位置服務平臺注冊并獲得一個key,作為位置數據調用的密匙。步驟如下:

1、構造函數

獲得key以后,咱們就可以構造API數據請求函數tengxun(),將json格式數據中的經緯度解析出來即可,Python代碼如下:

import requests

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

傳入自變量“深圳市”,運行Python代碼,即可獲得深圳市的經緯度數據:

'113.883080,22.553290'

2、讀取數據

函數構造好以后,導入準備好的excel文件,文件包含廣州500所學校的地址數據。可在「菜J學Python」公眾后臺回復學校自動獲取。

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

數據預覽:

Python怎么獲取各大地圖平臺經緯度數據

3、應用函數

將學校數據中的地址列應用于前文構造的函數,批量獲取500所學校的經緯度數據并進行程序計時。

import time
time_start = time.time() #程序起始時間
df1['經緯度']=df1['address'].apply(tengxun) #調用函數
time_end = time.time() #程序結束時間
t = time_end-time_start #運行時間
print('共用時%s秒'%t)

通過騰訊地圖批量解析500個地址獲取經緯度數據共用時約52.40秒,平均1秒鐘可以獲取9個地址的經緯度。

共用時52.39904499053955秒

4、保存數據

獲取到經緯度數據后,保存為excel文件。

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

數據預覽:

Python怎么獲取各大地圖平臺經緯度數據

高德地圖開放平臺

1、構造函數

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

def gaode(addr):
        para = {
            'key':'你自己的',  #高德地圖開放平臺申請的key
            'address':addr #傳入地址參數
        }
        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、應用函數

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

通過高德地圖批量解析500個地址獲取經緯度數據共用時約37.74秒,平均1秒鐘可以獲取13個地址的經緯度,解析速度高于騰訊地圖。

共用時37.740272998809814秒

三、百度地圖

百度地圖批量獲取經緯度方法與高德地圖一致。

百度地圖開放平臺

1、構造函數

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, #傳入地址參數
        "output": "json",
        "ak": "你自己的" #百度地圖開放平臺申請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、應用函數

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

通過百度地圖批量解析500個地址獲取經緯度數據共用時約24.06秒,平均1秒鐘可以獲取20個地址的經緯度,解析速度高于高德地圖和騰訊地圖。

共用時24.0550799369812秒

感謝各位的閱讀,以上就是“Python怎么獲取各大地圖平臺經緯度數據”的內容了,經過本文的學習后,相信大家對Python怎么獲取各大地圖平臺經緯度數據這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西吉县| 图木舒克市| 古浪县| 泌阳县| 余庆县| 萨迦县| 深圳市| 微山县| 太谷县| 保亭| 石首市| 定陶县| 中方县| 友谊县| 长宁县| 库伦旗| 石首市| 峨眉山市| 大石桥市| 宜春市| 南宁市| 乐山市| 遵化市| 开鲁县| 淮南市| 盐城市| 青岛市| 乐业县| 方城县| 德化县| 富裕县| 浑源县| 宣武区| 同心县| 合川市| 象州县| 泰顺县| 花莲县| 阿坝县| 白城市| 丰镇市|