【问题标题】:Google Map v2 Marker Animation谷歌地图 v2 标记动画
【发布时间】:2012-12-07 23:40:53
【问题描述】:

有人知道这个动画的实现是如何在谷歌地图 api v2 中实现的吗? Check out this here. 我想知道这是怎么做到的。如果有人对此有任何示例代码,请告诉我。

提前致谢。

【问题讨论】:

  • @GrlsHu。你好..我需要你的帮助
  • 用于动画折线路线 github.com/amalChandran/google-maps-route-animation

标签: android google-maps-api-3 android-maps google-maps-api-2


【解决方案1】:

我找到了一个对我有用的solution

final LatLng target = NEW_LOCATION;

final long duration = 400;
final Handler handler = new Handler();
final long start = SystemClock.uptimeMillis();
Projection proj = map.getProjection();

Point startPoint = proj.toScreenLocation(marker.getPosition());
final LatLng startLatLng = proj.fromScreenLocation(startPoint);

final Interpolator interpolator = new LinearInterpolator();
handler.post(new Runnable() {
    @Override
    public void run() {
        long elapsed = SystemClock.uptimeMillis() - start;
        if (elapsed > duration) {
            elapsed = duration;
        }
        float t = interpolator.getInterpolation((float) elapsed / duration);
        double lng = t * target.longitude + (1 - t) * startLatLng.longitude;
        double lat = t * target.latitude + (1 - t) * startLatLng.latitude;
        marker.setPosition(new LatLng(lat, lng));
        if (t < 1.0) {
            // Post again 10ms later.
            handler.postDelayed(this, 10);
        } else {
            // animation ended
        }
    }
});

【讨论】:

  • 插值器插值器 = new LinearInterpolator();这一行给出错误...“不兼容的类型”
  • 确保你导入:import android.view.animation.Interpolator;导入 android.view.animation.LinearInterpolator;而不是其他插值器。
  • 我发现了一个错误。有必要添加这两行: if (elapsed>duration) elapsed=duration;
【解决方案2】:

欢迎您随时致电setPosition() 更改Marker 的位置。欢迎您使用moveTo()animateTo()GoogleMap 上应用CameraUpdate 对象,随时更改“相机”的位置(即地图的中心和缩放级别)。将这些与光定时循环结合(例如,使用postDelayed())应该可以让您实现类似的动画效果。

【讨论】:

  • 您能否提供一些代码,以便我更好地了解实现。我尝试使用 CameraUpdateFactory.scrollBy 方法为地图设置动画。它甚至可以正常工作。但没有找到任何在地图上的路径上设置动画的方法。
  • @Grishu:“您能否提供一些代码,以便我可以更好地了解实现” - 我没有任何可以处理您的场景的东西。 “但没有找到任何在地图上为路径设置动画的方式”——您必须自己找到“地图上的路径”,使用一些 Web 服务(大概),然后将 Marker 位置更新为各个点沿着那条路。
  • 好的,谢谢你的帮助。
【解决方案3】:

好消息是 Google Map API v2 提供了新的相机控件。 您可以在 Android 开发者团队的 Youtube 频道上直接here查看新功能以及如何使用它们。

它还提供动画、倾斜、方位……但我认为该视频非常详细,并且还讨论了您示例中的应用程序。

玩得开心,完成应用后给我一个链接。

【讨论】:

    猜你喜欢
    • 2014-02-20
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    相关资源
    最近更新 更多