【问题标题】:Cache whats being draw on MapView in Android在 Android 的 MapView 上缓存正在绘制的内容
【发布时间】:2011-04-15 14:07:00
【问题描述】:

我正在为我的大学校园开发一个应用程序,该应用程序在 MapView 中显示校园;然后使用 geopoints 在 mapView 上使用 draw 方法绘制校园建筑物的轮廓,该类的范围为Overlay。大约有 50-60 个建筑物被绘制,导致地图非常滞后,因为绘制方法不断地被一遍又一遍地绘制。

我研究了我的问题,发现有些人提到在画布上绘制建筑物,但我没有找到关于如何实现这一点的好例子或信息。谁能指出我如何减少地图滞后的正确方向?该地图看起来非常漂亮,但滞后只是扼杀了它的用处。

谢谢!

【问题讨论】:

  • 每次移动地图时都会重新绘制您所指的 50-60 建筑物?
  • 我相信;当您更改缩放级别时也是如此。
  • 您可能想在此处查看源代码示例:stackoverflow.com/questions/2176397/…

标签: android overlay android-mapview draw lag


【解决方案1】:

如果您将所有点组织成多边形,您可以在画布上绘制多边形,然后在 Overlay 上绘制它。我认为会更快。

您还可以随时计算需要为下一个位置重新绘制建筑物的哪个部分,然后只需更改画布的那个部分。

如果您从较早的位置移动 (X,Y) 像素,请将现有画布移动到新位置,然后仅绘制出现在地图上的新事物。

这当然不是最佳解决方案,因为这种缓存不适用于缩放。

希望它以某种方式有所帮助! JQCorreia

【讨论】:

  • 我已经实现了它,这样当地图放大很多并且屏幕上只有几座建筑物时;它只绘制那些建筑物。这极大地减少了延迟,但是如果您缩小并查看整个校园,则延迟仍然存在。我还没有尝试在画布上画画;但是一旦我可以让它工作,我会看看它是否有帮助。
  • 成功了吗?现在我很好奇,因为我有一个类似的实现要做并且非常喜欢这些信息。提前致谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多