本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于菜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获取各大地图平台经纬度数据,哪家的数据最准确?相关推荐

  1. 关于python数据的纬度_Python获取各大地图平台经纬度数据,哪家的数据最准确?...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于菜J学Python ,作者J哥 前言 不知道大家会在什么场合使用地图 ...

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

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于菜J学Python ,作者J哥 前言 不知道大家会在什么场合使用地图 ...

  3. 超详攻略!Databricks 数据洞察 - 企业级全托管 Spark 大数据分析平台及案例分析

    简介: 5分钟读懂 Databricks 数据洞察 ~ 更多详细信息可登录 Databricks 数据洞察 产品链接:https://www.aliyun.com/product/bigdata/sp ...

  4. 文心千帆大模型平台,一站式企业级大模型平台

    文心千帆大模型平台,一站式企业级大模型平台 0. 前言 1. 人工智能发展历程 1.1 传统机器学习 1.2 深度学习 1.3 大模型时代 2. 文心千帆 2.1 文心千帆介绍 2.2 文心千帆应用场 ...

  5. python市场需求如何_python市场需求量大吗

    长期流行的编程语言Python可能是其粉丝的最爱,但是作为Python开发者,你可以以此谋生吗?更重要的是,作为世界上最流行的语言之一,就业市场对它的认可度如何? 事实证明,用Python准没错--最 ...

  6. 大屏数据展示,5.5寸大屏幕手机更受消费者喜爱

    智能手机从出现到热销,再到主导人们的生活,并没有花费太长时间.功能越来越多,屏幕越来越大,人们曾经一度认为手机的尺寸可能无限变大,乃至于取代电脑.但是,人们对手机便携性的需求毕竟还是相当高的,所以手机 ...

  7. 《2017中国大数据发展前景报告》-奥威大数据分析平台

    前言:从"实施国家大数据,推进数据资源开放共享"的国家政策推进,到"白菜的价格统计"的日常数据,"大数据"受到越来越多的关注,甚至被认为是& ...

  8. python提取矩阵元素_python获取array中指定元素的示例

    python获取array中指定元素的示例 对于array,如2-D的array,如何取指定元素 设array为3*10的shape s = array([[ 0, 1, 2, 3, 4, 5, 6, ...

  9. python应用在人工智能_python应用篇-大数据和人工智能时代下,python牛在哪?

    一.人工智能领域,python必用? 人工智能有多么火热呢?现在每12家拿到投资的创业公司,其中就有1家,是跟人工智能领域相关的.而在几年前,这个数字是48. 不管大家对这个行业的了解有多少,但你们肯 ...

最新文章

  1. WIN7下,联想A30T通过USB连接上网
  2. 函数的相关操作——利用函数翻转任意数组||利用函数冒泡排序||利用函数判断闰年
  3. 气门组的结构组成有哪些_你知道电线电缆是由哪些结构材料组成的吗?
  4. oracle 启动监听报错TNS-12547: TNS:lost contact
  5. 7-9 设计一个能处理异常的Loan类 (20 分)
  6. 崩溃!Win10 强制更新导致电脑无限重启
  7. CordovaWebViewImpl
  8. idea-spark-sbt 打包jar
  9. 满足其中一个条件则可_农村分户好处多,但并非人人都可分户!满足这4个条件才可以申请...
  10. Hibernate---对象的三种状态
  11. 正确断开计算机和网络的方法是,网络管理与维护-题库
  12. 代码检验方案:前端代码w3c校验
  13. 北京文化:截至10月8日 来源于《我和我的家乡》的收益约为8000万元-1亿元
  14. Democracy Player 0.8.5
  15. pycharm中两个.py文件相互调用和传递参数
  16. sqlserver日期函数 dateadd,datediff ,datepart ,datename,convert
  17. JAVA导出EXCEL表格
  18. C++数组连接求能被7整除的数
  19. Linux 环境下配置远程jupyter notebook server
  20. Tableau 添加加权平均参考线

热门文章

  1. 如何取消掉计算机更新图标,XP系统如何关闭右下角中的自动更新图标?
  2. opencv对应python版本_【求问各位大佬python3.6怎么使用opencv,用哪个版本】python3 opencv...
  3. input 不显示边框_不需要使用JavaScript
  4. Linux7改运行级别,Centos7 修改运行级别
  5. linux内存管理简介,Linux内存管理机制简介
  6. nebual的图数据结构
  7. tensorlfow.saved_model的使用
  8. 将每个字典一行一行的添加到pd.DataFrame中
  9. 超凡先锋怎么进入维护服务器,超凡先锋新手教程怎么过 新手教程攻略_超凡先锋...
  10. anki怎么设置学习计划_新媒体企业品牌营销策划公众号运营规划线上推广内容管理sop工作流程计划方案表格模板新手小白零基础怎么学习写作软文涨粉技巧攻略下载...