2010-12-12 19 views
9

Quiero saber si es posible calcular una distancia de 100 metros alrededor de un punto dado con una latitud y longitud conocida. Tengo algunas coordenadas en una base de datos MySQL y quiero saber si una coordenada específica se encuentra en un rango de 100 metros desde un punto dado.Calcular distancia de 100 metros cuando la latitud y longitud es un punto conocido

Estoy usando la plataforma Android. Solo conozco una coordenada (Longitud y Latitud) donde estoy parado (ubicación actual) y quiero establecer el rango de distancia (digamos 100 metros).

Tengo más coordenadas guardadas en la base de datos y quiero calcular si los otros puntos guardados en la base de datos están en un rango de 100 metros de mi ubicación actual o no. No sé si puedo usar la base de datos GIS en mi aplicación.

+0

¿En qué plataforma estás haciendo el cálculo de? MySql o JavaScript? – Brad

+0

A 100 m, puede (a) asumir que la tierra es plana en esa escala, y usar fórmulas bastante simples que varias personas ya han dado o (b) preocuparse por la altura, en cuyo caso necesita una base de datos GIS. – derobert

Respuesta

3

Dada entrada es _LATITUDE, _LONGITUDE y _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 
Cuestiones relacionadas