【发布时间】:2015-10-02 14:00:12
【问题描述】:
我有一个 onClusterItemClickListener。我希望谷歌地图(v2)动画到那个位置,所以我使用 CameraUpdateFactory.newCameraPosition。
问题: google maps 动画到目标 LatLng 但不缩放、倾斜等。 我对 GoogleMap.CancelableCallback() 进行了故障排除,似乎在动画到位置 onCancel() 后总是被调用。
这是我的代码
...<some code before>
@Override
public boolean onClusterItemClick(OffersMarker item) {
final LatLng markerLocation = item.getPosition();
final OffersMarker i = item;
final CameraPosition MARKER_POS = new CameraPosition.Builder()
.target(markerLocation)
.zoom(22)
.bearing(0)
.tilt(25)
.build();
gmap.animateCamera(CameraUpdateFactory.newCameraPosition(MARKER_POS));
}
此代码仅对目标进行动画处理,没有缩放或倾斜。
这是带有故障排除的第二版
@Override
public boolean onClusterItemClick(OffersMarker item) {
final LatLng markerLocation = item.getPosition();
final OffersMarker i = item;
final CameraPosition MARKER_POS = new CameraPosition.Builder()
.target(markerLocation)
.zoom(22)
.bearing(0)
.tilt(25)
.build();
changeCamera(gmap, CameraUpdateFactory.newCameraPosition(MARKER_POS), new GoogleMap.CancelableCallback() {
@Override
public void onFinish() {
Log.d("CAM_MOVE", "Finished animate camera");
}
@Override
public void onCancel() {
Log.d("CAM_MOVE", "Canceled animate camera");
}
});
}
这里是换相机方法
private void changeCamera(GoogleMap map, CameraUpdate cameraUpdate, GoogleMap.CancelableCallback cancelableCallback) {
map.animateCamera(cameraUpdate, cancelableCallback);
}
onCancel() 总是被未知来源调用。
我不确定它们是否已连接(onCancel() 被调用并且缩放不起作用)但它也可能是。 非常感谢任何帮助。
【问题讨论】:
-
我认为你应该使用类似这样的“CameraUpdateFactory.newLatLngZoom” CameraUpdate update = CameraUpdateFactory.newLatLngZoom(LATLONG, CAMERA_ZOOM); googleMap.animateCamera(更新);
-
谢谢,我试过了,结果还是一样,没有缩放。
-
我觉得奇怪的是它应该可以工作,但看看这个链接。 developers.google.com/maps/documentation/android-api/utility/…
-
是的,GMap.movecamera 确实会启动缩放。问题是移动没有动画。我需要流畅的动画。
-
我不理解您的观点,您能否显示更多代码?请完成课程。
标签: android google-maps