若知道地球表面两点之间的经纬度,那么便可以计算两点之间的实际距离,其数学公式推导可参考:

    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;
}

计算地球表面两点之间的距离相关推荐

  1. 用计算python两点之间的距离math_自学生信Python(第二天)|计算出两点之间的距离...

    计算出两点之间的距离 日常旁白:本人是一枚生物学的学生,由于对生物信息学特别感兴趣,于是想自学生物信息学(新手莫怪).了解到生物信息学要有编程基础,尤其是要会一门编程语言,例如:R语言.Python. ...

  2. 根据经纬度计算地球两点之间的距离

    前言 之前做过的很多项目中都有涉及到根据经纬度计算两点之间的距离,然后做排序.这个场景在很多外卖App或者小程序上经常看到,例如距离2km,<100m等等. 工具类1 public class ...

  3. 如何通过经纬度粗略计算地球两点之间的距离?直接上代码

    通过两点的经纬度,就可以知道两点之间大致的夹角是多少度(相对地心来说).这个可以通过三角函数大致求得,当然这样求出来的角度不是很准,但足够用了. 可以通过下列式子计算两点之间的夹角.x1,y1为第一个 ...

  4. 给定经纬度计算距离_根据经纬度计算地球上两点之间的距离js实现代码

    利用JS实现的根据经纬度计算地球上两点之间的距离 最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下. 计算地球表面两点间的距离大概有两种办法. 第一种是默认地球是一个光滑的球面 ...

  5. C++第一次实验-求两点之间的距离

    一.问题及代码 /* 文件名称:Test4.cpp * 作 者:胡嘉威 * 完成日期: 2017 年 2 月 28 日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分:输入两个点的坐标,求两 ...

  6. php 计算两点时间距离,PHP计算地球上两点之间的距离(示例详解)

    给定经度和纬度,求地球上两点之间的距离.首先我们需要了解该问题的解决思路,然后再用PHP代码来实现计算. 此问题可以用半正矢(haversine)公式求解: 大圆距离或正交距离是球面(或地球表面)上两 ...

  7. php算球面距离,球面两点之间的距离计算

    球面两点之间的距离计算 在便捷的交通中,我们的出行很时候都需要依赖于导航系统,对于短距离的移动,我们可以把地面当成一个平面进行简单的计算两点之间距离.但是,如果我们需要跨国.跨洲进行远距离的出行时候, ...

  8. Java根据经纬度计算两点之间的距离

    1. 前言   在我们平时使用美团,饿了么等app进行订餐,或者使用猫眼进行订电影票的时候,都有一个距离的排序,表明该家店距离我们当前的位置,这种基于地理位置的服务,统一被称为LBS(Location ...

  9. 通过gps给定的两个经纬度坐标,计算两点之间的距离

    /** * * 计算两地之间的距离(给定经纬度) * * @param lat1 出发地经度 * @param lng1 出发地纬度 * @param lat2 目的地经度 * @param lng2 ...

最新文章

  1. 获取另一个驱动的设备结构体_《rt-thread驱动框架分析》-i2c驱动
  2. python requests库api_Python+requests库发送接口入参为xml格式的接口请求
  3. linux 制作box文件夹,用busybox制作自己简易的根文件系统
  4. 排序千万级数据_MySQL 对于千万级的大表要怎么优化?我写了6000字的深度解读...
  5. 在mysql数据库中,多表查询,事务,DCL,
  6. WiresharkTCP的状态 (SYN, FIN, ACK, PSH, RST, URG)
  7. Python钉钉报警及Zabbix集成钉钉报警
  8. 存储控制器wwn号_AUTOSAR学习笔记之存储
  9. 13-12-X-Pack的配置与检查
  10. android怎么注释代码块,Android.mk 代码注释
  11. 面试中关于Redis的问题看这篇就够了
  12. python怎么调用接口失败_python 调用接口
  13. 程序员的求生欲有所强?用Python花式哄女友
  14. linux racoon代码,源代码安装IPsec-Tools-0.7.2
  15. HSQLDB 安装与使用
  16. Mybatis框架源码笔记(一)之编译Mybatis源码和源码调试环境准备
  17. java学习代码01 范围:基本测试、标识符、数据类型、运算符、控制语句
  18. 阿里云迁移工具推荐最佳实践:Hyper-V虚拟化迁移到阿里云
  19. Step1我学习ros2的一些经历(从ubuntu安装到ros2中的位姿转换)
  20. ArcMAP实现矢量数据平移

热门文章

  1. java hashmap 随机_有没有办法在Java中随机获取HashMap的值?
  2. 大青云不显示服务器,《大青云》8月30日合服公告
  3. 给Java开发者的Flutter开发基础---Dart语言
  4. 对于position定位的认识
  5. 计算机我要学到什么水平?
  6. Cocos2d的ChipMunk
  7. 「滴滴-橙心优选」秋招面试复盘总结
  8. Java核心技术----枚举类型与泛型
  9. 虚假IP地址攻击如何溯源?
  10. 基于web的商场商城后台管理系统