23
我有一個數據庫當前填充大約10k行。他們都有一個基於郵編中心的經度/緯度。我發現了一個我現在試圖擴展的查詢,但總的來說,它很好地適用於某一點。然而,在我下面的例子中,我試圖找到25英里範圍內的東西,這在所有方面似乎都起作用。我的大部分成績在25英里的標準範圍內都能達到標準,但是我得到了一小部分標準,從86英里到800英里。mySQL經度和緯度查詢x英里半徑內的其他行
舉例: 這是我中心經/緯度:37.2790669,-121.874722 =加利福尼亞州聖何塞, 即時得到結果,如:33.016928,-116.846046 =聖迭戈,加利福尼亞是從聖何塞約355英里。
我當前查詢的樣子:
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"
很高興爲你工作 – Gordnfreeman
Gordnfreeman,你能告訴我「<25」代表什麼嗎?那是25英里還是公里?如果你不介意與我進行快速聊天,我還有另外一個問題要問你? – dcolumbus
有沒有什麼辦法可以輕鬆將其轉換爲使用KM的?我認爲它在查詢開始時與3935有關,但不太確定它的功能。 – joshhendo