Geopy 笔记:计算距离

1 介绍 

  • Geopy使用测地线距离或大圆距离来计算两点之间的地理距离,其中默认使用测地线距离(geopy.distance.distance)
    • 大圆距离(great_circle)使用地球的球形模型,,半径为6371.0087714150598 公里(适用于 WGS-84)
      • 其误差可达到大约 0.5%
      • 该半径值存储在 distance.EARTH_RADIUS 中,因此可以自定义(但单位应始终为公里)
    • 测地线距离是地球椭球模型表面上的最短距离
      • 有多种流行的地球椭球模型,默认情况下使用的是全球最准确的 WGS-84 椭球模型
      • geopy 还在 distance.ELLIPSOIDS 字典中包括了其他几种模型

 

2 举例

2.1 测地线距离

from geopy import distance
loc1 = (31.255561, 121.480033)
loc2 = (31.345561, 121.530033)

distance.distance(loc1,loc2)
#Distance(11.055949693856725)
#两个坐标点的测地线距离

distance.distance(loc1,loc2).km
#11.055949693856725

distance.distance(loc1,loc2).m
#11055.949693856724

distance.distance(loc1,loc2).miles
#6.8698486425877405
#换算成不同的单位

 测地线距离使用distance.distance 和 distance.geodesic是没差的

可以切换椭圆模型

distance.geodesic(loc1, loc2, 
                  ellipsoid='GRS-80')
#Distance(11.05594969368841)

 也可以自定义椭圆模型的各个参数

distance.geodesic(loc1, loc2, 
                  ellipsoid=(6377., 6356., 1 / 297.))
#Distance(11.053833498906037)

2.2 大圆距离

distance.great_circle(loc1,loc2)
#Distance(11.077858517227645)

3 返回的距离也可以做运算

from geopy import distance
from geopy.distance import Distance
loc1 = (31.255561, 121.480033)
loc2 = (31.345561, 121.530033)

distance.geodesic(loc1,loc2)
#Distance(11.055949693856725)

distance.geodesic(loc1,loc2)*2
#Distance(22.11189938771345)

distance.geodesic(loc1,loc2)+Distance(meters=1)
#Distance(11.056949693856724)

4 知道起点、距离和朝向,计算终点

from geopy import distance

distance.distance(kilometers=1).destination((31.255561,121.480033),bearing=90)

距离类这里大写D小写d没有区别

destination的第一个参数表示起始点,第二个参数表示朝向(北0、东90、南180、西270)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值