当经纬度为已知点时计算100米距离

Posted

技术标签:

【中文标题】当经纬度为已知点时计算100米距离【英文标题】:Calculate 100 meter distance when the latitude and longitude is a known point 【发布时间】:2011-05-24 03:53:33 【问题描述】:

我想知道是否可以计算已知纬度和经度的给定点周围 100 米的距离。我在 mysql 数据库中有一些坐标,想知道特定坐标是否位于给定点的 100 米范围内。

我使用的是安卓平台。我只知道我站立的一个坐标(经度和纬度)(当前位置),我想设置距离范围(比如 100 米)。

我在数据库中保存了更多坐标,并想计算数据库中保存的其他点是否在我当前位置的 100 米范围内。我不知道我是否可以在我的应用程序中使用 GIS 数据库。

【问题讨论】:

你在什么平台上做计算? MySql 还是 javascript 在 100m 处,您可以 (a) 假设地球在该比例尺上是平的,并使用几个人已经给出的相当简单的公式,或者 (b) 关心高度,在这种情况下,您需要地理信息系统数据库。 【参考方案1】:

给定经纬度计算两点距离的完整代码http://www.movable-type.co.uk/scripts/latlong.html

【讨论】:

【参考方案2】:

给定的输入是_LATITUDE_LONGITUDE_METERSRANGE

SELECT *, 
       ( ( ( Acos(Sin(( _LATITUDE * Pi() / 180 )) * Sin(( 
                  ` LATITUDE `* Pi() / 180 )) + 
                    Cos 
                      (( 
                        _LATITUDE * Pi() / 180 )) * Cos(( 
                    ` LATITUDE `* Pi() / 180 )) * 
                    Cos 
                      (( 
                        ( 
                             _LONGITUDE - ` LONGITUDE ` ) * Pi() / 180 ))) ) * 
           180 / Pi 
           () 
         ) * 60 * 1.1515 * 1.609344 * 1000 ) AS METERS 
FROM   MYTABLE 
WHERE  METERS <= _METERSRANGE

【讨论】:

我知道这是很久以前发布的 - 但书面值代表什么,即 ) * 60 * 1.1515 * 1.609344 * 1000 ) 作为米 - 什么是 1.1515? 1.609344?等 @tember 1.6 是英里/公里转换器。 60 是一个学位的分钟数; 1000是一公里的米数; 1.1515 是海里的法定英里数。事实:一海里是赤道纬度一分钟的长度。更多解释请参见:***.com/questions/389211/… 这个答案是正确的。我测试了它,它工作正常。 既然可以通过差值检查,为什么还要计算呢?【参考方案3】:

如果有人还在寻找答案,计算距离很简单(精确获取方向很难计算,如果有人知道简单的答案,请添加)

因此请检查您的经纬度值之间的差异,十进制度数更改为 0.001 表示距离为 111 米。检查纬度和经度到十进制度的变化最大 0.001 将在您的点周围绘制一个 111m 半径的圆。

例如。您的起点是 A(Lat1,Lng1)。您要测试的点 B(LatB,LngB) , C(LatC,LngC) .....

if: (Lat1 - 0.001)

if: (Lat1 - 0.001)

十进制度参考https://en.wikipedia.org/wiki/Decimal_degrees

decimal degrees distance
0 1.0 111 km
1 0.1 11.1 km
2 0.01 1.11 km
3 0.001 111 m
4 0.0001 11.1 m
5 0.00001 1.11 m
6 0.000001 0.111 m
7 0.0000001 1.11 cm
8 0.00000001 1.11 mm

【讨论】:

以上是关于当经纬度为已知点时计算100米距离的主要内容,如果未能解决你的问题,请参考以下文章

Java,Mysql-根据一个给定经纬度的点,进行附近500米地点查询–合理利用算法

用java写:求地球上任意两个点之间的距离,知道这两个点的经纬度

java计算两个经纬度之间的距离

如何计算经纬度之间的距离? 具体这样计算经纬度间距

求助,GPS定位仪数据,求两点之间的距离,多少米?有经度、纬度数据。

两个经纬度算距离公式 方法是啥