gpt4 book ai didi

带有 CameraUpdateFactory.newCameraPosition 的 Android-animateCamera 不缩放

转载 作者:行者123 更新时间:2023-11-29 15:09:55 25 4
gpt4 key购买 nike

我有一个 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() 并且缩放不起作用)但它也可能是。非常感谢任何帮助。

最佳答案

所以解决方案隐藏在 click listener returning false 中因此默认方法开始起作用。

解决方法:在onClick代码后返回true。

例子

 private void addClusterItemClickListener(GoogleMap map, ClusterManager cM){
final GoogleMap gmapI = map;
cM.setOnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<OffersMarker>() {
@Override
public boolean onClusterItemClick(OffersMarker item) {
Log.d("CAM_MOVE", "Clicked on marker");
final LatLng markerLocation = item.getPosition();
final OffersMarker i = item;
if (markerLocation != null) {
//Log.d("GEO_CODE_CRASH", "Latitude: " + markerLocation.latitude + " | " + "Longitude: " + markerLocation.longitude);
//Log.d("CAM_MOVE", "Moving on with placeSelectHandler");
placeSelectedHandler(markerLocation.latitude, markerLocation.longitude);
buildingFragment.setNrOfOffersOnToolber(i.getNrOfOffers());
getServerResponseAndPopulateBuildingPage(adr,markerLocation);

CameraUpdate update = CameraUpdateFactory.newLatLngZoom(markerLocation, ZOOM_LEVEL_BUILDING);
gmap.animateCamera(update);

}
return true; //<------- THIS NEEDS TO BE TRUE
}
});
}

关于带有 CameraUpdateFactory.newCameraPosition 的 Android-animateCamera 不缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32908913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com