计算两个位置经纬度距离

简介: 计算两个位置经纬度距离

python 笔记 haversine (两个经纬度坐标之间的距离)

1 安装包

pip install haversine

2 haversine:计算两个点经纬度之间的距离

from haversine import haversine
lyon = (45.7597, 4.8422)
paris = (48.8567, 2.3508)

haversine(lyon, paris)
#392.2172595594006 默认是公里

haversine(lyon, paris, unit=Unit.MILES)
#单位设置为英里
#243.71250609539814

haversine(lyon, paris, unit='mi')
#243.71250609539814

3 Unit——支持的所有单位

from haversine import Unit

tuple(Unit)
'''
(<Unit.KILOMETERS: 'km'>,
 <Unit.METERS: 'm'>,
 <Unit.MILES: 'mi'>,
 <Unit.NAUTICAL_MILES: 'nmi'>,
 <Unit.FEET: 'ft'>,
 <Unit.INCHES: 'in'>,
 <Unit.RADIANS: 'rad'>,
 <Unit.DEGREES: 'deg'>)
'''

4 inverse haversine 从给定的向量(距离和方向)和起点计算点。

目前明确支持(北,东,南,西)和(东北,东南,西南,西北)方向。但也允许以弧度表示的角度。

from haversine import inverse_haversine, Direction
from math import pi
paris = (48.8567, 2.3508) # (lat, lon)

inverse_haversine(paris, 32, Direction.WEST)
#(48.85587279023947, 1.9134085092836945)

inverse_haversine(paris, 50, Direction.NORTH, unit=Unit.MILES)
#(49.58035791599536, 2.3508

inverse_haversine(paris, 32, pi * 1.25)
#(48.65279552300661, 2.0427666779658806)

5 haversine_vector

from haversine import haversine_vector, Unit

lyon = (45.7597, 4.8422) # (lat, lon)
paris = (48.8567, 2.3508)
new_york = (40.7033962, -74.2351462)

haversine_vector([lyon, lyon,lyon], [paris, new_york,lyon], Unit.KILOMETERS)
#array([ 392.21725956, 6163.43638211,    0.        ])
#分别是 lyon-paris,lyon-new_york,lyon-lyon的距离

5.1 comb=True

from haversine import haversine_vector, Unit

lyon = (45.7597, 4.8422) # (lat, lon)
london = (51.509865, -0.118092)
paris = (48.8567, 2.3508)
new_york = (40.7033962, -74.2351462)

haversine_vector([lyon, london], [paris, new_york], Unit.KILOMETERS, comb=True)
'''
array([[ 392.21725956,  343.37455271],
       [6163.43638211, 5586.48447423]])

注意:经度在-180到180,纬度在-90到90

原文链接

目录
相关文章
|
Ubuntu Docker 容器
如何在Ubuntu上安装Docker?
【2月更文挑战第10天】
1131 0
|
安全 Linux 测试技术
配置Goby工具环境(win,linux,macOS)
配置Goby工具环境(win,linux,macOS)
1467 2
|
安全 大数据 测试技术
Mongodb亿级数据量的性能测试比较完整收藏一下
原文地址:http://www.cnblogs.com/lovecindywang/archive/2011/03/02/1969324.html 进行了一下Mongodb亿级数据量的性能测试,分别测试如下几个项目: (所有插入都是单线程进行,所有读取都是多线程进行) 1) 普通插入性能 (插...
4663 0
|
3月前
|
Windows
Microsoft Activation Scripts v3.6 (MAS)激活工具安装教程!中文汉化版(激活工具)
Microsoft Activation Scripts v3.6(MAS)是一款开源、轻量级的批量激活工具,支持HWID、KMS38、TSforge等多种方式,可离线永久激活Win7至Win11及Office全系列。兼容旧系统如Vista,操作简单,无误报风险。
5074 0
|
6月前
|
JSON 自然语言处理 数据挖掘
分词提取免费API使用指南:轻松实现文本关键词提取
免费中文分词关键词提取API,支持舆情分析、内容标签生成及搜索引擎优化,通过智能算法快速拆分文本关键词,适用于多种场景。
243 1
|
XML Java 数据格式
【SpringFramework】Spring初体验
Spring是一款由Rod Johnson创立的主流Java EE轻量级开源框架,它旨在简化Java企业级项目开发,提供一站式轻量级解决方案,取代复杂的EJB。Spring的核心功能包括IoC(控制反转)和AOP(面向切面编程),并支持非侵入式开发、组件化和容器管理。这篇文章简要描述相关知识点和初始springframework。
508 60
【SpringFramework】Spring初体验
|
12月前
|
人工智能 测试技术 定位技术
Tarsier2:字节跳动开源专注于图像和视频内容理解的视觉语言大模型
Tarsier2 是字节跳动推出的大规模视觉语言模型,支持高质量视频描述、问答与定位,在多个视频理解任务中表现优异。
896 16
|
自然语言处理 API
分词提取[关键词提取]免费API接口教程
接口用于从指定文本中提取关键词,支持POST和GET请求。需提供用户ID、用户KEY及待提取文本,可选设置关键词分隔符。返回状态码及结果或错误信息。示例中ID与KEY为公共测试用,建议使用个人ID与KEY以获得更高调用频率。
310 3
|
算法 数据可视化 Python
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
|
测试技术 Android开发 数据安全/隐私保护
脚本 | 手机大麦网脚本使用说明
这篇文章主要针对上篇文章的代码做一个使用说明
3850 0