天空闲话 发表于 2023-4-6 06:37:17

Cesium 案例(一) Z-Indexing Geometry

 
使用官方github包,部分解释来源于Viewer - Cesium Documentation   Cesium.Ion.defaultAccessToken =        "token";      constviewer = newCesium.Viewer("cesiumContainer");
      viewer.entities.add({        //entities获取实体集合        id: "red rectangle,zIndex 1",        rectangle: {          //设置或者获取矩形          coordinates: Cesium.Rectangle.fromDegrees(-110.0, 20, -100.5, 30.0), //左下角经纬右上角经纬          material: Cesium.Color.RED,          zIndex: 1, //一个属性,指定用于排序地面几何的 zIndex。仅当矩形为常量且未指定//height 或 extrudedHeight 时才有效。        },      });
      viewer.entities.add({        id: "Textured rectangle, zIndex 2",        rectangle: {          coordinates: Cesium.Rectangle.fromDegrees(-112.0, 25.0, -102.5, 35.0),          material: "../images/Cesium_Logo_Color.jpg",          zIndex: 2,        },      });
      viewer.entities.add({        id: "Blue rectangle, zIndex 3",        rectangle: {          coordinates: Cesium.Rectangle.fromDegrees(-110.0, 31.0, -100.5, 41.0),          material: Cesium.Color.BLUE,          zIndex: 3,        },      });
      viewer.entities.add({        id: "Textured rectangle, zIndex 3",        rectangle: {          coordinates: Cesium.Rectangle.fromDegrees(-99.5, 20.0, -90.0, 30.0),          material: "../images/Cesium_Logo_Color.jpg",          zIndex: 3,        },      });
      viewer.entities.add({        id: "Green rectangle, zIndex 2",        rectangle: {          coordinates: Cesium.Rectangle.fromDegrees(-97.5, 25.0, -88.0, 35.0),          material: Cesium.Color.GREEN,          zIndex: 2,        },      });
      viewer.entities.add({        id: "Blue rectangle, zIndex 1",        rectangle: {          coordinates: Cesium.Rectangle.fromDegrees(-99.5, 31.0, -90.0, 41.0),          material: Cesium.Color.BLUE,          zIndex: 1,        },      });      if (!Cesium.Entity.supportsPolylinesOnTerrain(viewer.scene)) {        //检查给定场景是否支持夹在地形或 3D 平铺上的折线。        //如果不支持此功能,具有折线图形的实体将在提供的高度处使用顶点进行渲染,        //并使用 `arcType` 参数而不是固定在地面上。        window.alert(          "Polylines on terrain are not supported on this platform ,Z-index will be ignored"        );      }      if (!Cesium.Entity.supportsMaterialsforEntitiesOnTerrain(viewer.scene)) {        //检查给定场景是否支持覆盖在地形或 3D 平铺上的实体上的颜色以外的材质。        //如果不支持此功能,则具有非颜色材质但没有'高度'的实体将被渲染为高度为 0。        window.alert(          "Textured materials on terrain polygons are notsupported on this platform, Z-index will be ignored"        );      }      viewer.entities.add({        id: "Polyline, zIndex 2",        polyline: {          positions: Cesium.Cartesian3.fromDegreesArray([            -120.0, 22.0, -80.0, 22.0,          ]), //指定定义线带的 Cartesian3 位置数组          width: 8.0,          material: newCesium.PolylineGlowMaterialProperty({            //映射到折线发光 Material            glowPower: 0.2, //发光强度,占总线宽的百分比            color: Cesium.Color.BLUE,            //taperPower:一个数字属性,指定锥形效果的强度,            //以总线条长度的百分比表示。如果为 1.0 或更高,则不使用锥形效果。          }),          zIndex: 2,//深度信息          clampToGround: true,          //指定折线是否应固定在地面上。        },      });      viewer.zoomTo(viewer.entities);      //zoomTo (target, offset(可选) )      //异步设置相机以查看提供的实体、实体或数据源。      //如果数据源仍在加载过程中或可视化仍在加载中,则此方法在执行缩放之前等待数据准备好。      //偏移量是本地东西北上参考系中的航向/俯仰/范围,以边界球的中心为中心。      //航向角和俯仰角在当地东西北上参考系中定义。航向是从 y 轴到 x 轴增加的角度。俯仰是从 xy 平面的旋转。 //正俯仰角在平面上方。      //负俯仰角位于平面下方。范围是到中心的距离。如果范围为零,则将计算范围以使整个边界球体可见。      //在 2D 中,必须有自上而下的视图。摄像机将放置在目标上方向下看。目标上方的高度将是范围。 / /航向将根据偏移量确定。如果无法根据偏移量确定航向,则航向将为北。  运行结果图:(与代码略有不同,更换了图片路径和内容 (material:)) https://img2023.cnblogs.com/blog/3124625/202304/3124625-20230405180453145-164763839.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Cesium 案例(一) Z-Indexing Geometry