繁体   English   中英

同步移动或动画地图和标记

[英]Move or animate map and marker synchronously

我有一堆LatLng的清单。 我需要为一个标记从一个位置到另一个位置设置动画,直到列表结束(终点)。

我使用的是内插(喜欢的事, 从@CommonsWare执行在这里输入链接的描述 ),以从其他位置动画标记。 同时,我还在创建带有生成点的折线。

有了以上,我有一个可行的解决方案。 如果将地图设置为最大缩放( 21f ),并且即使插值器以大于16ms的速度生成结果,则在新位置添加折线和标记也不会影响UI,也就是说,就我的眼睛而言看,这非常顺利。 当然,在某些时候,标记从屏幕上消失了,我必须用手指移动地图以跟踪标记和折线的运动。

现在,我希望标记始终保持在屏幕中心,因此地图必须移动。

我尝试使用map.moveCameramap.animateCamera但是UI有时会变慢。 我可以看到标记没有像以前那样平滑。 这是使用map.moveCamera原因,因为使用map.animateCamera结果甚至更糟。

ObjectAnimator每次插值点时调用的函数中,我正在这样做:

public void onNewPosition(LatLng newPosition){
    marker.setPostion(newPosition);
    map.moveCamera(marker.getPosition())
}

如果我将以上内容包装在if条件中,以检查从上一次调用到此调用所经过的时间是否大于16ms ,则我的UI仍然很慢。

我在地图运动中发现了问题。 不知道UI是否无法同时渲染地图移动和标记移动是否是问题,因此,似乎有时标记移动而地图不移动,而其他时候则相反(不要不知道我是否正确)

关于如何同时移动地图和标记或满足我需求的其他解决方案的任何想法,即移动标记和地图,以便用户感知到标记正在移动但停留在标记的中心屏幕在下面的地图执行所需的移动时?

谢谢。

您是否可以将地图嵌入两个滚动对象:Horizo​​ntalScrollView和VerticalScrollView,以便可以通过垂直滚动和水平滚动来近似移动? 对包含旅行终点的地图视图使用视口。 当焦点位置更改时滚动地图视图,而不是调用moveCamera。 想法是将重绘开销转移到图形引擎(应该非常擅长)而不是map API。 [我使用了类似的视图架构来滚动火车时间表,并且效果很好。]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM