我需要在地图上绘制(Google Map android api v2)很多正方形(1000 +)和几个圆圈。
在android api V1下可以做到这一点但是使用新的api很难画出更多的400个方格(在它太慢之后)。
所以我不知道如何解决这个问题。 可以使用一个谷歌地图和一个textureView吗? (用于在opengl中绘制我的方块)
答案 0 :(得分:1)
我有一个包含1000个多边形和35000个lat / lng对的测试文件,并且能够在Nexus 10上大约4秒钟从文件加载到Google Maps V2地图。我还有一个测试文件12000个多边形,48000个lat / lng对,在大约20秒内加载。但支持大于此的数据集似乎没有目的,因为对于这么多对象,地图滚动相当慢。 Nexus 10是最快的Android设备之一。
我给你这些数字,让你知道你可以提取的性能。我会说Maps V2一般比我在Maps V1上做得更快,虽然我的技能得到了进一步的发展,我花了更多时间进行优化,而且自从我使用Maps V1以来设备变得更快。
我所做的大多数优化实际上都涉及到地图本身以外的其他内容,因此您可能不希望跳到地图是问题的假设。例如,我曾经从SQLite加载数据,并且在表上没有适当的索引。修复加速约50%。然后我改变了我的应用程序,直接从形状文件而不是数据库加载,这有助于一些(但主要是我避免导入到数据库的缓慢过程)。
所以最后我给你的建议是淘汰System.getCurrentMillis()
(写入LogCat),看看实际的性能瓶颈在哪里。 1000平方应该在Maps V2上具有OK性能,尽管它可能足够慢以保证加载进度指示器。