1

所以我有一个应用程序可以在 Open Steen 地图上绘制线、折线、圆等。我保留了一个图纸列表,当地图无效时,我通过列表重绘 Overlay 的 onDraw 方法中的每个项目进行迭代。这工作正常,直到我的绘图数达到 300+。然后出现了一些严重的 UI 延迟。

我正在寻找一种有效的方法来做到这一点?

我已经在“板”绘图应用程序上完成了位图缓存绘图。虽然这不适用于这种情况,因为背景中的投影可以改变,因此绘图必须移动。

4

1 回答 1

2

我正在保存 GeoPoints,然后在每次重绘期间对“MapView Point”进行大量转换。原来投影有一个“中间点”,可以存储并轻松投影到“地图视图点”。所以繁重的计算部分只做了一次。

脚步

  • 使用 (fromPixels) 将运动事件 (x,y) 移动到 GeoPoint
  • GeoPoint 使用 (toMapPixelsProjected) 到中间值
  • 缓存绘图显示的中间值
  • OnDraw -> 使用 (toMapPixelsTranslated) 到屏幕坐标的中间值
于 2011-10-03T17:50:12.673 回答