with usar una googlemaps google geolocalizacion geocodificar ejemplos datos con php mysql geolocation

una - usar mysql y php con google maps



Calcula los usuarios más cercanos MySQL (2)

Tengo una base de datos llamada users con las columnas latitude y longitude , y quiero calcular los usuarios más cercanos (usuarios en la tabla de users ) que se encuentran dentro de un radio de 50 km a una cierta latitud y longitud proporcionada por $_POST .

¿Puedes decirme cómo podría hacer eso? ¿Hay alguna función matemática que deba usarse o una función en MySQL como latitude_compare() o algo así?


Puedes hacer algo como esto:

SELECT *, (ACOS((SIN(RADIANS(ref_latitude))*SIN(RADIANS(latitude))) + (COS(RADIANS(ref_latitude))*COS(RADIANS( latitude ))*COS(RADIANS( longitude) -RADIANS(ref_longitude)))) * 6371) AS distance FROM table ORDER BY distance ASC

Punto A: ref_latitud ref_longitud

Punto B: latitud longitud

Mis valores Lat / Lon están en grados, como este:

Dresden: 13.721067614881400 / 51.060033646337900


Aquí hay un código que he estado usando, esto está en millas. Selecciona todo lat y lng dentro de un radio dado.

$q = "SELECT * ( 3959 * acos( cos( radians($current_lat) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians($current_lng) ) + sin( radians($current_lat) ) * sin( radians( lat )))) AS distance FROM users HAVING distance < $radius";