Android - 使用google maps api动态更改标记的位置

我正在编写一个应用程序来跟踪向服务器发出当前坐标(经度和纬度)的设备 . 我正在尝试使用google maps api不断更新 Map 上的标记 . 但是,我在这方面一直很不成功 .

我正在从服务器解析数据,所以我有更新标记所需的坐标 . 但是,如果我执行marker.remove()或marker.setPosition(latilongi),则应用程序仅绘制已从服务器解析的最后一个坐标 .

如果有人对如何实现这种能够运行Android应用程序并看到标记动态更改的影响有任何见解,那将非常感谢!

提前致谢

回答(2)

2 years ago

您可以使用它来移动标记与动画使用此:

/**
   * @param marker the operation marker
   * @param finalPosition the destination latlng
   * @param latLngInterpolator interpolator of animation
   */
static void animateMarkerToICS(Marker marker, LatLng finalPosition, final LatLngInterpolator     latLngInterpolator)

这是代码:https://gist.github.com/broady/6314689

和视频:https://www.youtube.com/watch?v=WKfZsCKSXVQ

2 years ago

听起来你想要使用 animateCamera()updateCamera()

您可以在下面找到一些详细信息,但基本上如果您知道 Map 的新中心,您将执行以下操作:

public void centerMapAt(LatLng latLng) {
    mMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
}

要么

public void centerMapAt(LatLng latlng, LatLngBounds bounds) {
    int padding = 100; 
    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, padding);
        getMap().animateCamera(cameraUpdate);       
}

有很多选择 .

http://developer.android.com/reference/com/google/android/gms/maps/CameraUpdateFactory.html

http://developer.android.com/reference/com/google/android/gms/maps/GoogleMap.html#animateCamera(com.google.android.gms.maps.CameraUpdate)