您好,登錄后才能下訂單哦!
小編給大家分享一下Cesium如何批量加載立體線,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
Cesium的官網程序樣例中,如何把一條線,畫成一個立體的形狀,詳細地址為:https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/index.html?src=Corridor.html&label=Geometries
Cesium的官網程序樣例中,如何加載geojson的數據,詳細地址為:https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/index.html?src=GeoJSON%20and%20TopoJSON.html&label=DataSources
那么,如何將geojson的數據,批量的加載成立體的線狀模式呢,下邊列舉詳細的實現代碼:
把geojson給加載進來,采用同步等待的方式;
let promise = Cesium.GeoJsonDataSource.load('data/guizhouroad1.geojson');
在等待事件中,執行將線轉換成立體柱狀;
promise.then(function(dataSource) {
//geojson加載進來的實體
let entities = dataSource.entities.values;
//轉換立體柱狀線
entity.polylineVolume = new Cesium.PolylineVolumeGraphics({
//設置位置
positions: entity.polyline.positions,
//計算立體柱狀坐標
shape: computeCircle(300.0),
//設置顏色或貼圖
material: Cesium.Color.RED
});
//設置平面先為空
entity.polyline = null;
}
//添加數據源并縮放過去
viewer.dataSources.add(dataSource);
viewer.zoomTo(viewer.entities);
console.log(idx);
}).otherwise(function(error) {
window.alert(error);
});
//計算立體柱狀函數
function computeCircle(radius) {
var positions = [];
for(var i = 0; i < 360; i += 2) {
var radians = Cesium.Math.toRadians(i);
positions.push(new Cesium.Cartesian2(radius * Math.cos(radians), radius * Math.sin(radians)));
}
return positions;
}
看完了這篇文章,相信你對“Cesium如何批量加載立體線”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。