#define PI 3.1415926
double LantitudeLongitudeDist(double lon1,double lat1,
double lon2,double lat2)
{
double er = 6378137; // 6378700.0f;
//ave. radius = 6371.315 (someone said more accurate is 6366.707)
//equatorial radius = 6378.388
//nautical mile = 1.15078
double radlat1 = PI*lat1/180.0f;
double radlat2 = PI*lat2/180.0f;
//now long.
double radlong1 = PI*lon1/180.0f;
double radlong2 = PI*lon2/180.0f;
if( radlat1 < 0 ) radlat1 = PI/2 + fabs(radlat1);// south
if( radlat1 > 0 ) radlat1 = PI/2 - fabs(radlat1);// north
if( radlong1 < 0 ) radlong1 = PI*2 - fabs(radlong1);//west
if( radlat2 < 0 ) radlat2 = PI/2 + fabs(radlat2);// south
if( radlat2 > 0 ) radlat2 = PI/2 - fabs(radlat2);// north
if( radlong2 < 0 ) radlong2 = PI*2 - fabs(radlong2);// west
//spherical coordinates x=r*cos(ag)sin(at), y=r*sin(ag)*sin(at), z=r*cos(at)
//zero ag is up so reverse lat
double x1 = er * cos(radlong1) * sin(radlat1);
double y1 = er * sin(radlong1) * sin(radlat1);
double z1 = er * cos(radlat1);
double x2 = er * cos(radlong2) * sin(radlat2);
double y2 = er * sin(radlong2) * sin(radlat2);
double z2 = er * cos(radlat2);
double d = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2));
//side, side, side, law of cosines and arccos
double theta = acos((er*er+er*er-d*d)/(2*er*er));
double dist = theta*er;
return dist;
}
分享到:
相关推荐
"计算两个经纬度之间的距离Java"这个主题,涉及到地理坐标系统、Haversine公式以及高德地图API的运用。 首先,我们需要了解地理坐标系统。地球被抽象为一个球体,每个位置由经度和纬度来唯一标识。经度是从本初子午...
计算两个经纬度之间的距离是这类应用中的一个基础问题。本篇文章将详细探讨如何根据经纬度计算两点间的距离,并提供一种实现方法。 首先,我们需要了解地球是一个近似的椭球体,而不是完美的球体。因此,我们通常...
### 计算两经纬度之间的距离存储过程_mysql 在MySQL中,经常需要处理与地理位置相关的数据,例如在地图应用、物流系统或者任何需要基于位置的服务(LBS)的应用程序中。其中一项常见的需求就是计算两个地理位置之间...
最后,“经纬度计算距离经纬度计算距离工具(gpsCal)”是核心应用,它利用GIS的基本原理,通过输入两个地理位置的经纬度,计算它们之间的直线距离(即大圆距离)。对于户外活动爱好者、旅行者以及需要精确地理信息的...
在Excel中计算两经纬度之间的距离和角度是一个实用的功能,特别是在地理信息系统(GIS)和物流等领域。本篇文章将详细介绍如何利用Excel内置的VBA(Visual Basic for Applications)编写宏来实现这一目标,并解释...
### 计算两个经纬度之间的公里数 #### 概述 在地理信息系统(GIS)以及定位服务中,经常需要计算两个地理位置之间的距离。这在地图应用、物流规划、位置跟踪等场景中尤为重要。本文将详细介绍如何使用Java编写一个...
计算两个经纬度之间方向角的基本原理是利用大圆航线的地理学知识。由于地球是一个球体,两点之间的最短路径是通过地球表面的大圆弧。在二维平面上,我们可以使用余弦定律或正切函数来求解角度。具体公式如下: 假设...
Java计算两个经纬度点之间距离(以米为单位)算法, 纯Java代码, 可供参考。 在具体项目中使用过。
这段代码使用了 Vincenty 公式来计算两个经纬度之间的距离,Vincenty 公式是一种常用的计算经纬度距离的方法。该公式可以计算出两个经纬度之间的距离,以千米为单位。 C#经纬度计算: 在C#中,我们可以使用以下...
在Java编程中,计算两个经纬度之间的距离通常涉及到地理坐标系统的知识,主要使用Haversine公式或者Spherical Law of Cosines。Haversine公式适用于球面几何,它能计算地球上两点之间的大圆距离,而Spherical Law of...
在IT行业中,尤其是在地理信息系统(GIS)或者基于位置服务(LBS)的应用中,计算两个经纬度之间的距离是一项常见的任务。这项技术对于导航系统、地图应用、物流配送、社交网络等多个领域都至关重要。本篇文章将深入...
主要介绍了如何在MATLAB中计算两个经纬度点之间的距离,您可以根据自己的需求进一步扩展和优化这个方法。
根据经纬度计算两点之间的距离,传输过来坐标点,直接计算两点之间的距离
flutter + SpringBoot + MySql 实现高德地图定位获取位置信息插入数据库并计算出经纬度之间的距离
2. Haversine公式:计算两个经纬度点之间的大圆距离常用Haversine公式。它考虑了地球的曲率,假设地球是一个完美的球体。公式如下: `a = sin²(Δφ/2) + cos φ1 ⋅ cos φ2 ⋅ sin²(Δλ/2)` `c = 2 ⋅ atan2...
已知两点经纬度,自动计算距离。在表格分别输入两点的经度、纬度,即可计算出这两个点之间的距离长度。已知两点经纬度,自动计算距离。在表格分别输入两点的经度、纬度,即可计算出这两个点之间的距离长度。
经纬度距离计算小工具,经纬度距离计算小工具
在IT行业中,尤其是在地理信息系统(GIS)或者...总结来说,通过Qt结合C和C++,我们可以方便地处理经纬度相关的计算,包括两点之间的距离和方位角,这对于开发涉及地理位置的应用,如导航、追踪或地图服务至关重要。
在JAVA编程中,计算两点经纬度之间的距离是一个常见的地理计算任务,主要应用于地图应用、导航系统或者地理位置服务等。这个任务通常使用哈弗辛公式(Haversine formula)来实现,该公式基于球面三角学,可以计算...
本篇文章将深入探讨如何利用经纬度来计算地球上两点之间的距离,并介绍一个基于MATLAB的GUI工具,方便用户进行此类计算。 首先,让我们理解经纬度的基本概念。经度是指从本初子午线向东或向西测量的角度,0°经线...