2010-12-12 648 views
9

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

我正在使用Android平台。我只知道一个位置(当前位置)的坐标(经度和纬度),我想设置距离范围(比如说100米)。

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

+0

什么平台你在做计算? MySql或JavaScript? – Brad 2010-12-12 06:46:18

+0

在100米处,你可以(a)假定地球在这个尺度上是平坦的,并且使用几个人已经给出的相当简单的公式,或者(b)关心高度,在这种情况下,你需要一个GIS数据库。 – derobert 2010-12-12 08:03:55

回答

3

给定的输入是_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 
相关问题