ansel0926
2022-05-15 ebc4c778854c8d2666b1bbaf3dcba2ba00f08453
libs/Cesiumplus/CesiumDraw.js
@@ -472,26 +472,6 @@
         drawHandler.setInputAction(function (movement) {
            //获取鼠标点击处的坐标
            drawHandler = drawHandler && drawHandler.destroy();
            // var cartesian = options.viewer.scene.pickPosition(movement.position);
            // var cartographic = Cesium.Cartographic.fromCartesian(cartesian);
            // var height = cartographic.height;//模型高度
            // if (Number(height) < 0) {
            //    var ray = options.viewer.camera.getPickRay(movement.position);
            //    cartesian = options.viewer.scene.globe.pick(ray, options.viewer.scene);
            // }
            // cartographic = Cesium.Cartographic.fromCartesian(cartesian);
            // height = cartographic.height;//地形高度
            // var entity = viewer.entities.add({
            //    name: 'drawPointEntity',
            //    position: cartesian.clone(),
            //    point: {
            //       color: options.pointcolor,
            //       pixelSize: 10,
            //       outlineColor: Cesium.Color.WHITE,
            //       outlineWidth: 2,
            //       disableDepthTestDistance: Number.POSITIVE_INFINITY
            //    }
            // });
            let position = viewer.scene.camera.pickEllipsoid(movement.position, viewer.scene.globe.ellipsoid);
            let pointText="点" + new Date().format("yyyyMMddhhmmss");
            var entity=viewer.entities.add({
@@ -501,7 +481,7 @@
                  show: true,
                  verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
                  horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
                  font: 'bold 14px Helvetica',
                  font: '10px SimSun',
                  fillColor: Cesium.Color.WHITE,
                  text: pointText,
                  disableDepthTestDistance: Number.POSITIVE_INFINITY,
@@ -520,6 +500,7 @@
                  distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 200000000.0)
               }
            });
            entity.title =  pointText;
            var cartesian = entity._position._value
            let popup = new Popup({
               viewer:viewer,
@@ -529,7 +510,6 @@
               type:'image',
               content:null,
            })
            entity.title =  pointText;
            addTreeNode({
               "title": entity.title,
               "id": entity.id,
@@ -546,55 +526,50 @@
         }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
      }
      /**
       * options{
       *    viewer:CesiumViewer,
       *    label:{
       *       text:'文字',
       *       font: '24px Helvetica',
       *       fillColor: Cesium.Color.SKYBLUE,
       *       outlineColor: Cesium.Color.BLACK,
       *       outlineWidth: 2,
       *       style: Cesium.LabelStyle.FILL_AND_OUTLINE,
       *       scaleByDistance: new Cesium.NearFarScalar(100, 1.0, 200, 0.4)
       *    }
       * }
       */
      CesiumDraw.drawLabel = function (options) {
         drawHandler = drawHandler && drawHandler.destroy();
         drawHandler = new Cesium.ScreenSpaceEventHandler(options.viewer.scene.canvas);
         drawHandler.setInputAction(function (movement) {
            var cartesian = options.viewer.scene.pickPosition(movement.position);
            var cartographic = Cesium.Cartographic.fromCartesian(cartesian);
            var height = cartographic.height;//模型高度
            if (Number(height) < 0) {
               var ray = options.viewer.camera.getPickRay(movement.position);
               cartesian = options.viewer.scene.globe.pick(ray, options.viewer.scene);
            }
            cartographic = Cesium.Cartographic.fromCartesian(cartesian);
            height = cartographic.height;//地形高度
            var entity = viewer.entities.add({
               name: 'drawLabelEtity',
               position: cartesian.clone(),
            //获取鼠标点击处的坐标
            drawHandler = drawHandler && drawHandler.destroy();
            let position = viewer.scene.camera.pickEllipsoid(movement.position, viewer.scene.globe.ellipsoid);
            let labelText="文字" + new Date().format("yyyyMMddhhmmss");
            var entity=viewer.entities.add({
               name:"drawLabelEntity",
               position:position,
               label: {
                  text: options.label.text,
                  font: options.label.font,
                  fillColor: options.label.fillColor,
                  outlineColor: options.label.outlineColor,
                  outlineWidth: options.label.outlineWidth,
                  style: options.label.style,
                  //scaleByDistance: options.label.scaleByDistance,
                  //eyeOffset: new Cesium.Cartesian3(0, 0, -10000),
                  show: true,
                  verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
                  horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
                  font: '30px SimSun',
                  fillColor: Cesium.Color.WHITE,
                  text: labelText,
                  disableDepthTestDistance: Number.POSITIVE_INFINITY,
                  heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
                  distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 10000000000000.0)
                  distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 200000000.0)
               },
               billboard: {
                  image: "../assets/images/icon/icon1.png",
                  width: 40,
                  height: 40,
                  rotation: 0,
                  verticalOrigin: Cesium.VerticalOrigin.TOP,
                  horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
                  disableDepthTestDistance: Number.POSITIVE_INFINITY,//广告牌不进行深度检测
                  heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
                  distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 200000000.0)
               }
            });
            //entity.title = "文字" + new Date().format("yyyyMMddhhmmss"),
            entity.title =options.label.text,//修改树结构文字标题:zzf
            entity.title =  labelText;
            var cartesian = entity._position._value
            let popup = new Popup({
               viewer:viewer,
               geometry:cartesian,
               entity:entity,
               id: "pop_" + entity.id,
               type:'label',
               content:null,
            })
            addTreeNode({
               "title": entity.title,
               "id": entity.id,
@@ -603,12 +578,11 @@
               "spread": true,
               "children": [],
               "ext": {
                  "lng": Cesium.Math.toDegrees(cartographic.longitude),
                  "lat": Cesium.Math.toDegrees(cartographic.latitude)
                  "lng": Cesium.Math.toDegrees(cartesian.x),
                  "lat": Cesium.Math.toDegrees(cartesian.y)
               }
            }, "4");
            saveDrawEntity("label",entity,entity.id);
            drawHandler = drawHandler && drawHandler.destroy();
         }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
      }