日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python数据展示平台_Python获取各大地图平台经纬度数据,哪家的数据最准确?

發布時間:2025/3/19 python 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python数据展示平台_Python获取各大地图平台经纬度数据,哪家的数据最准确? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文的文字及圖片來源于網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理

以下文章來源于菜J學Python ,作者J哥

前言

不知道大家會在什么場合使用地圖可視化,對我來說地圖可視化的優點除了它可以展示海量的位置數據,更重要的是它可以很酷很炫,給人一種賞心悅目的舒適感。如下是J哥做的一個簡單熱力圖:

熱力地圖

制作此類可視化地圖的前提是獲得海量的經緯度數據,數據從何而來?當然是騰訊地圖、高德地圖和百度地圖這些大家耳熟能詳的平臺。所以今天給大家分享用Python批量獲取經緯度的三種方法,并分別評測它們的效率。

一、騰訊地圖

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

騰訊地圖開放平臺

1、構造函數

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

import requestsdef 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()

數據預覽:

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)

數據預覽:

二、高德地圖

同樣的,高德也需要提前在高德開放平臺注冊并創建應用,獲取你的專屬key。

高德地圖開放平臺

1、構造函數

import pandas as pd import requests import time import csv import jsondef 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 jsondef 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获取各大地图平台经纬度数据,哪家的数据最准确?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。