我在CakePHP中構建了一個列出業務的應用程序。大約有2000個條目,每個業務的緯度和經度座標都在數據庫中。
我現在正在努力解決搜索功能。查找給定地址的最近位置
將會有一個輸入框,用戶可以把一個街道地址,城市,或郵政編碼,然後我想它返回11家最接近企業從數據庫中找到。
我該怎麼做呢?
我在CakePHP中構建了一個列出業務的應用程序。大約有2000個條目,每個業務的緯度和經度座標都在數據庫中。
我現在正在努力解決搜索功能。查找給定地址的最近位置
將會有一個輸入框,用戶可以把一個街道地址,城市,或郵政編碼,然後我想它返回11家最接近企業從數據庫中找到。
我該怎麼做呢?
我用Yahoo Geo Planet API識別對應於用戶輸入的搜索詞的地方。這通常匹配多個地方,所以你必須把它們呈現給用戶,讓他們選擇正確的一個。然後,一旦你知道了正確的地方,並且它是雅虎API提供的經濟多頭,你可以使用haversine formula來獲得最接近用戶位置的業務。在this question的答案中有一個很好的例子。
這真的很有幫助,更接近我所尋找的,謝謝! – xtine 2010-04-29 22:38:44
我想通過創建圍繞該點的方形接近這一點,獲得分數是可以自主安排一個整體的事情,因爲你需要一個郵政編碼數據庫,或API,它往往會花錢。無論是購買數據庫還是每次查詢。
城市或類似這樣它至少,你很可能,不知道從GMaps返回長LAT該城市。
然後我會嘗試並獲得該點周圍4個邊角longlat COORDS。然後我可以在數據庫中搜索這些值之間的值。
無論哪種方式,這是一個棘手的事情我會說,工廠的問題,但!有興趣看到人們的建議。
*(相關)* http://stackoverflow.com/questions/838344/algorithm-for-finding-nearby-points – Gordon 2010-04-29 10:12:38
(相關)http://www.artfulsoftware.com/infotree/queries.php?&bw = 1680#109 – 2010-04-29 20:53:55