5

簡而言之
我想找到所有的標記,位於通過拖動鼠標在地圖上創建的矩形區域內。此功能是否支持任何jQuery插件或其他功能?如果沒有,我想在我的項目中實現這一點。我認爲這將很酷。如何通過鼠標拖動選擇區域內的標記?

詳細信息
我使用的是Google Maps v2,因爲我想在我的項目中支持IE 6。

我是地圖的初學者,經歷了Developer's guide section以及一些基本的演示和其他SO問題。

這裏是我的想法至今 -

摘要
這裏是我的問題再次 -

  • 如何顯示在地圖上一個矩形選擇區域? (一般爲灰白色,外觀透明)

  • 如何獲得點擊點的lat/lang(緯度/經度),然後擴展它以獲得選擇開始點和結束點的緯度/經度。

我對jQuery很有經驗,如果有一些很好的jQuery插件解決方案,請讓我知道。我看到了這個10 jQuery Plugins for Easier Google Map Installation的列表,但不確定這些列表是否能幫助我滿足我的要求。

當我有標記列表時,我想在單獨的顯示部分中填充一些相關信息,以便每次用戶選擇某些標記時,相應的信息都會顯示在顯示部分中。這部分應該更容易。

感謝

回答

4

您可以檢查Google Maps API Demo GalleryKeyDragZoom例如實現矩形選擇功能。你可以找到文檔here

對於第二個問題,你可以使用GLatLngBounds類及其containsLatLng(latlng:GLatLng)功能。通過將您的GLatLngBounds對象設置爲矩形的邊界,您可以使用containsLatLng函數對它進行測試。

如果你決定使用KeyDragZoom,增加了dragend監聽器getDragZoomObject會給你一個GLatLngBounds對象,您可以使用針對與containsLatLng功能測試你的標記。

map.enableKeyDragZoom(); 
var dz = map.getDragZoomObject(); 
GEvent.addListener(dz, 'dragend', function (bnds) { 
    // test your markers against bnds here 
}); 
+0

+1看起來像這正是我想要的...... – 2011-05-10 09:36:51

+0

是的,可以解決問題。對於上述dragend事件中的檢查部分,此解決方案http://stackoverflow.com/questions/2949486/how-to-check-if-there-are-any-markers-within-a-google-maps-viewport/ 3298437#3298437可以跟着 – 2011-05-10 21:03:59