【问题标题】:Android GoogleMap: how to move a marker and the camera synchronously?Android GoogleMap:如何同步移动标记和相机?
【发布时间】:2015-02-12 12:39:52
【问题描述】:

我在 GoogleMap 和相机上同时移动标记时遇到问题。

我在地图上有一个标记,如果用户不滚动地图,它通常位于地图的中心。标记代表当前位置,由外部源提供。

当位置发生变化时,我想将标记移动到新的位置,同时相机也随之移动,所以总是以地图为中心(效果看起来只有地图在移动) .

我是通过如下代码来实现的,

LatLng latlng = new LatLng(rawData.latitude, rawData.longitude);
mMarker.setPosition(latlng);  // move the marker

CameraUpdate update = CameraUpdateFactory.newLatLngZoom(latlng, mCurrZoom);
mMap.moveCamera(update);  // move the camera

但是,有时会有些闪烁。看起来地图和标记是在不同的线程中渲染的,所以有时标记会在相机之前移动,有时反之亦然。如果先移动marker,它会被绘制在一个不在中心的地方,然后在相机移动后不久,marker又会在中心再次绘制,从而导致闪烁。

如何让marker和相机同步移动?

谢谢。

【问题讨论】:

  • 您找到解决方案了吗?我也有同样的问题。

标签: android google-maps camera marker


【解决方案1】:

试试这个:

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(
        new LatLng(yourLatitude, yourLongitude), zommvalue));

【讨论】:

  • 感谢您的建议。这避免了闪烁,但引入了不受欢迎的动画。我想保持标记静态,除非用户滚动或缩放地图。我尝试使用 ImageView 替换标记,并在需要时更新图像视图的位置。但是,滚动地图时非常滞后。无论如何,除非我找到更好的解决方案,否则我会使用动画来避免闪烁。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-07
  • 2015-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多