Autor Zpráva
stoker
Profil
Zdravim,

mam databazi ruznych mist identifikovanych souradnicemi GPS.
Potreboval bych zprovoznit funkci, ktera dokaze vybrat z teto databaze mista napr. 10 km od urcitych souradnic.
Vsude nalezam pouze vzorce pro vypocet vzdalenosti mezi souradnicemi, ale to je pro toto nepouzitelne.

Prosim o napovedu.

diky
Alphard
Profil
stoker:
Vsude nalezam pouze vzorce pro vypocet vzdalenosti mezi souradnicemi, ale to je pro toto nepouzitelne.
Proč? Spočítáte vzdálenost a vyfiltrujete takovou, kterou potřebujete. Použijte funkci na úrovni SQL.

DROP FUNCTION IF EXISTS `gps_distance`;;
CREATE FUNCTION `gps_distance`(lat1 FLOAT,lng1 FLOAT,lat2 FLOAT,lng2 FLOAT) RETURNS float
    READS SQL DATA
    DETERMINISTIC
BEGIN

    SET lat1 = lat1 * pi() / 180;
    SET lng1 = lng1 * pi() / 180;
    SET lat2 = lat2 * pi() / 180;
    SET lng2 = lng2 * pi() / 180;

    RETURN acos
    (   cos(lat1)*cos(lng1)*cos(lat2)*cos(lng2)
      + cos(lat1)*sin(lng1)*cos(lat2)*sin(lng2)
      + sin(lat1)*sin(lat2)
    ) * 6372.795;

END;;
Já teda nejsem původním autorem, kdysi někde nalazeno.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: