我想從地圖反向查找位置。說,我有我的數據庫中的不同位置與他們的座標和細節。谷歌地圖或Mapquest API來跟蹤可見區域
現在,無論何時放大/縮小或拖動地圖(在Mapquest中),所有條目都應顯示在地圖可見區域的下拉列表中。它應該根據地圖縮放級別和位置更新列表。
有沒有辦法做到這一點。我對谷歌地圖也很好。
這是我想要實現的鏈接。 http://oobgolf.com/courses/finder/
我想從地圖反向查找位置。說,我有我的數據庫中的不同位置與他們的座標和細節。谷歌地圖或Mapquest API來跟蹤可見區域
現在,無論何時放大/縮小或拖動地圖(在Mapquest中),所有條目都應顯示在地圖可見區域的下拉列表中。它應該根據地圖縮放級別和位置更新列表。
有沒有辦法做到這一點。我對谷歌地圖也很好。
這是我想要實現的鏈接。 http://oobgolf.com/courses/finder/
...基本商業邏輯是這樣的:
您需要從地圖對象獲得的邊界,然後通過這些作爲通過AJAX參數的SQL查詢其獲取的記錄,如minLat/maxLat & minLng/maxLng ...這些進入WHERE條件。這將從你的地理數據中「剪出一個矩形」。您可以將這些值調整5-10% - 以便非常接近邊界的點不會被繪製到地圖上(這只是一個整體修正)。
只是發現了一些樣品JS代碼我的驅動器的谷歌地圖API(它使用jQuery的)上:
function loadViewport() {
var b = map.getBounds();
$.minY = b.getNorthEast().lng();
$.maxY = b.getSouthWest().lng();
$.minX = b.getSouthWest().lat();
$.maxX = b.getNorthEast().lat();
$.url = "http://www.somehost.com/data.php?mode=viewport&minX="+$.minX+"&maxX="+$.maxX+"&minY="+$.minY+"&maxY="+$.maxY;
$.ajax({type:"GET",url:$.url,dataType:"json",success: parseJSON});
}
填充到上市向左需要通過功能parseJSON進行()...
的WHERE的SQL的條件是類似的東西:
WHERE
(`location`.`latitude` BETWEEN ".(float)$minX." AND ".(float)$maxX.")
AND
(`location`.`longitude` BETWEEN ".(float)$maxY." AND ".(float)$minY.")
當然在表中的列必須是數據類型float的 - 否則這不會對工作當然。
正如你所看到的,我從字符串鑄造浮動 - 爲了使比較...
希望這有助於爲MapQuest的代碼可能會有所不同 - 但邏輯應該是完全一樣。
這個邏輯作品爲MapQuest的API的爲好。您需要將地圖的當前範圍傳遞到查詢中,以便您可以根據地圖的範圍查詢數據庫。然後,查詢結果將填充到您的下拉菜單中,因此當前在地圖上顯示的所有POI都將在下拉菜單中顯示相應的項目。
如果您使用的是MapQuest JavaScript API,請查看MQA.TileMap.getBounds方法,該方法返回地圖範圍的當前邊界框。我發現MapQuest Developer Network網站上的論壇在我遇到問題時非常有幫助,所以如果您需要幫助或需要進一步澄清,請隨時發佈問題或代碼示例。這裏是鏈接:http://developer.mapquest.com/web/products/forums/
在那裏放置標記以查看只使用了四個角中的兩個。 – 2016-05-13 23:41:38