我在使用 Android MapView API 时遇到了一些问题。我从数据库获取 OverlayItems,我想将其显示在 MapView 中。如果我显示 100 个图标,我没有任何问题,但如果它变得更多 - 比如一个城市中有 500 个项目 - 它首先看起来非常糟糕,其次它会减慢很多。不幸的是我的目标是展示其中的 10000 个。我认为一种解决方案是向 ZoomLevels 注册一个监听器以使它们出现/消失,但我找不到该功能。其次,我找不到通过 map 缩放来缩放叠加层的功能。 非常欢迎任何想法
最佳答案
ItemizedOverlay 绘制方法中有一个非常奇怪的行为。当你说:从 (x,y) 到 (x1,y1) 画线时,绘制方法被调用大约 20-30-40 次 - 我不知道为什么。当你画一条线时还可以接受,但是当你画数千条线、图标等等时......那就非常非常糟糕了!要解决此问题,您应该创建一个缓存覆盖。这是捕获第一次绘制的覆盖层,创建对象,然后阻止将来进行相同绘制的绘制。
簇是一个图标后面的十几个图标。例如,如果 map 上有 1000 个标记,在特定的最小缩放级别中,您无法单独看到每个标记 - 它会变成一堆图标和颜色等。您可以放置一个群集标记,而不是使用 100 个逐一非常接近的标记。放大时删除该簇并创建另一个簇...执行此操作,直到标记变得足够远并且您可以看到它们分开。
检查这个:Cluster markers
关于android - 如何在 Android MapView 中显示数千个 OverlayItems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6369696/