项目原先是用V1做的,现在在做一个升级,要把V1的地图改为V2.在这当中发现了一个问题:V2中的画线功能性能非常差,超过700个点的连续线,屏幕就卡的拖不动了。
在V1中,画点画线都是通过Overlay实现的,而在Overlay中只需重写draw(Canvas canvas, MapView mapView, boolean shadow)方法,用这里的canvas对象进行画图。所以实际上,V1的画图时用canvas来实现的,这里的canvas对象不需要自己获取。但现在在V2中,画图画线是独立的了,直接通过实例化Marker对象和Polyline对象添加到地图中,没有canvas对象了。我希望自己获取canvas对象,利用canvas对象的画线方法来解决连续点过多导致太卡的问题,有没有办法?
刚想了下,如果V2不直接提供canvas的画,那自定义画图应该没法实现了,毕竟还要涉及到坐标移动和放大缩小。只是难以理解的是,V2中画Marker的性能比V1中要好很多,但画线的性能居然差了这么多,难道是因为从MapActivity转为FragmentActivty的关系吗
昨天去高德论坛反应了这个问题,发布新版本解决这个问题了。