Geopy 笔记:计算距离

news/2024/11/17 19:52:30/

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.055949693856725distance.distance(loc1,loc2).m
#11055.949693856724distance.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 distancedistance.distance(kilometers=1).destination((31.255561,121.480033),bearing=90)

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

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


http://www.ppmy.cn/news/1096654.html

相关文章

MATLAB/Python编程:绘制一维和二维的分布直方图

注1:本文系“MATLAB/Python的编程”系列之一,致力于使用Python和Matlab实现特定的功能。本次要实现的功能是:绘制一维和二维的分布直方图。 MATLAB/Python编程:绘制一维和二维的分布直方图 文章目录 MATLAB/Python编程:绘制一维和二维的分布直方图Python中的绘图安装matpl…

【MySQL系列】MySQL的事务管理的学习(一)_ 事务概念 | 事务操作方式 | 事务隔离级别

「前言」文章内容大致是MySQL事务管理。 「归属专栏」MySQL 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、事务概念二、事务的版本支持三、事务提交方式四、事务常见的操作方式4.1 事务正常操作4.2 事务异常验证 五、事务隔离级别5.1 查看与设置隔离性5.2 读未提交&…

回归与聚类算法系列②:线性回归

目录 1、定义与公式 2、应用场景 3、特征与目标的关系分析 线性回归的损失函数 为什么需要损失函数 损失函数 ⭐如何减少损失 4、优化算法 正规方程 梯度下降 优化动态图 偏导 正规方程和梯度下降比较 5、优化方法GD、SGD、SAG 6、⭐线性回归API 7、实例&#…

耳机类型分类

耳机座类型 市面上有4种类型的耳机座: 常开型 欧标座、美标座 常闭型 欧标座、美标座 常开/常闭座的区别: 主要在于插拔(PLUG-IN/OUT)检测: 常开 : 插入 0V 拔出1.8V 常闭 : 插入 1.8V …

Laravel 开发遇到的相关问题

问题1、job 队列任务代码修改后不生效 对 laravel job 队列的代码进行了修改,但是没有生效,查看了一下官方手册,原来要执行一下: php artisan queue:restart问题2、执行job里的任务命令 php artisan queue:work redis --queuegdt/…

2023国赛数学建模B题思路分析 - 多波束测线问题

# 1 赛题 B 题 多波束测线问题 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播, 在不同界面上产生反射, 利用这一原理,从测量船换能器垂直向海底发射声波信 号,并记录从声波发射到…

Python调用Jumpserver的Api接口增删改查

引言 Jumpserver是一款强大的堡垒机系统,可以有效管理和控制企业内部服务器的访问权限,提高网络安全性。本文将介绍如何使用Python编程语言,结合Jumpserver提供的API接口,实现对跳板机的管理和操作。 1、什么是Jumpserver&#…

4、Nginx 配置实例-反向代理

文章目录 4、nginx 配置实例-反向代理4.1 反向代理实例一4.1.1 实验代码 4.3 反向代理实例二4.3.1 实验代码 【尚硅谷】尚硅谷Nginx教程由浅入深 志不强者智不达;言不信者行不果。 4、nginx 配置实例-反向代理 4.1 反向代理实例一 实现效果:使用 nginx…