计算经纬度坐标之间的真实距离

要计算两组经纬度坐标之间的距离,我们可以使用大地测量学中的公式,例如Haversine公式或者更精确的Vincenty公式。这里我将使用Haversine公式,因为它适用于小范围内的距离计算,且计算相对简单。

Haversine公式的基本形式如下:

d = 2 * R * arcsin(sqrt(haversin(Δlat) + cos(lat1) * cos(lat2) * haversin(Δlon)))

其中,d是两点之间的距离,R是地球的半径(约6371千米或6371000米),Δlat和Δlon分别是纬度和经度的差值,lat1和lat2是两点的纬度。

首先,我们需要将经纬度转换为弧度单位:

lat1_rad = lat1 * π / 180
lon1_rad = lon1 * π / 180
lat2_rad = lat2 * π / 180
lon2_rad = lon2 * π / 180

然后,我们计算纬度和经度的差值:

Δlat_rad = lat2_rad - lat1_rad
Δlon_rad = lon2_rad - lon1_rad

接着,我们计算Haversine公式中的各项:

haversin_Δlat = sin(Δlat_rad / 2)^2
haversin_Δlon = sin(Δlon_rad / 2)^2

然后代入公式计算距离:

d = 2 * R * arcsin(sqrt(haversin_Δlat + cos(lat1_rad) * cos(lat2_rad) * haversin_Δlon))

最后,我们将距离从千米转换为米:

d_m = d * 1000

现在,我们使用Python代码来计算这两点之间的距离:

import math# 定义常数
R = 6371000  # 地球半径,单位:米
π = math.pi# 输入经纬度坐标
lat1, lon1 = 36.25377625, 120.84230280
lat2, lon2 = 36.25380667, 120.84196020# 将经纬度转换为弧度
lat1_rad = lat1 * π / 180
lon1_rad = lon1 * π / 180
lat2_rad = lat2 * π / 180
lon2_rad = lon2 * π / 180# 计算纬度和经度的差值
Δlat_rad = lat2_rad - lat1_rad
Δlon_rad = lon2_rad - lon1_rad# 计算Haversine公式中的各项
haversin_Δlat = math.sin(Δlat_rad / 2)**2
haversin_Δlon = math.sin(Δlon_rad / 2)**2# 计算距离
d = 2 * R * math.asin(math.sqrt(haversin_Δlat + math.cos(lat1_rad) * math.cos(lat2_rad) * haversin_Δlon))# 将距离从千米转换为米
d_m = dprint("两点之间的距离为:", d_m, "米")

运行上述代码,我们可以得到两组经纬度坐标之间的距离。请注意,由于我是一个文本模型,我无法实际运行代码,但你可以复制上述代码到你的环境中运行以获得结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/38921.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机视觉 | 基于 PointNet 网络的飞机零件 3D 点云分割

目录 一、简要介绍二、环境设置2.1 实验配置2.2 必要库安装 三、数据集解析3.1 数据集加载3.2 数据文件夹结构3.3 点云数据可视化3.4 数据获取与预处理3.5 数据集定义 四、模型组网4.1 PointNet 介绍4.2 Paddle模型组网4.3 模型概要 五、模型训练六、模型预测七、总结 Hi&#…

2.1 程序设计语言基础

程序设计语言概述 常见的编程语言 编译和解释 程序设计语言的基本成分 数据成分、运算成分、控制成分、传输成分 函数 传值调用、传址调用 编译程序基本原理

使用Python实现一个简单的密码管理器

文章目录 一、项目概述二、实现步骤2.1 安装必要的库2.2 设计密码数据结构2.3 实现密码加密和解密2.4 实现主要功能2.4.1 添加新密码2.4.2 显示所有密码2.4.3 查找特定密码2.4.4 更新密码2.4.5 删除密码 2.5 实现用户界面 三、代码示例3.1 加密和解密示例3.2 用户界面示例 在现…

window上部署sql server改动端口、和sqlserver的一些还原、批量插入存储过程的命令

1.端口的查看和启动 --windows上安装上sql server数据库后,搜索界面搜索sql,会出现配置管理器,点击进入 --进入后再次选择配置管理器 2. sqlserver数据库还原图形化 sqlserver还原数据库时会使数据库进入一个restore的还原状态,…

昇思25天学习打卡营第6天|Vision Transformer

文章目录 昇思MindSpore应用实践基于MindSpore的Vision Transformer1、Vision Transformer(ViT)简介网络结构 2、Attention模块Encoder部分用到的功能函数:整体构建ViT模型 3、模型训练4、模型验证 Reference 昇思MindSpore应用实践 本系列文…

前端无感登录(无感刷新token)

1. 在响应器中拦截(判断token返回过期后,调用刷新token的接口) 2. 后端返回过期时间,前端判断token的过期时间,去调用刷新token的接口 3. 写定时器,定时刷新token接口 流程: 1. 登录成功后保存两…

降薪20%,那些压力山大的事情

1.开会一天,研发工作没完成,怎么办?? 2.项目接手,一堆问题等着处理怎么办? 3.产品研发,客户验收,公司要求,同事间相互的配合,完成一件事那么难,…

数据结构和顺序表

什么是数据结构 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 数据元素的三要素 数据结构包括三方面的内容:逻辑结构、存储结构、数据的运算。 逻辑结构 逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据。数据的逻辑结…

Android 第三方组件整理

Banner图: me.militch:banner-holder 注解: com.jakewharton:butterknifecom.jakewharton:butterknife-compiler 拼音: com.github.promeg:tinypinyin 日期: com.haibin:calendarview 二维码扫码: com.journeyapps:zxing…

跨过45分门槛,单独划线让软考证书可能失而复得

在软考的竞技场上,分数是拿证的那道坎,那就是45分!但别急,故事总有转折,国家为了那些在乡村振兴道路上奋力追赶的地区,特别开启了一扇窗——单独划线政策。 单独划线地区分数线并不是固定的,届时…

linux网络命令:httpie详解-简单易用的命令行 HTTP 客户端

目录 一、命令概述 二、基本特点 1、直观和友好的命令语句 2、内置 JSON 支持 3、支持多种请求方法 4、支持 HTTPS、代理和授权验证 5、支持多种请求数据格式 6、自定义 headers 头 7、持久 sessions 存储 8、插件支持 三、安装 1、对于基于 Debian 的系统&#xf…

MQ运行时遇到的问题

遇到的问题描述:我在绑定通道的时候发现了通道绑定失败, 原因: 在代码中我第一次创建交换机的时候类型的默认没有修改成topic类型的,导致后面的代码再去进行注册的时候并没有实现那个类型 解决: 更改代码&#xff0…

中介子方程三十九

XXFXXuXXWXXuXXdXXrXXαXXuXpXXKXηXiXXnXXyXηXuXXrXXaXXrXXuXηXyXXnXXiXηXKXXpXuXXαXXrXXdXXuXWXπXXWXeXyXeXbXπXpXXNXXqXeXXrXXαXXuXpXXKXηXiXXnXXyXηXuXXrXXaXXrXXuXηXyXXnXXiXηXKXXpXuXXαXXrXXeXqXXNXXpXπXbXeXyXeXWXXπXWXuXXdXXrXXαXXuXpXXKXηXiXXnXXyXη…

昇思25天学习打卡营第8天|保存与加载

当模型训练好以后,就可以用来预测了。后续我们在其他端部署的时候不需要再次训练,直接使用训练好的模型进行推理就可以了。 在保存和加载的时候我们都需要传入模型。保存的API是save_checkpoint(model,path), 对应的加载的API是 load_checkpoint(model,…

Java实现发送邮件

引入jar包 <dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version></dependency># 发送邮件配置 mail:smtp:host: smtp.163.comport: 25auth: trueusername: 139*****163.…

vue3+ el-upload封装上传组件

组件功能介绍 上传格式限制上传大小限制上传文件数量限制自定义上传区上传成功回调禁用上传开关与点击上传自定义事件暴露所以上传文件列表&#xff08;uploadList&#xff09;与当前文件数据&#xff08;uploadLatestFile&#xff09; 组件代码Upload.vue <template>&l…

启航数据科学:Jupyter Notebook安装全攻略,轻松入门!

目录 简介安装步骤 安装Python安装pip安装Jupyter Notebook 启动Jupyter Notebook基本使用常见问题总结 简介 Jupyter Notebook 是一个交互式的笔记本环境&#xff0c;支持运行和展示 Python 代码&#xff0c;以及文本、图表和公式。它广泛应用于数据分析、机器学习和科学计算…

在Stimulsoft 报告中连接来自 MySQL 的数据

Stimulsoft Ultimate &#xff08;原Stimulsoft Reports.Ultimate&#xff09;是用于创建报表和仪表板的通用工具集。该产品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他环境的完整工具集。无需比较产品功能&#xff0c;Stimulsoft Ultimate包含了…

Firewalld 防火墙基础

Firewalld 防火墙基础 一、Firewalld概述firewalld 简介firewalld 和 iptables 的关系firewalld 与 iptables service 的区别 二、Firewalld 网络区域区域介绍Firewalld数据处理流程 三、Firewalld 防火墙的配置方法firewall-config 图形工具“区域”选项卡“服务”选项卡改变防…

仓库管理系统24--统计报表

原创不易&#xff0c;打字不易&#xff0c;截图不易&#xff0c;多多点赞&#xff0c;送人玫瑰&#xff0c;留有余香&#xff0c;财务自由明日实现 1、引用LiveCharts 2、创建LiveChartViewModel using GalaSoft.MvvmLight; using LiveCharts.Wpf; using LiveCharts; using Sy…