Kon*_*nko 3 maps android overlay
我对Android地图draw()中的Overlay类方法有疑问.
当我移动地图时,方法draw()会被调用几次(从4到13).对我来说这是一个问题,因为这种方法必须用70000+点重新绘制我的路线,这是很多资源.
我找不到这个问题的描述,但是当我使用任何来源的代码示例时,我遇到了同样的问题.
这是正常的行为.当您移动地图时,您希望它能够平滑移动并且能够在较小的移动步骤中滑动任何地图移动.
为了保持一致,draw()每个小步骤移动都会调用覆盖上的方法,因此您可以重新定位覆盖项以跟随每个步骤.
您可以使用以下方法改进它:
改进1
对于每个小步骤,都会onDraw被调用两次.一个shadow参数等于true和一等于false.如果你没有绘制阴影,你可以忽略其中一个调用,因此将开销减少2,使用以下作为第一行onDraw():
if(shadow) return;
Run Code Online (Sandbox Code Playgroud)
改进2
优化您的路线方式.如果您正在使用,canvas.drawLine()您可以通过使用来明确改善它canvas.drawPath().您只需使用路径创建一个路径(对于特定的缩放级别),并且移动地图时只需偏移路径,而无需重新调整路径.
改进3
您甚至可以进一步优化路径,只添加距前一个像素的距离大于特定值(即2个像素)的点,从而减少路径中的点总数,而不会出现任何明显的质量损失.
我正在使用上面几千点(aprox 20.000)路线的方法,并且路线在中程设备中平稳移动.
如果您需要以上任何一点,请告知我们.
祝好运.
| 归档时间: |
|
| 查看次数: |
1460 次 |
| 最近记录: |