Kategorien
MySQL PHP

umkreissuche in mysql mit coordinaten (latitude, longitude)

wenn ihr eine schnelle lösung für eine umkreissuche benötigt, könnt ihr direkt in mysql geocoordinaten + distanzen errechnen.

# :dist = gewünschte entfernung in km (z.b 10)
# :lat = latitude der aktuellen position
# :lon = longitude der aktuellen position

SELECT
    id,
    latitude,
    longitude,
    (
        6371 * acos(
            cos(
                radians( :lat )
            ) * cos(
                radians( latitude )
            ) * cos(
                radians( longitude ) - radians( :lon )
            ) + sin(
                radians( :lat )
            ) * sin(
                radians( latitude )
            )
        )
    ) AS distance

FROM
    points_with_geocoordinates

HAVING
    distance <= :dist

ORDER BY
    distance ASC