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

San*_*ath 5 google-maps selection google-maps-markers google-maps-api-2

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

详细信息
我正在使用Google Maps v2,因为我想在我的项目中支持IE 6.

我是地图的初学者,并通过开发人员指南部分和一些基本演示和其他SO问题.

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

总结
以下是我的问题 -

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

  • 如何获得点击点的纬度/经度(纬度/经度),然后将其扩展以获得选择的起点和终点.

我对jQuery很有经验,如果有一些很好的jQuery插件解决方案,请告诉我.我看到了10个jQuery插件列表,用于更轻松的谷歌地图安装,但不确定是否有任何一个可以帮助我满足我的要求.

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

谢谢

小智 4

您可以查看Google Maps API Demo Gallery下的KeyDragZoom 示例来实现矩形选择功能。您可以在此处找到文档。

对于第二个问题,您可以使用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
});
Run Code Online (Sandbox Code Playgroud)