计算地球表面两点之间的距离
若知道地球表面两点之间的经纬度,那么便可以计算两点之间的实际距离,其数学公式推导可参考:
https://download.csdn.net/download/niu_88/10759266
下面函数中三种方法等价,都可直接使用。
/** 计算北京<=====>深圳距离:北京经度--》116.46 纬度--》39.92深圳经度--》114.058 纬度--》22.54计算得距离:1947.98公里*/#include "stdio.h"
#include "math.h"
#include "iostream"using namespace std;typedef unsigned int uint32_t;
typedef int int32_t;
typedef char int8_t;
typedef unsigned char uint8_t;
typedef short int16_t;
typedef long long int64_t;
typedef unsigned long long uint64_t;/*===================================================================================
函数名 :GpsDistance(int32_t nLng1, int32_t nLat1, int32_t nLng2, int32_t nLat2)
输入参数 :当前经纬度 nLng1, nLat1前者经纬度 nLng2, nLat2单位 度*1e7
输出参数 :无
返回值 :地球两点之间表面距离,单位:m
作者 :牛哥哥
创建时间 :2018.11.02
修改历史 :xxx
=================================================================================== */
double GpsDistance(int32_t nLng1, int32_t nLat1, int32_t nLng2, int32_t nLat2)
{double dLat1, dLat2, dDeltLng, R, dInAngelRad;double dPi = 3.1415926;R = 6378137.0; dLat1 = nLat1*dPi / 180.0 / (1.0e7f);dLat2 = nLat2*dPi / 180.0 / (1.0e7f);dDeltLng = (nLng2 - nLng1)*dPi / 180.0 / (1.0e7f);//方法1//dInAngelRad = acos(cos(dLat2 - dLat1) + cos(dLat1)*cos(dLat2)*(cos(dDeltLng) - (double)1.0));//方法2//dInAngelRad = acos(sin(dLat1)*sin(dLat2) + cos(dLat1)*cos(dLat2)*cos(dDeltLng));//方法3dInAngelRad = 2 * asin(sqrt(sin((dLat1 - dLat2) / 2)*sin((dLat1 - dLat2) / 2) + sin(dDeltLng / 2)*sin(dDeltLng / 2)*cos(dLat1)*cos(dLat2)));R = R*dInAngelRad;return R;
}int main()
{double distance;distance = GpsDistance(114.058e7, 22.54e7, 116.46e7, 39.92e7);cout << "北京到深圳的是 " << distance/1000.0f << " 公里" << endl;return 0;
}
计算地球表面两点之间的距离相关推荐
- 用计算python两点之间的距离math_自学生信Python(第二天)|计算出两点之间的距离...
计算出两点之间的距离 日常旁白:本人是一枚生物学的学生,由于对生物信息学特别感兴趣,于是想自学生物信息学(新手莫怪).了解到生物信息学要有编程基础,尤其是要会一门编程语言,例如:R语言.Python. ...
- 根据经纬度计算地球两点之间的距离
前言 之前做过的很多项目中都有涉及到根据经纬度计算两点之间的距离,然后做排序.这个场景在很多外卖App或者小程序上经常看到,例如距离2km,<100m等等. 工具类1 public class ...
- 如何通过经纬度粗略计算地球两点之间的距离?直接上代码
通过两点的经纬度,就可以知道两点之间大致的夹角是多少度(相对地心来说).这个可以通过三角函数大致求得,当然这样求出来的角度不是很准,但足够用了. 可以通过下列式子计算两点之间的夹角.x1,y1为第一个 ...
- 给定经纬度计算距离_根据经纬度计算地球上两点之间的距离js实现代码
利用JS实现的根据经纬度计算地球上两点之间的距离 最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下. 计算地球表面两点间的距离大概有两种办法. 第一种是默认地球是一个光滑的球面 ...
- C++第一次实验-求两点之间的距离
一.问题及代码 /* 文件名称:Test4.cpp * 作 者:胡嘉威 * 完成日期: 2017 年 2 月 28 日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分:输入两个点的坐标,求两 ...
- php 计算两点时间距离,PHP计算地球上两点之间的距离(示例详解)
给定经度和纬度,求地球上两点之间的距离.首先我们需要了解该问题的解决思路,然后再用PHP代码来实现计算. 此问题可以用半正矢(haversine)公式求解: 大圆距离或正交距离是球面(或地球表面)上两 ...
- php算球面距离,球面两点之间的距离计算
球面两点之间的距离计算 在便捷的交通中,我们的出行很时候都需要依赖于导航系统,对于短距离的移动,我们可以把地面当成一个平面进行简单的计算两点之间距离.但是,如果我们需要跨国.跨洲进行远距离的出行时候, ...
- Java根据经纬度计算两点之间的距离
1. 前言 在我们平时使用美团,饿了么等app进行订餐,或者使用猫眼进行订电影票的时候,都有一个距离的排序,表明该家店距离我们当前的位置,这种基于地理位置的服务,统一被称为LBS(Location ...
- 通过gps给定的两个经纬度坐标,计算两点之间的距离
/** * * 计算两地之间的距离(给定经纬度) * * @param lat1 出发地经度 * @param lng1 出发地纬度 * @param lat2 目的地经度 * @param lng2 ...
最新文章
- 获取另一个驱动的设备结构体_《rt-thread驱动框架分析》-i2c驱动
- python requests库api_Python+requests库发送接口入参为xml格式的接口请求
- linux 制作box文件夹,用busybox制作自己简易的根文件系统
- 排序千万级数据_MySQL 对于千万级的大表要怎么优化?我写了6000字的深度解读...
- 在mysql数据库中,多表查询,事务,DCL,
- WiresharkTCP的状态 (SYN, FIN, ACK, PSH, RST, URG)
- Python钉钉报警及Zabbix集成钉钉报警
- 存储控制器wwn号_AUTOSAR学习笔记之存储
- 13-12-X-Pack的配置与检查
- android怎么注释代码块,Android.mk 代码注释
- 面试中关于Redis的问题看这篇就够了
- python怎么调用接口失败_python 调用接口
- 程序员的求生欲有所强?用Python花式哄女友
- linux racoon代码,源代码安装IPsec-Tools-0.7.2
- HSQLDB 安装与使用
- Mybatis框架源码笔记(一)之编译Mybatis源码和源码调试环境准备
- java学习代码01 范围:基本测试、标识符、数据类型、运算符、控制语句
- 阿里云迁移工具推荐最佳实践:Hyper-V虚拟化迁移到阿里云
- Step1我学习ros2的一些经历(从ubuntu安装到ros2中的位姿转换)
- ArcMAP实现矢量数据平移