在Android用Mapbox SDK v10.12.2添加FillExtrusionLayer遇方法报错求助
问题解决:Mapbox Android 3D地图
addStyle 方法不存在错误 - 核心问题:你调用的
style.addStyle(fillExtrusionLayer)是错误写法,Mapbox的Style类中没有addStyle方法,添加3D建筑图层应该使用addLayer()方法。 - 正确写法示例:
// 在Style加载完成的回调中添加FillExtrusionLayer mapView.getMapboxMap().loadStyleUri(Style.MAPBOX_STREETS, style -> { FillExtrusionLayer extrusionLayer = new FillExtrusionLayer("3d-buildings-layer", "composite") .setSourceLayer("building") .setFilter(Filter.eq("extrude", "true")) .setProperty(FillExtrusionProperties.FILL_EXTRUSION_COLOR, "#888888") .setProperty(FillExtrusionProperties.FILL_EXTRUSION_HEIGHT, Expression.get("height")) .setProperty(FillExtrusionProperties.FILL_EXTRUSION_BASE, Expression.get("min_height")) .setProperty(FillExtrusionProperties.FILL_EXTRUSION_OPACITY, 0.7f); style.addLayer(extrusionLayer); }); - 额外排查要点:
- 确认Mapbox SDK依赖版本与官方示例匹配,低版本SDK可能存在API差异,建议使用最新稳定版。
- 检查
FillExtrusionLayer的导入路径是否正确,应为com.mapbox.maps.extension.style.layers.generated.FillExtrusionLayer。 - 必须在Style加载完成的回调内操作图层,避免因Style未初始化导致的异常。
内容的提问来源于stack exchange,提问作者MSD
相关产品推荐
相关产品推荐

