如何在鼠标拖动选择的区域内获取标记?

时间:2011-05-08 12:30:29

标签: google-maps selection google-maps-markers google-maps-api-2

简介
我想找到位于通过在地图上拖动鼠标而创建的矩形区域内的所有标记。这个功能是否受到任何jQuery插件或其他东西的支持?如果没有,我想在我的项目中实现这一点。我认为这很酷。

详情
我正在使用Google Maps v2,因为我想在我的项目中支持IE 6。

我是地图中的初学者,并浏览了Developer's guide section以及一些基本演示和其他SO问题。

到目前为止,这是我的想法 -

摘要
以下是我的问题 -

  • 如何在地图上显示矩形选区? (通常呈浅灰色,外观透明)

  • 如何获取点击点的纬度/经度(纬度/经度),然后对其进行扩展以获得选择起点和终点。

我对jQuery很有经验,如果有一些很好的jQuery插件解决方案,请告诉我。我看到了10 jQuery Plugins for Easier Google Map Installation的这个列表,但不确定这些是否有助于我满足我的要求。

当我有标记列表时,我想在单独的显示部分中填充一些相关信息,这样每次用户选择一些标记时,相应的信息都会显示在显示部分中。那部分应该更容易。

由于

1 个答案:

答案 0 :(得分:4)

您可以查看KeyDragZoom下的Google Maps API Demo Gallery示例,以获得矩形选择功能。您可以找到文档here

对于第二个问题,您可以使用GLatLngBounds类及其containsLatLng(latlng:GLatLng)函数。通过将GLatLngBounds对象设置为矩形的边界,您可以使用containsLatLng函数测试您的标记。

如果您决定使用KeyDragZoom,则向dragend添加getDragZoomObject侦听器将为您提供一个GLatLngBounds对象,您可以使用该对象使用containsLatLng函数来测试您的标记。< / p>

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