Ver Mensaje Individual
  #7 (permalink)  
Antiguo 29/05/2012, 03:29
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Query para agrupar por distancias

Esta función devuelve la distancia en kilómetros entre dos puntos dados, pasados por parámetro (dlatitu y longitud de cada punto):
DELIMITER $$
Código MySQL:
Ver original
  1. CREATE FUNCTION `FN_DISTANCIA`(LAT_P1 FLOAT, LNG_P1 FLOAT, FLOAT, LAT_P2 FLOAT, LNG_P2) RETURNS float
  2.   RETURN ((6378 * 2 * ASIN(SQRT(  POWER(SIN((LAT_P1 - LAT_P2) * PI()/180 / 2), 2) + COS(LAT_P1 * PI()/180) *  COS(LAT_P2 * PI()/180) *  POWER(SIN((LNG_P1 -LNG_P2) * PI()/180 / 2), 2)))));
Esta fórmula, aplicada en la consulta y con la distancia mínima, permite filtrar aquellos puntos que estén dentro del rango de la distancia que busques.

El caso de los campos espaciales requiere algunos conocimientos más. Puedes empezar dandole una mirada a http://dev.mysql.com/doc/refman/5.0/...xtensions.html
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)