如何检查Google地图视口中是否有任何标记?

时间:2010-06-01 11:54:14

标签: google-maps google-maps-markers

检查视口中是否有任何标记的最有效方法是什么?

完美的解决方案不需要逐个检查所有标记,如果它包含在视口中。

2 个答案:

答案 0 :(得分:5)

我想出的最佳解决方案是

  • 在应用程序启动时,创建一个参考标记的数组 - 按1坐标排序,即纬度
  • 使用GMap2.getBounds()获得视口的界限(如paullb建议的那样)
  • 获取视口边界的低纬度并在数组中查找(使用二进制搜索最快实现)
  • 检查每个后续标记是否适合视口(最多为标记的纬度< =视口的高纬度)。

答案 1 :(得分:1)

使用GMap2.getBounds()查找边界框。使用GLatLngBounds.containsLatLng()检查每个标记是否可见。

如果每个群集的值以易于访问的方式存储,您可以尝试使用与标记群集相同的方法。 (没看过自己)