Calcule la distancia dada 2 puntos, latitud y longitud

Posible duplicado:
Configuración de la tabla de latitud y longitud de MySQL

Sé que esta pregunta probablemente se ha hecho muchas veces, he investigado mucho y necesito ayuda con algo específico.

Digamos que tengo un formulario y el usuario ingresa la longitud y la latitud, y tengo una base de datos que contiene tablas que contienen longitudes y latitudes, ¿cómo buscaría un punto o puntos en esa tabla que estén dentro de un radio de 15 millas?

Puede usar la fórmula que calcula las distancias entre dos puntos. Por ejemplo:

function get_distance($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'Mi') { $theta = $longitude1 - $longitude2; $distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta))); $distance = acos($distance); $distance = rad2deg($distance); $distance = $distance * 60 * 1.1515; switch($unit) { case 'Mi': break; case 'Km' : $distance = $distance * 1.609344; } return (round($distance,2)); } 

También puedes hacer algo como:

 $query = "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 ) as distance FROM `MyTable` HAVING distance >= ".$distance."; 

Si tiene Lat / Lon de dos puntos, puede obtener delta Lat y delta Lon y convertir esto a una distancia a lo largo de la latitud y una distancia a lo largo de la longitud, y usar el teorema de Pitágoras.

¿Has mirado páginas como http://www.movable-type.co.uk/scripts/latlong.html ? Esto tiene varias formas de calcular la distancia. A medida que avanza en su lista de puntos, usa la fórmula para calcular la distancia desde cada punto hasta el punto de interés y solo conserva aquellos que satisfacen R <15 millas.