我需要在地图(Google Map android api v2)上绘制很多正方形(1000 +)和几个圆圈。
在 android api V1 下可以做到这一点,但是使用新的 api 很难绘制更多的 400 个正方形(在它太慢之后)。
所以我不知道如何解决这个问题。可以使用一个谷歌地图和一个 textureView 吗?(用于在 opengl 中绘制我的正方形)
我需要在地图(Google Map android api v2)上绘制很多正方形(1000 +)和几个圆圈。
在 android api V1 下可以做到这一点,但是使用新的 api 很难绘制更多的 400 个正方形(在它太慢之后)。
所以我不知道如何解决这个问题。可以使用一个谷歌地图和一个 textureView 吗?(用于在 opengl 中绘制我的正方形)
我有一个包含 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 上应该有不错的性能,尽管它可能慢到足以保证加载进度指示器。