許多基於位置的服務都提供了用於查找給定緯度經度對周圍的地點/場所/地點的API。我正在研究如何在整個城市中搜索這些地方。地理網格搜索算法
我可以通過從Google地圖地理編碼器中獲取邊界來構建城市的網格,然後遞增緯度/經度以放置點以形成網格。我已經prototyped this grid(點擊填充網格按鈕查看所有的要點)來可視化這個想法。
// gather a collection of lat/long pairs that represents a grid of the city
var latIncrement = .04;
var lngIncrement = .04;
var newLat = nw.lat();
while(newLat >= sw.lat()) {
var newLng = nw.lng();
while(newLng <= ne.lng()) {
// western and northern border as well as grid infill
addMarker(new google.maps.LatLng(newLat, newLng));
newLng += lngIncrement;
}
// eastern border
addMarker(new google.maps.LatLng(newLat, ne.lng()));
newLat -= latIncrement;
}
// southern border
var newLng = sw.lng();
while(newLng <= se.lng()) {
addMarker(new google.maps.LatLng(sw.lat(), newLng));
newLng += lngIncrement;
}
addMarker(se);
我可以採取所有這些要點,並針對LBS API運行搜索。
我的問題是,有更多的科學方法/算法來建立這個網格?我想了解更多關於他們的信息。我只是任意增加經緯度,直到我到達電網的邊界。城市的密度會隨着城市和城市的不同而變化,所以有時增量會過小,有時也會過大。我正在尋找關於如何調整這個更好一點的想法?
我邊框從API結果我一直在尋找foursquare,twitter,gowalla和yelp API。半徑(範圍)是一個常見參數,但問題變成了返回結果的數量(它們將搜索限制爲少數),所以我無法通過單個搜索來獲取城市中的所有地點。好主意,我很欣賞答案! – RyanW 2010-07-01 17:19:28
增加了另一個建議=) – 2010-07-01 19:02:28
太好了,這給了我另一種解決方法。我喜歡它,因爲它從中心擴散開來,並不像浪費。通過網格搜索,許多搜索將超出城市範圍。感謝您對此進行了解釋。 – RyanW 2010-07-02 00:26:20