最近學習cesium的3D引擎,有關圖層切換的例子比較少,在官網上看見了一些例子加以自己的理解。投機了一種近似於圖層切換的效果。
這種圖層切換每次點擊按鈕時,會把其他的數據和實體給刪除。然后再創建或加載一個新的
閑話不多說我們直接上代碼
Sandcastle.addToolbarButton('Basic styling', function() {
viewer.dataSources.add(Cesium.GeoJsonDataSource.load(URL, {
stroke: Cesium.Color.HOTPINK,
fill: Cesium.Color.PINK.withAlpha(0.5),
strokeWidth: 3
}));
});
Sandcastle.addToolbarButton('按鈕',function() {
var position = Cesium.Cartesian3.fromDegrees(116.39053344726561,39.89604077881996, 0.0);
var hpr = new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(135), 0.0, 0.0);
var orientation = Cesium.Transforms.headingPitchRollQuaternion(position, hpr);
var model = viewer.entities.add({
id:'01',
position : position,
orientation : orientation,
model : {
uri : URL,
minimumPixelSize : 128,
maximumScale : 20000
}
});
},"toolbar");
Sandcastle.reset = function() {
viewer.dataSources.removeAll();
viewer.entities.removeById('01')//根據id刪除entity
//設置相機為home為起點
viewer.camera.lookAt(Cesium.Cartesian3.fromDegrees(116.39053344726561,39.89604077881996, 2631.082799425431), new Cesium.Cartesian3(0.0, -4790.0, 3930.0));
viewer.camera.lookAtTransform(Cesium.Matrix4.IDENTITY);
};
//Sandcastle_End
Sandcastle.finishedLoading();
