Prezentuję moją klasę do znajdowania współrzędnych dla podanego adresu (PHP)
Mapy Google
Obliczanie odległości między dwoma punktami na mapie
Ostatnio zetknąłem się z problemem obliczenia dystansu między 2 punktami na mapie. Posiadam 2 punkty, dla każdego latitude i longitude (długość i szerokość geograficzna) pobrane z google maps API (jako wartości dziesiętne). Znalazłem kilka skryptów, do php, mysql ale żadna formuła nie działała według mnie jak należy. Znalazłem rozwiązanie do turbo pascala, i przerobiłem je na MySQL
sqrt(pow((lon2 - lon1) * cos(lat1 * pi() / 180),2) + pow(lat2 - lat1,2)) * pi() * 12756.274 / 360
Zwraca długość w kilometrach, za lon1, lon2, lat1, lat2 wstawiamy kolejno wartości
Kolejną sprawą było znalezienie elementów w pobliżu o podanym promieniu (w kilometrach): przykład w php
mysql_query("select * from tabela_z_wspolrzednymi where sqrt(pow((longitude - $lng) * cos($lat * pi() / 180),2) + pow(latitude - $lat,2)) * pi() * 12756.274 / 360 <= $r")
Nie wiem z jaką dokładnością liczy, ale w moim projekcie wszystkie sprawdzane wartości mieściły się w zadanych zakresach
Mój przykład – Wyszukiwarka Aptek -> jeszcze jako wersja rozwojowa, więc mogą pojawić się błędy