2011-04-05 25 views
3

我工作在PHP中的約會應用: 我的應用程序有一個人的位置的一定距離內搜索合適的用戶配置文件的搜索頁面(需指定沒有英里/。公里搜索)。找到我的城市的X英里內的人

我理解實現這個的邏輯(參考:Get nearest places on Google Maps, using MySQL spatial data),只是不知道從哪裏可以獲得存儲來自世界各地的每個位置的地理位置的數據庫。這是免費的嗎?如果可以的話,也會有興趣查看高級版本。

也關注查詢搜索速度。在這樣龐大的數據庫中搜索會花費一些開銷,那麼解決這個問題的最好方法是什麼?

任何建議高度讚賞。

+1

你需要有你要搜索的數據。在您的應用中的含義,您的用戶配置文件需要更新地理數據。 – Khez 2011-04-05 13:22:06

+0

看到問題的答案2283689和98449.他們在哪裏可以找到地理編碼信息。需要注意的是免費的商業版本(谷歌,雅虎,微軟)都具有一些字符串在其許可協議,如必須配合使用地圖顯示和不能存儲用於其他目的的結果。這可能仍然可以滿足您的需求(我認爲其中的一些可以將數據存儲在地圖中使用,但請確認特定的許可條款)。您需要爲每個條目存儲經緯度,而不是每次重新查看。 – ViennaMike 2011-04-05 13:47:04

回答

1

聽起來很簡單...你問用戶他的地址,然後

最好的問候, Seniel要求谷歌地圖API的經度和緯度這樣

http://maps.googleapis.com/maps/api/geocode/json?address=San+Stefano+1+Sofia&sensor=false 

並把它們寫在數據庫中。

當週圍的人

編輯用戶searchest(不會是一個圓,但它會做的工作):

SELECT * FROM `users` AS u 
WHERE u.lat IS BETWEEN {$my_lat-100} AND {$my_lat+100} 
AND u.alt IS BETWEEN {$my_alt-100} AND {$my_lat+100} 

像你提到的帖子。

+0

繼續使用該選擇查詢... – fazo 2011-04-05 13:50:54

相關問題