底图选择器不起作用

base map selector does not work

我正在将代码中的默认底图更改为 mapbox.streets。但它不会再从 baseLayerPicker 小部件更新 baselayer。

                var viewer = new Cesium.Viewer('cesiumContainer',{
                animation : false,
                homeButton : false,
                baseLayerPicker : true,
                infoBox : true,
                sceneModePicker : true,
                timeline : false,
                navigationInstructionsInitiallyVisible : false,
                navigationHelpButton : false,
                contextOptions: {
                    webgl:{preserveDrawingBuffer:true}
                },
                selectionIndicator : false,
            });
            var layers = viewer.imageryLayers;
            var baseLayer = layers.get(0);
            layers.remove(baseLayer);
            layers.addImageryProvider(new Cesium.MapboxImageryProvider({
                url : 'https://api.mapbox.com/v4/',
                mapId: 'mapbox.streets',
            }));

我错过了什么吗?非常感谢任何帮助。

在您发布的代码中,您在构建查看器(以及 baseLayerPicker)之后换出图像层。您需要做的是确保预先使用正确的选项构造 baseLayerPicker,以预 select 您想要的基础层。代码如下所示:

var imageryProviders = Cesium.createDefaultImageryProviderViewModels();
var selectedImageryProviderIndex = 4;  // MapBox Street is 5th in the list.

var viewer = new Cesium.Viewer('cesiumContainer', {
    imageryProviderViewModels: imageryProviders,
    selectedImageryProviderViewModel: imageryProviders[selectedImageryProviderIndex]
});

当您 运行 这样做时,您会注意到 baseLayerPicker 以正确的项目开始 selected,并且仍然提供换出其他基础层的选项。