vite+vue3.0+cesium

您所在的位置:网站首页 vue展示3d模型 vite+vue3.0+cesium

vite+vue3.0+cesium

2023-03-13 03:50| 来源: 网络整理| 查看: 265

vite+vue3.0+cesium ----04 使用纽约自带的城市模型演示如何修改城市白模颜色属性 1. 定义你的viewer let viewer = new Cesium.Viewer("cesiumContainer", { //cesium的查看器的基本属性 baseLayerPicker: true, //配置图层底图的图标 // imageryProvider:custom ,//使用上面自己配置的底图 terrainProvider: Cesium.createWorldTerrain({ //设置cesium的世界地形 requestVertexNormals: true, //地形的开启 requestWaterMask: true, //水面效果的开启 }), });

如果无法成功创建viewer实例对象,可以参考第一篇文章 https://blog.csdn.net/weixin_43564810/article/details/129328096

2. 相机视角定位到纽约上空 // 设置默认相机视角 viewer.camera.setView({ destination: new Cesium.Cartesian3(1332761, -4662399, 4137888), //纽约的地理坐标 orientation: { heading: 0.6, pitch: -0.66, }, });

纽约上空

3. 加载cesium自带的纽约白模数据

使用cesium的Cesium3DTileset调用cesium的75343纽约白模建筑群数据

let city = viewer.scene.primitives.add( new Cesium.Cesium3DTileset({ url: Cesium.IonResource.fromAssetId(75343) }) );

白模数据

4. 定义白模数据的style样式 实现不同高度的白模数据展示不同的颜色

使用conditions定义数据在不同高度时候展示出来不同的颜色

// 定义3d样式 let heightStyle = new Cesium.Cesium3DTileStyle({ color: { // 条件判断建筑物的颜色 conditions: [ ["${Height} >= 300", "rgba(45,0,75,0.5)"], ["${Height}>=200", "rgb(102,71,151)"], ["${Height}>=100", "rgba(170,162,204,0.5)"], ["${Height}>=50", "rgb(224,226,238)"], ["${Height}>=25", "rgb(252,230,200)"], ["${Height}>=10", "rgba(248,176,87,0.5)"], ["${Height}>=5", "rgb(198,106,11)"], ["true", "rgb(127,59,8)"], ], }, });

将引用的city对象的style修改为自定义的样式 实现不同高度建筑物以不同颜色进行展示

city.style = heightStyle;

不同颜色

5. 单页面完整代码 import * as Cesium from "cesium"; import { onMounted } from "vue"; onMounted(() => { // 配置cesium中的相关属性 let custom = new Cesium.ArcGisMapServerImageryProvider({ url: "//servicse.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer", }); let viewer = new Cesium.Viewer("cesiumContainer", { //cesium的查看器的基本属性 baseLayerPicker: true, //配置图层底图的图标 // imageryProvider:custom ,//使用上面自己配置的底图 terrainProvider: Cesium.createWorldTerrain({ //设置cesium的世界地形 requestVertexNormals: true, //地形的开启 requestWaterMask: true, //水面效果的开启 }), }); // 设置默认相机视角 // viewer.camera.setView({ // destination: Cesium.Cartesian3.fromDegrees(113.318977, 23.114155, 2000),//广州坐标 // // 方向,俯视和仰视的视角 // orientation: { // heading: Cesium.Math.toRadians(90), //坐标系旋转90度 // pitch: Cesium.Math.toRadians(-45), //设置俯仰角度为-45度 // }, // }); // 设置默认相机视角 viewer.camera.setView({ destination: new Cesium.Cartesian3(1332761, -4662399, 4137888), //纽约的地理坐标 orientation: { heading: 0.6, pitch: -0.66, }, }); let city = viewer.scene.primitives.add( new Cesium.Cesium3DTileset({ url: Cesium.IonResource.fromAssetId(75343) }) ); // 定义3d样式 let heightStyle = new Cesium.Cesium3DTileStyle({ color: { // 条件判断建筑物的颜色 conditions: [ ["${Height} >= 300", "rgba(45,0,75,0.5)"], ["${Height}>=200", "rgb(102,71,151)"], ["${Height}>=100", "rgba(170,162,204,0.5)"], ["${Height}>=50", "rgb(224,226,238)"], ["${Height}>=25", "rgb(252,230,200)"], ["${Height}>=10", "rgba(248,176,87,0.5)"], ["${Height}>=5", "rgb(198,106,11)"], ["true", "rgb(127,59,8)"], ], }, }); city.style = heightStyle; }); #cesiumContainer { width: 100% !important; height: 100% !important; margin: 0 !important; padding: 0 !important; overflow: hidden; position: absolute; }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3