工作中有时会遇到这样一种场景:年末需要统计所有员工该年的航旅出差情况,然后根据他们的飞行距离补贴一定的交通费。例如如下所示情况:

然而,如果我们使用地图APP等工具逐一进行手工查询,在一家规模稍大的公司,成百上千条数据便很容易让人崩溃。

此时,便需要一种能够批量获取多座城市的位置信息以及他们之间的距离信息的方法。

这里分享一种利用Python爬虫和高德地图API批量获取信息并自动导出到CSV格式文件的做法:

代码原文如下:

import requests
from geopy.distance import geodesic
import csv'''
例如,我希望获得北京、上海、广州、深圳这四座城市,
任意两座城市之间的距离,以及他们相应的经纬度。只要
把这四座城市的名称放到loc这个列表变量里就可以。如
果要获得其他城市之间的距离,修改loc即可。
'''loc = ["北京","上海","广州","深圳"]# 利用高德地图API需要提供key,可以在官网上申请
key = '2ff259313e2a44392d570d5534358105'# 获取某地的经纬度
def getCoordinate(city):url= 'https://restapi.amap.com/v3/geocode/geo?parameters?key='+str(city)+'&address='+str(city)+'&key='+str(key)response = requests.get(url)answer = response.json()location = str(answer["geocodes"][0]["location"]).split(",")return location# 获取两城市之间的距离信息
def calDistance(place1,place2):coor1 = getCoordinate(place1)coor2 = getCoordinate(place2)distance = geodesic(coor1[::-1],coor2[::-1]).kmreturn distance# 创建一个CSV文件以存储信息
csv_file = open('城市距离.csv','w',newline='')
csv_writer = csv.writer(csv_file)
csv_writer.writerow(['城市一','城市二','城市一经度','城市一纬度','城市二经度','城市二纬度','距离(公里)'])
for i in loc:for j in loc[loc.index(i)+1:]:csv_writer.writerow([i,j,getCoordinate(i)[0],getCoordinate(i)[1],getCoordinate(j)[0],getCoordinate(j)[1],calDistance(i,j)])
csv_file.close()

导出到csv结果如下:

利用高德地图API获取任意两座城市之间的距离!异地也有惊喜!相关推荐

  1. python高德地图api调用实例_Python 利用高德地图api实现经纬度与地址的批量转换...

    我们都知道,可以使用高德地图api实现经纬度与地址的转换.那么,当我们有很多个地址与经纬度,需要批量转换的时候,应该怎么办呢? 在这里,选用高德Web服务的API,其中的地址/逆地址编码,可以实现经纬 ...

  2. 提取某一个镇的行政边界_高德地图api获取行政边界矢量方法

    高德地图api获取行政边界矢量方法 发布时间:2018-09-07 17:51, 浏览次数:2170 , 标签: api 1.获取高德地图web服务key 2.行政区域查询API服务地址: https ...

  3. 百度地图利用位置提供服务器,利用百度地图API获取当前位置信息的实例

    利用百度地图API可以做很多事情,个人感觉最核心也是最基础的就是定位功能了.这里分享一个制作的JS可以实现登录网页后定位: var map; var gpsPoint; var baiduPoint; ...

  4. java获取经纬度_java调用高德地图api获取某个位置的经纬度

    java调用高德地图api获取经纬度的方法,废话少说,直接上代码: import com.fasterxml.jackson.databind.JsonNode; import com.ning.ht ...

  5. 调用腾讯地图API、高德地图API 获取当前地理位置、经纬度

    调用腾讯地图API.高德地图API 获取当前地理位置.经纬度 web开发中,很多情况下都会需要获取当前位置的经纬度,在网上找了几个不同的地图,最终找到兼容比较好的腾讯地图API 1.调用腾讯地图API ...

  6. 算法----- 给定一颗二叉树,找到二叉树上任意两个节点之间的距离(Java版本)

    题目: 给定一颗二叉树,找到二叉树上任意两个节点之间的距离 class TreeNode {TreeNode left;TreeNode right;} 思路: 首先找到一个节点的路径,然后找到另一个 ...

  7. 厘米换算英尺英寸程序_使用C程序计算两个城市之间的距离,从公里到米,厘米,英尺和英寸...

    厘米换算英尺英寸程序 Input the distance between two cities in kilometers, we have to calculate the distance in ...

  8. android 地铁地图api,利用高德地图api绘制公交+地铁的等时圈

    等时圈是指从某点出发,以某种交通方式在特定时间内能到达的距离覆盖的范围,在可达性分析中十分常见.原本我们需要将地图栅格化不停地调用路径规划api来获得等时圈,现在已经有网站为我们做好了这些工作,比如h ...

  9. 【微信小程序】免费的高德地图api——获取天气(全过程)

    介绍 这里是小编成长之路的历程,也是小编的学习之路.希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡. 一个人为什么要努力? ...

最新文章

  1. 如何从ERP将Material的Batch信息下载到CRM并存储在settype COMM_PR_BATCH里
  2. yii2 Html::a
  3. babyos (三)——利用BIOS INT 0x13读取软盘
  4. Weblogic 12c中修改SERVER NAME的方法
  5. 表单元素的外观改变(webkit and IE10)
  6. java模板和回调机制学习总结
  7. js 视频插件zyMedia下载和使用方法
  8. 牛逼!手把手教你制作个人微信红包封面,保姆级红包封面制作教程
  9. ubuntu1804查看opencv版本
  10. 为什么你需要学 Go?
  11. 大学生计算机面试,大学生计算机毕业面试自我介绍
  12. 前端实现炫酷动效_最好的H5动效视频教程:HTML5炫酷动效案例
  13. Far planner代码系列(2)
  14. 数梦工场,新型互联网领域“独角兽”出笼
  15. 升级或重装Win10之后如何激活Win10的方法分享
  16. Java GUI程序示例
  17. python之九宫飞星
  18. python之for循环使用(奇数和、偶数和、最大公因数和最小公倍数、用户登陆系统)
  19. 【动画】【特效】 17种常用动画特效
  20. 【整理】Word OpenXML常用标签

热门文章

  1. idea无法正常显示配置文件图标
  2. PostgreSQL on duplicate update
  3. SQL学习之使用order by 依照指定顺序排序或自己定义顺序排序
  4. Notepad++ 依照xml格式进行格式化显示
  5. 聚合广告SDK文档(Kotlin)
  6. 同居mm_倾向于同居
  7. zabbix 官网提供的监控 postgresql 的模板
  8. 2.1 被隐藏了的过程
  9. “不裁员的微软” 裁员了!网上哀嚎一片!
  10. IOS系统自带方法将汉语转换成拼音