zoukankan      html  css  js  c++  java
  • Cesium GeometryIntstance 选中改变颜色 和 绘制带箭头的直线

    1、GeometryInstance选中颜色更改

    let that = this;
          that.leftHander = new Cesium.ScreenSpaceEventHandler(
            that.Earth.viewer.scene.canvas
          );
    
          that.leftHander.setInputAction((click) => {
            let pickObj = that.Earth.viewer.scene.pick(click.position);
            if (pickObj) {
              that.clearSelected();
              let attributes = pickObj.primitive.getGeometryInstanceAttributes(
                pickObj.id
              );
    
              if (attributes) {
                that.primitive = pickObj.primitive;
                that.selectId = pickObj.id;
                attributes.color = Cesium.ColorGeometryInstanceAttribute.toValue(
                  Cesium.Color.fromCssColorString("#7B68EE").withAlpha(0.6)
                );
              }
    
              let data =
                that.Earth.cimdatamanager.paishuiFacilityData.psdypolygonList;
              if (data) {
                data.forEach((o) => {
                  if (o.properties.gw_id == pickObj.id) {
                    that.isShow = 2;
                    that.unitData = o.properties;
                    that.drawPaiShuiLine(o.properties.drauintid);
                  }
                });
              }
            }
          }, Cesium.ScreenSpaceEventType.LEFT_CLICK);

    2、恢复原来的颜色

        clearSelected() {
          if (this.primitive) {
            let attributes = this.primitive.getGeometryInstanceAttributes(
              this.selectId
            );
            if (attributes) {
              attributes.color = Cesium.ColorGeometryInstanceAttribute.toValue(
                Cesium.Color.fromCssColorString("#4a7d84").withAlpha(0.6)
              );
            }
          }
        },

    3、绘制带箭头直线

          result.forEach((o) => {
            var redLine = this.viewer.entities.add({
              // 贴在地面上 两点之间的直线距离
              name: "line",
              polyline: {
                positions: Cesium.Cartesian3.fromDegreesArray([
                  o.inx,
                  o.iny,
                  o.outx,
                  o.outy,
                ]),
                 10,
                // 不带箭头的线
                // material: Cesium.Color.RED,
                // 是否紧贴地面
                //clampToGround: true,
                // 带箭头的线
                material: new Cesium.PolylineArrowMaterialProperty(
                  Cesium.Color.RED
                ),
              },
            });
  • 相关阅读:
    机器学习PAL产品优势
    机器学习PAI产品架构
    机器学习PAI
    Auto ML自动特征工程
    Auto ML自动调参
    自动机器学习(AutoML)
    MegEngine基本概念
    MegEngine计算图、MatMul优化解析
    https://music.163.com/#/playlist?id=977461211
    阅后归档 20201020
  • 原文地址:https://www.cnblogs.com/xiaoqiyaozou/p/15749819.html
Copyright © 2011-2022 走看看