在地图上显示大量(约50k及以上)标记量(带有聚类)

时间:2014-02-28 21:24:58

标签: java android google-maps hierarchical-clustering quadtree

我想以类似于this example的方式在地图上显示标记,但我有更多标记,我想使用“原生”Google地图。

到目前为止,我发现只有一个看起来能够执行此操作的库:android-maps-utils。但经过测试后发现,当有大约35000个标记时,它会出现严重的性能问题。 (甚至java.lang.OutOfMemoryError)。所以我想知道还有哪些其他选择。从头开始滚动我自己的解决方案可能是我想做的最后一件事。

我想,这个库根本无法用于非常大的标记计数,因为它将它们全部保存在RAM中。例如,在从文件中读取当前不可见标记时,最好过滤掉它们,并在每次摄像机移动后进行。 (通过double从二进制文件中读取35k对DataInputStream非常快,所以现在这不是什么大问题。我想这可以进一步加速。)另外,我可以准备为不同文件中的不同缩放级别预处理的聚类集,因为标记不会经常更改 但是从头开始实现这一点(特别是 - 正确的集群)看起来很多工作。也许我错过了已经做过的事情?

更新

为此,我尝试使用android-maps-extensions。它工作得更好,但它也将所有标记保存在内存中,当显示大约35k标记时,它会在完全缩小时导致约20MB内存消耗,而在放大时会导致~24MB。另外~7MB会出现崩溃... 所以我认为我需要在RAM中保留尽可能少的数据。有没有像这样工作的图书馆?

0 个答案:

没有答案