【发布时间】:2016-02-03 15:46:07
【问题描述】:
一旦用户打开该功能并终止它,我必须在谷歌地图中显示实时/实时用户移动位置。
我已经使用以下方法为标记设置动画。
private void animateMarker(final Marker marker, final LatLng toPosition,
final boolean hideMarker) {
final Handler handler = new Handler();
final long start = SystemClock.uptimeMillis();
Projection proj = mMap.getProjection();
Point startPoint = proj.toScreenLocation(marker.getPosition());
final LatLng startLatLng = proj.fromScreenLocation(startPoint);
final long duration = 1000;
final Interpolator interpolator = new LinearInterpolator();
handler.post(new Runnable() {
@Override
public void run() {
long elapsed = SystemClock.uptimeMillis() - start;
float t = interpolator.getInterpolation((float) elapsed
/ duration);
double lng = t * toPosition.longitude + (1 - t)
* startLatLng.longitude;
double lat = t * toPosition.latitude + (1 - t)
* startLatLng.latitude;
marker.setPosition(new LatLng(lat, lng));
if (t < 1.0) {
// Post again 16ms later.
handler.postDelayed(this, 16);
} else {
if (hideMarker) {
marker.setVisible(false);
} else {
marker.setVisible(true);
}
}
}
});
}
使用以下代码也可以移动地图。
// Showing the current location in Google Map
mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
// Zoom in the Google Map
mMap.animateCamera(CameraUpdateFactory.zoomTo(15));
到目前为止,我所做的还不足以将标记和地图一起移动。它看起来并不完美。我必须将地图与标记一起移动。
谢谢。
【问题讨论】:
-
你解决了这个问题吗?如果有,怎么做?
-
@Anoop M 你找到解决办法了吗?
标签: android google-maps google-maps-android-api-2