Mapbox v10实现相机动画找不到flyTo方法,求Java解决方案
Mapbox v10 Java 相机动画调用解决方案
Mapbox v10 对相机动画API做了重构,flyTo/easeTo 方法不再直接挂载在MapboxMap对象下,需要先获取相机动画插件实例再调用,以下是完整实现流程:
1. 补充依赖配置
首先确认模块级build.gradle中已引入独立拆分的相机动画插件依赖:
dependencies { // 替换版本号为你实际使用的Mapbox v10对应版本 implementation "com.mapbox.plugin:maps-animation:10.0.0" }
2. 功能代码实现
mapView = findViewById(R.id.mapView); mapboxMap = mapView.getMapboxMap(); // 先从MapView获取相机动画插件实例 CameraAnimationsPlugin cameraAnimations = mapView.getPlugin(CameraAnimationsPlugin.class); // 构造你的目标相机参数 CameraOptions cameraOptions = new CameraOptions.Builder() .center(new Point(目标经度, 目标纬度)) .zoom(15.0) .pitch(0.0) .bearing(0.0) .build(); // 调用flyTo实现动画,第二个参数为动画配置,可按需修改 cameraAnimations.flyTo(cameraOptions, new MapAnimationOptions.Builder().duration(2000).build()); // 若需要使用easeTo,替换方法名即可 // cameraAnimations.easeTo(cameraOptions, new MapAnimationOptions.Builder().duration(1500).build());
注意事项
- 相机动画插件无需手动初始化,MapView会自动完成注册加载
- 动画时长单位为毫秒,
flyTo默认会根据相机移动距离自动计算适配时长,也可以手动指定固定值 - 如需终止正在执行的相机动画,调用
cameraAnimations.cancelAllAnimations()即可
内容的提问来源于stack exchange,提问作者Reafidy
相关产品推荐
相关产品推荐

