Für mein aktuelles Projekt muss meine Datenbank den Abstand zwischen zwei GPS-Koordinaten berechnen. Dies Funktioniert ganz einfach mit meiner folgenden Funktion GPS_DISTANCE:
DELIMITER |; CREATE FUNCTION GPS_DISTANCE(lat1 DOUBLE, long1 DOUBLE, lat2 DOUBLE, long2 DOUBLE) RETURNS DOUBLE DETERMINISTIC BEGIN DECLARE dist DOUBLE; SET dist = ACOS(SIN(RADIANS(lat1)) * SIN(RADIANS(lat2)) + COS(RADIANS(lat1)) * COS(RADIANS(lat2)) * COS(RADIANS(long2)-RADIANS(long1))) * 6371 * 1000; RETURN dist; END|
Die Parameter sind jeweils die GPS-Länge und die GPS-Breite (in Grad). Der Rückgabewert ist der Abstand in Metern.