Mam bazę danych wypełnioną obecnie około 10 tys. Wierszy. Wszystkie mają długość/szerokość geograficzną opartą na środku kodu pocztowego. Znalazłem zapytanie, które próbuję teraz rozwinąć, ale w sumie działa dobrze. Jednak w moim przykładzie poniżej próbuję znaleźć rzeczy w promieniu 25 mil, co w sumie wydaje się działać w przeważającej części. Większość moich wyników ustępuje w ramach kryterium 25 mil, jednak otrzymuję garstkę, która jest daleko od wszystkiego od 86 mil do 800 mil od znaku.MySQL - długość i szerokość geograficzna zapytania dla innych wierszy w promieniu x mil
Przykład: To mój ośrodek lat/lon: +37,2790669, -121,874722 = San Jose, Kalifornia Im osiąganie rezultatów, takich jak: 33.016928, -116,846046 = San Diego, Kalifornia, która wynosi około 355 mil od San Jose.
mój obecny kwerenda wygląda następująco:
SELECT *,(((acos(sin(($lat*pi()/180)) * sin((`latitude`*pi()/180))+cos(($lat*pi()/180))
* cos((`latitude`*pi()/180)) * cos((($lon - `longitude`)*pi()/180))))*180/pi())*60*1.1515)
AS `distance` FROM `geo_locations` HAVING `distance` <= 25 ORDER BY `distance` ASC"
Cieszę się, że pracowałeś dla ciebie – Gordnfreeman
Gordnfreeman, możesz mi powiedzieć, co oznacza "<25"? Czy to jest 25 mil lub Kilometrów? I mam dla ciebie inne pytanie, jeśli nie miałbyś nic przeciwko szybkiemu czatowi ze mną? – dcolumbus
Czy jest jakiś sposób, aby z łatwością przekonwertować to na KM? Zakładam, że ma to coś wspólnego z 3935 na początku zapytania, ale nie do końca wiem, co robi. – joshhendo