Mapbox V10 Java中获取UiSettings及控件配置问题求助
Mapbox Maps v10.x 里 UiSettings、比例尺和指南针的正确配置方式
Mapbox v10 把旧版本统一的UiSettings拆成了独立插件管理,所以你找不到原来的getUiSettings()方法,下面逐个解决你的问题:
1. 比例尺(ScaleBar)配置
直接创建ScaleBarSettings不会生效,得通过ScaleBarPlugin绑定到地图并应用设置:
// 获取比例尺插件实例 ScaleBarPlugin scaleBarPlugin = mapView.getPlugin(ScaleBarPlugin.class); // 配置比例尺参数 ScaleBarSettings settings = new ScaleBarSettings(this); settings.setEnabled(true); // 可选:设置位置、单位类型 settings.setPosition(ScaleBarPosition.BOTTOM_LEFT); settings.setUnitType(ScaleBarUnitType.METRIC); // 把设置应用到插件 scaleBarPlugin.applySettings(settings);
2. 指南针(Compass)配置
同样要通过CompassPlugin来控制,代码示例:
// 获取指南针插件实例 CompassPlugin compassPlugin = mapView.getPlugin(CompassPlugin.class); // 启用指南针 compassPlugin.setEnabled(true); // 可选:设置点击指南针重置北方向、调整位置 compassPlugin.setResetNorthOnClick(true); compassPlugin.setPosition(CompassPosition.TOP_RIGHT);
3. 其他原UiSettings功能的替代方式
原来UiSettings里的Logo、版权信息控制,现在对应LogoPlugin和AttributionPlugin:
// 控制Logo显示 LogoPlugin logoPlugin = mapView.getPlugin(LogoPlugin.class); logoPlugin.setEnabled(true); // 控制版权信息显示 AttributionPlugin attributionPlugin = mapView.getPlugin(AttributionPlugin.class); attributionPlugin.setEnabled(true);
注意事项
所有插件的配置最好放在地图样式加载完成的回调里,避免空指针或不生效:
mapView.getMapboxMap().loadStyleUri(Style.OUTDOORS, loadedStyle -> { // 在这里配置所有插件 ScaleBarPlugin scaleBarPlugin = mapView.getPlugin(ScaleBarPlugin.class); // ... 剩下的配置代码 });
内容的提问来源于stack exchange,提问作者Thomas
相关产品推荐
相关产品推荐

