如何在两个Google地图位置之间进行平滑的动画移动?

pel*_*lms 25 google-maps

在Google地图中从一个标记点​​击另一个标记时,如果两个标记都位于初始地图​​视图中,则地图屏幕会平滑地动画移动,但如果其中一个标记在屏幕外,则会跳转.

我正在尝试设置一个地图,该地图在主地图区域内有多个位置,但有一个"屏幕外".我有一个路标图标指向初始地图区域内较远的位置,我想在点击时平滑地滚动到屏幕外位置(以便更好地了解它的相对位置).我在Maps API中找不到任何可以让我这样做的东西.

我可以缩小,移动然后再放大,但这看起来有点刺耳.我错过了API中的内容,还是有人有任何建议?

Rob*_*nto 29

不幸的是,我不认为这是可能的(没有谷歌的变化).从V3 API参考panTo:

将地图中心更改为给定的LatLng.如果更改小于地图的宽度和高度,则过渡将平滑地动画.

这意味着如果该变化不小于地图的尺寸​​,则过渡将不会平滑地动画.其他泛方法类似.

您可以尝试多个步骤,但这有点像黑客,我怀疑结果会很差.

对不起,这不是很有帮助(我有同样的问题).

  • 是的,使用多个步骤或编写自己的平底锅的结果很差.容易出错的是你要么最终平移比提取瓷砖更快,这会让你毫无意义地在空白灰色上进行平移,或者你必须比panTo()在范围内做得慢得多,这意味着它当有一个很长的距离被淘汰时,需要一个令人无法接受的长时间.注意:对.panTo()的多次调用不会排队.第二个调用中断当前正在进行的任何平移,并取代它. (4认同)

小智 12

对我来说这种方法有效,但我使用的是Google Maps API v2.

LatLng latLng = new LatLng(lat,lng);
map.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, ZOOM_FACTOR));
Run Code Online (Sandbox Code Playgroud)

这会将相机从当前位置设置为新位置.