空间坐标两点之间的距离公式(空间坐标轴两点间距离公式),本文通过数据整理汇集了空间坐标两点之间的距离公式(空间坐标轴两点间距离公式)相关信息,下面一起看看。

空间两点坐标距离公式(立体坐标系两点间距离公式)我们在做地图开发的时候,经常会遇到求两坐标点之间的距离的问题,比如:求打车人的周边,有哪些最近的快车。首先我们就必须得

我们在做地图开发的时候,经常会遇到求两坐标点之间的距离的问题,比如:求打车人的周边,有哪些最近的快车。首先我们就必须得到快车与打车人之间的距离。

假设A点经纬度为Lat1 Lng1 ,B点经纬度为Lat2 Lng2 ;

要求这个距离,如果在一个平面上,还是比较方便的:

距离2 = (Lat1-Lat2)2+( Lng1- Lng2)2

距离 = [ (A点经度 - B点经度)^2 + (A点纬度 - B点纬度)^2 ] ^ (1/2)

公式说明:加 + ,减 - ,乘 *,除 /,幂运算 ^(1/2)表示平方根 ,^2表示平方。

--------------------------------------------------------------------------分割线------------------------------------------------------------------------------------

但考虑到地球本身并不是一个平面,地球的表面是有弧度的。我们这时候就必须引入一个常量,地球的半径:6378.137,单位为千米;

两点间的距离公式为:

2*6378.137*asin(sqrt(pow(sin(pi*(lat1-lat2)/360),2)+cos(pi*lat1/180)*cos(lat2*pi/180)*pow(sin(pi*(lng1 - lng2)/360),2)))

那么,就可以根据上面公式从数据库中查出到给定gps坐标距离最近的20个地点

表名:tb_area

表结构

===================================================

id === aname (地点名称)=== blng (纬度)=== blat(经度)

===================================================

$alat = $_GET["alat"];//给定地点的经度

$alng = $_GET["alng"];//给定地点的纬度

mysql中的sql语句为:

select aname,(2*6378.137*ASIN(SQRT(POW(SIN(PI*(".$alat." - blat)/360),2)+COS(PI* ".$alat." /180)*COS(blat *PI()/180)*POW(SIN(PI*(".$alng." - blng)/360),2)))) as dist from tb_area order by dist asc limit 0, 20

以上sql语句的场景之一,根据某人的实时坐标,从数据库中获得距离他最近的20个商店。

在打车应用中,除了某人的坐标点是实时的,附近的车辆坐标也是实时的,而不是存在数据库中不变的数值,计算比起上面又要复杂了,但其原理基本是一样的。

更多空间坐标两点之间的距离公式(空间坐标轴两点间距离公式)相关信息请关注本站。