4

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

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

4

2 回答 2

5

我想出的最佳解决方案是

  • 在应用程序启动时,参考标记创建一个数组 - 按 1 个坐标排序,即纬度
  • 获取视口的边界GMap2.getBounds()(如 paullb 建议的那样)
  • 取较低纬度的视口边界并在数组中查找它(使用二分搜索最快实现)
  • 检查每个后续标记是否适合视口(直到标记的纬度 <= 视口的上纬度)。
于 2010-07-21T10:55:53.733 回答
1

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

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

于 2010-06-01T16:07:11.653 回答