2016-05-28 2 views
2

Я меняю базовую карту по умолчанию на mapbox.streets в моем коде. Но он больше не обновляет baselayer из виджета baseLayerPicker.base map selector не работает

   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', 
      })); 

Я ничего не теряю? Буду признателен за любую оказанную помощь.

ответ

2

В коде, который вы опубликовали, вы заменяете слой изображений после того, как зритель (и, следовательно, baseLayerPicker) уже создан. Что вам нужно сделать, так это убедиться, что baseLayerPicker сконструирован с правильными параметрами спереди, чтобы предварительно выбрать нужный базовый уровень. Код выглядит следующим образом:

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 начинается с правильным пунктом уже выбран, и по-прежнему предлагает варианты для замены на другие базовые слои.

+0

Спасибо, Это помогло. Но он не загружает мой просмотр камеры по умолчанию на загрузку страницы сейчас. Кажется, это нарушено. :( – meen

+0

извините, это была моя ошибка. Ваше решение работает. :) – meen

+0

Рад это слышать! – emackey