SlowCycle.de » Geo Distanz – Abstand 2er Geo- Koordinatenpunkte

Geo Distanz – Abstand 2er Geo- Koordinatenpunkte



Um die Ergebnismenge doch noch zu verfeinern (MBR Problem)
bzw. den Abstand der gefundenen Ergebnisse zum Ursprungspunkt anzuzeigen hilft folgende
Funktion:


DROP FUNCTION IF EXISTS GEODISTANCE;

DELIMITER $$

CREATE FUNCTION GEODISTANCE (lat1 DOUBLE, lon1 DOUBLE, lat2 DOUBLE, lon2 DOUBLE) RETURNS DOUBLE UNSIGNED
DETERMINISTIC NO SQL
BEGIN
	DECLARE rlat1, rlat2, rlon1, rlon2 DOUBLE;
	DECLARE EARTH DOUBLE UNSIGNED DEFAULT 6371.0;

	SET rlat1 = RADIANS(lat1),
		rlon1 = RADIANS(lon1),
		rlat2 = RADIANS(lat2),
		rlon2 = RADIANS(lon2);

	RETURN ROUND(COALESCE(ACOS(
		(SIN(rlat2)*SIN(rlat1)) +
		(COS(rlat2)*COS(rlat1)*COS(rlon1-rlon2))
	) * EARTH, 0), 2);

END;

$$
DELIMITER ;

1 Kommentar

  • 1. Car And Driver&hellip schrieb am 10th Juni 2015 um 20:32 :

    Car And Driver…

    Geo Distanz – Abstand 2er Geo- Koordinatenpunkte | SlowCycle.de…

Gib deinen Kommentar ab

XHTML: Du kannst folgende Tags für deinen Kommentar nutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <em> <strong>