计算两个经纬度的距离_快速计算两地距离——geodist命令介绍

本文作者:宁刘莹,中南财经政法大学金融学院

文字编辑:赵冰洁

技术总编:余术玲

爬虫俱乐部云端课程

   爬虫 俱乐部于2020年暑期在线上举办的 Stata与Python编程技术训练营和 Stata数据分析法律与制度专题训练营在不久前已经圆满结束啦~应广大学员需求,我们的课程现已在腾讯课堂全面上线,且 继续提供答疑服务 。现在关注公众号并在朋友圈转发推文《 来腾讯课堂学Stata和Python啦 》或《 8月Stata数据分析法律与制度专场来啦!》,即可获得 600元课程优惠券 ,集赞50个再领 200元课程优惠券 !(截图发至本公众号后台领取)原价2400元的课程,现在只要 1600元 !    

导读

  在之前的推文《轻松获取通行数据——cntraveltime命令介绍》里,我们介绍了用 cntraveltime 命令来获取两地之间的交通时间和交通路程,那么如果我们从地理的角度出发想要得到两地之间的直线距离该怎么做呢?根据中学的数学物理知识,在已知地球半径、两个地点的经纬度的情况下,列一个计算公式是可以计算出在地球表面两地之间的直线距离的,但列式子未免过于麻烦,这个由懒人驱动的世界就开发了一个命令—geodist—来帮助我们实现这个功能。给我几列经纬度数据,还你一份直线距离。

一、命令介绍

该命令的语法如下: 如果纬度/经度坐标是数值变量: geodist lat1 lon1 lat2 lon2 [if] [in], generate(new_dist_var) [options] 该命令有这样几个选项: (1)miles:指定以英里为单位报告距离; (2)ellipsoid(a,f):自定义椭球体参数(a,f),a为一个椭球体的长半轴,f为短半轴,长半轴是地心到赤道的球半径长度,短半轴是地心到两级的球半径长度。这些是以米为单位的半长轴的长度(即到赤道的半径)和扁平率。具体的计算方法可参考: http://www.movable-type.co.uk/scripts/latlong-vincenty.html ; (3)maxiter(#):表示执行计算椭圆距离时的最大迭代次数,默认值为25。请注意实际上所有情况都需要少于10次迭代; (4)sphere:计算球体的大圆距离。默认地球近似为球体,其平均半径为6371公里。具体的计算方法可参考: http://www.movable-type.co.uk/scripts/latlong.html ; (5)radius:在计算大圆距离时,指定球体的半径(以千米为单位)。

二、举例介绍

  下面我们通过一个具体的例子来说明。首先要安装这个命令:

ssc install geodist

  结合爬虫俱乐部之前开发的 cngcode 命令,我们先来得到中南财经政法大学和武汉大学的经纬度。首先输入两所学校的详细地址,包括省、市、区、校名:

clear all input str100 fulladdr1 str100 fulladdr2"
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值