cesium加载点,线,面,文字,图片及模型

1,571 阅读3分钟

cesium标点

      viewer.entities.add({
        // fromDegrees(经度,纬度,高度,椭球,结果)从以度为单位的经度和纬度值返回Cartesian3位置
        position: Cesium.Cartesian3.fromDegrees(108, 34, 10),
        point: {
          // 点的大小(像素)
          pixelSize: 5,
          // 点位颜色,fromCssColorString 可以直接使用CSS颜色
          color: Cesium.Color.fromCssColorString('#000'),
          // 边框颜色
          outlineColor: Cesium.Color.fromCssColorString('#fff'),
          // 边框宽度(像素)
          outlineWidth: 2,
          // 是否显示
          show: true
        }
      });

cesium画线

      //标线
      viewer.entities.add({
        polyline: {
          // fromDegrees返回给定的经度和纬度值数组(以度为单位),该数组由Cartesian3位置组成。
          positions: Cesium.Cartesian3.fromDegreesArray([
            120.9677706, 30.7985748,
            110.20, 34.55
          ]),
          // 宽度
          width: 2,
          // 线的颜色
          material: Cesium.Color.WHITE,
          // 线的顺序,仅当`clampToGround`为true并且支持地形上的折线时才有效。
          zIndex: 10,
          // 是否显示
          show: true
        }
      });

cesium标面

// 标面
      viewer.entities.add({
        polygon: {
          // 获取指定属性(positions,holes(图形内需要挖空的区域))
          hierarchy: {
            positions: Cesium.Cartesian3.fromDegreesArray([
              120.9677706, 30.7985748,
              110.20, 34.55,
              120.20, 50.55
            ]),
            holes: [{
              positions: Cesium.Cartesian3.fromDegreesArray([
                119, 32,
                115, 34,
                119, 40
              ])
            }]
          },
          // 边框
          outline: true,
          // 边框颜色
          outlineColor: Cesium.Color.WHITE,
          // 边框尺寸
          outlineWidth: 2,
          // 填充的颜色,withAlpha透明度
          material: Cesium.Color.GREEN.withAlpha(0.5),
          // 是否被提供的材质填充
          fill: true,
          // 恒定高度
          height: 5000,
          // 显示在距相机的距离处的属性,多少区间内是可以显示的
          distanceDisplayCondition: new Cesium.DistanceDisplayCondition(1000, 10000000),
          // 是否显示
          show: true,
          // 顺序,仅当`clampToGround`为true并且支持地形上的折线时才有效。
          zIndex: 10
        }
      });   

cesium标文字

viewer.entities.add({
      position: Cesium.Cartesian3.fromDegrees(120, 30, 5),
      // 点
      point: {
        color: Cesium.Color.RED, // 点位颜色
        pixelSize: 10 // 像素点大小
      },
      // 文字
      label: {
        // 文本。支持显式换行符“ \ n”
        text: '测试名称',
        // 字体样式,以CSS语法指定字体
        font: '14pt Source Han Sans CN',
        // 字体颜色
        fillColor: Cesium.Color.BLACK,
        // 背景颜色
        backgroundColor: Cesium.Color.AQUA,
        // 是否显示背景颜色
        showBackground: true,
        // 字体边框
        outline: true,
        // 字体边框颜色
        outlineColor: Cesium.Color.WHITE,
        // 字体边框尺寸
        outlineWidth: 10,
        // 应用于图像的统一比例。比例大于会1.0放大标签,而比例小于会1.0缩小标签。
        scale: 1.0,
        // 设置样式:FILL:填写标签的文本,但不要勾勒轮廓;OUTLINE:概述标签的文本,但不要填写;FILL_AND_OUTLINE:填写并概述标签文本。
        style: Cesium.LabelStyle.FILL_AND_OUTLINE,
        // 相对于坐标的水平位置
        verticalOrigin: Cesium.VerticalOrigin.CENTER,
        // 相对于坐标的水平位置
        horizontalOrigin: Cesium.HorizontalOrigin.LEFT,
        // 该属性指定标签在屏幕空间中距此标签原点的像素偏移量
        pixelOffset: new Cesium.Cartesian2(10, 0),
        // 是否显示
        show: true
      }
    });
​

cesium标图

      // 标图片
      viewer.entities.add({
        position: Cesium.Cartesian3.fromDegrees(110.20, 34.55, 2.61),
        billboard: {
          // 图像地址,URI或Canvas的属性
          image: require('../assets/首页 (2).png'),
          // 设置颜色和透明度
          color: Cesium.Color.WHITE.withAlpha(0.8),
          // 高度(以像素为单位)
          height: 50,
          // 宽度(以像素为单位)
          width: 50,
          // 逆时针旋转
          rotation: 20,
          // 大小是否以米为单位
          sizeInMeters: false,
          // 相对于坐标的垂直位置
          verticalOrigin: Cesium.VerticalOrigin.CENTER,
          // 相对于坐标的水平位置
          horizontalOrigin: Cesium.HorizontalOrigin.LEFT,
          // 该属性指定标签在屏幕空间中距此标签原点的像素偏移量
          pixelOffset: new Cesium.Cartesian2(10, 0),
          // 应用于图像的统一比例。比例大于会1.0放大标签,而比例小于会1.0缩小标签。
          scale: 1.0,
          // 是否显示
          show: true
        }
      });

cesium加载模型

// 模型
      let params = {
        lon: 119.98,
        lat: 30.22,
        alt: 0,
        heading: Cesium.Math.toRadians(60.0),
        pitch: Cesium.Math.toRadians(30.0),
        roll: 0.0,
        range: 5000.0
      };
      viewer.entities.add({
        // 设置方向
        orientation: {
          // 指向
          heading: params.heading,
          // 视角
          pitch: params.pitch,
          roll: params.roll
        },
        position: Cesium.Cartesian3.fromDegrees(120, 30, 10000),
        model: {
          // 引入模型
          uri: '模型文件地址',
          // 模型的近似最小像素大小,而不考虑缩放。这可以用来确保即使观看者缩小也可以看到模型。如果为0.0,则不强制使用最小大小
          minimumPixelSize: 1280,
          // 模型的颜色(与模型的渲染颜色混合的属性)
          color: Cesium.Color.WHITE.withAlpha(1),
          // 模型的最大比例大小
          maximumScale: 20000,
          // 设置模型轮廓(边框)颜色
          silhouetteColor: Cesium.Color.BLACK,
          // 设置模型轮廓(边框)大小
          silhouetteSize: 2,
          // 是否执行模型动画
          runAnimations: true,
          // 应用于图像的统一比例。比例大于会1.0放大标签,而比例小于会1.0缩小标签。
          scale: 1.0,
          // 是否显示
          show: true
        }
      });

\