我必须每帧在地图上绘制很多东西(因为墨卡托投影,地图的任何移动都需要重新计算坐标。)
在地图中,api v1 Projection.toPixels(GeoPoint arg0, Point arg1)
非常快,因为它没有为每次调用创建一个新的Point对象,并且通常更快。
在地图中,api v2 Projection.toScreenLocation(LatLng location)
为每次调用返回一个新的Point对象,导致大量的GC延迟(每隔一秒100毫秒),并且不知怎的,它比v1版本慢大约10倍。
现在我的帧速率低于10 fps所以我需要改变一些东西。我可以在Tiles上绘制东西,但由于我必须绘制等等,这会产生大量开销。
最好是一些替代或手动计算,但我不知道如何替换谷歌Projection
,我不能查看来源,因为地图不公开。
这个问题Google Maps v2 Projection.toScreenLocation(...) extremely slow的唯一答案并不好,因为我绘制的内容会在运行时重新计算。