关于python数据的纬度_Python获取各大地图平台经纬度数据,哪家的数据最准确?...
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
以下文章来源于菜J学Python ,作者J哥
前言
不知道大家会在什么场合使用地图可视化,对我来说地图可视化的优点除了它可以展示海量的位置数据,更重要的是它可以很酷很炫,给人一种赏心悦目的舒适感。如下是J哥做的一个简单热力图:
热力地图
制作此类可视化地图的前提是获得海量的经纬度数据,数据从何而来?当然是腾讯地图、高德地图和百度地图这些大家耳熟能详的平台。所以今天给大家分享用Python批量获取经纬度的三种方法,并分别评测它们的效率。
一、腾讯地图
首先,咱们需要在腾讯位置服务平台注册并获得一个key,作为位置数据调用的密匙。步骤如下:
腾讯地图开放平台
1、构造函数
获得key以后,咱们就可以构造API数据请求函数tengxun(),将json格式数据中的经纬度解析出来即可,Python代码如下:
importrequestsdeftengxun(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)returng
tengxun(addr="深圳市")
传入自变量“深圳市”,运行Python代码,即可获得深圳市的经纬度数据:
'113.883080,22.553290'
2、读取数据
函数构造好以后,导入准备好的excel文件,文件包含广州500所学校的地址数据。可在「菜J学Python」公众后台回复学校自动获取。
importpandas as pd
df1= pd.read_excel("gz_school.xlsx")
df1.head()
数据预览:
3、应用函数
将学校数据中的地址列应用于前文构造的函数,批量获取500所学校的经纬度数据并进行程序计时。
importtime
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、构造函数
importpandas as pdimportrequestsimporttimeimportcsvimportjsondefgaode(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)returnm
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_startprint('共用时%s秒'%t)
通过高德地图批量解析500个地址获取经纬度数据共用时约37.74秒,平均1秒钟可以获取13个地址的经纬度,解析速度高于腾讯地图。
共用时37.740272998809814秒
三、百度地图
百度地图批量获取经纬度方法与高德地图一致。
百度地图开放平台
1、构造函数
importpandas as pdimportrequestsimporttimeimportcsvimportjsondefbaidu(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)returng
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_startprint('共用时%s秒'%t)
通过百度地图批量解析500个地址获取经纬度数据共用时约24.06秒,平均1秒钟可以获取20个地址的经纬度,解析速度高于高德地图和腾讯地图。
共用时24.0550799369812秒
四、小结
仅从解析速度来看,百度地图效率高于高德地图,高德地图高于腾讯地图。当然,解析速度还要考虑程序运行时的网络状况、电脑自身配置等因素。另外,地址数据解析还要考虑准确率,只有综合考虑解析速度和准确率,才能更加客观地判断哪一种方法最优,准确率方面的评测将在以后的文章中进行分享。
关于python数据的纬度_Python获取各大地图平台经纬度数据,哪家的数据最准确?...相关推荐
- python数据展示平台_Python获取各大地图平台经纬度数据,哪家的数据最准确?
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于菜J学Python ,作者J哥 前言 不知道大家会在什么场合使用地图 ...
- python获取地图上经纬度_Python获取各大地图平台经纬度数据,哪家的数据最准确?...
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于菜J学Python ,作者J哥 前言 不知道大家会在什么场合使用地图 ...
- 超详攻略!Databricks 数据洞察 - 企业级全托管 Spark 大数据分析平台及案例分析
简介: 5分钟读懂 Databricks 数据洞察 ~ 更多详细信息可登录 Databricks 数据洞察 产品链接:https://www.aliyun.com/product/bigdata/sp ...
- python提取矩阵元素_python获取array中指定元素的示例
python获取array中指定元素的示例 对于array,如2-D的array,如何取指定元素 设array为3*10的shape s = array([[ 0, 1, 2, 3, 4, 5, 6, ...
- python市场需求如何_python市场需求量大吗
长期流行的编程语言Python可能是其粉丝的最爱,但是作为Python开发者,你可以以此谋生吗?更重要的是,作为世界上最流行的语言之一,就业市场对它的认可度如何? 事实证明,用Python准没错--最 ...
- 《2017中国大数据发展前景报告》-奥威大数据分析平台
前言:从"实施国家大数据,推进数据资源开放共享"的国家政策推进,到"白菜的价格统计"的日常数据,"大数据"受到越来越多的关注,甚至被认为是& ...
- python 导出数据并发邮件_Python 获取zabbix数据图并发邮件
Python 获取zabbix数据图并发邮件#! /usr/bin/env python # coding=utf-8 # Andy_f import time, os,datetime import ...
- python qq群文件_python 获取qq群成员列表数据
#!/usr/bin/python # -*- coding: utf-8 -*- import re import time import xlsxwriter from selenium impo ...
- python 打卡程序_python获取微信企业号打卡数据并生成windows计划任务
由于公司的系统用的是Java版本,开通了企业号打卡之后又没有预算让供应商做数据对接,所以只能自己捣鼓这个,以下是个人设置的一些内容,仅供大家参考 安装python python的安装,这里就不详细写了 ...
最新文章
- 华为手机升级回退_华为鸿蒙OS 2.0手机开发者Beta版支持Mate 30/P40系列OTA升级
- php自定义控件,小程序自定义组件的实现方法(代码)
- 大数据【企业级360°全方位用户画像】标签系统介绍
- Vue中怎样获取json文件中的数据
- 51单片机—串口通信
- 【iOS开发】理解Action、IBACtion、Action Connection
- opencv的android.mk,android-opencv 版本下JNI Android.mk文件的书写
- java ee是编程语言_什么是Java编程语言?
- 事件和数据回发机制的实现
- python中fac函数_python系列-基础
- Mac墨刀怎么导出HTML,mockingbot墨刀中文使用说明.pdf
- 网络安全中常见网络命令
- “瘦”AP和“胖”AP的区别
- Avoid passing null as the view root (needed to resolve layout parameters on the inflated layout's ro
- 【经验篇】记如何排查Linux服务器CPU使用率过高的问题
- MySQL latch
- 乐视2 usb计算机连接,乐视 LetvX620 开启USB调试模式
- 教育培训行业现状分析
- 头脑王者对战游戏html5源码,头脑王者分析笔记及微信小程序解包源码
- 水平型微指令与垂直型微指令
热门文章
- python 误差线_Python | 绘图中的误差线
- 【三】3D匹配Matching之可变形曲面匹配Deformable Surface—Based——clear_deformable_surface_matching_result()算子
- oracle rac lrm 00109,ORA-01078LRM-00109解决方案RACASM
- 电脑技巧常识, 微信技巧, 快捷键
- 腾讯安全玄武实验室披露“BadPower”安全问题 影响快充设备过亿
- Tableau图表字典
- JAVA:实现LeonardoNumber莱昂纳多数算法(附完整源码)
- 怀着对这句话以及“围城”的好奇,我读了《围城》这本书
- html中div图片大小,如何用DIV+CSS控制图片大小范围?
- css 按钮去掉浮雕效果,如何使用css完成以下浮雕效果