ansel0926
2022-05-18 f0efddd9e32b9c5dc828401c4092be004b4826cf
assets/map/map3D.js
@@ -242,6 +242,34 @@
                     }
                  });
               }
               if(entity._name=='drawTextEtity'){//编辑标签
                  layer.config({
                     extend: 'myskin/style.css'
                  });
                  labelLayer=layer.open({
                     type: 2,
                     title: '<i class="iconfont icon-huitu i-item" style="font-size: 18px; color: white;"></i>  ' + "编辑标签",
                     maxmin: true,
                     skin: 'layer-ext-myskin',
                     shade: 0,
                     maxmin: false,
                     scrollbar: false,
                     shadeClose: true,
                     area: ['320px', '300px'],
                     resize: false,
                     offset: ['50px',document.body.clientWidth-330],
                     content: 'project/editText.html',
                     success: function (layero, index) {
                        var iframe = window['layui-layer-iframe' + index];
                        let id=entity._id;
                        let title=entity.title;
                        let fontColor=entity._label._fillColor._value.toCssHexString();
                        let fontSize=entity._label._font._value.split(" ")[0].replace("px","");
                        let fontFamily=entity._label._font._value.split(" ")[1];
                            iframe.child(id,title,fontColor,fontSize,fontFamily);
                     }
                  });
               }
               else if(entity._name=='drawPointEntity'){//编辑点
                  document.getElementById("pop_" +entity.id).style.display="block";
                  layer.config({
@@ -294,7 +322,8 @@
                        let title=entity.title;
                        let lineColor=entity._polyline._material._color._value.toCssHexString();
                        let lineSize=entity._polyline._width._value;
                            iframe.child(id,title,lineColor,lineSize,pick);
                        let attributes = pick.primitive.getGeometryInstanceAttributes(pick.id);
                            iframe.child(id,title,lineColor,lineSize,attributes);
                     }
                  });
               }
@@ -906,6 +935,55 @@
   });
}
function updateText(type,id,val){//修改标签:zzf
   let signPointEntity = viewer.entities.getById(id)
   if(type==1){//标签文字
      signPointEntity.title=val;
      signPointEntity._label._text._value = val;
      let treeLabelNode=getNodeById(signPointEntity.id,layerMenu[3].children)
      treeLabelNode.title=val;
   }
   else if(type==2){//标签颜色
      if(val==''){
         val=signPointEntity._label._fillColor._value;
      }
      signPointEntity._label._fillColor._value = Cesium.Color.fromCssColorString(val);
   }
   else if(type==3){//标签字体大小
      let font=signPointEntity._label._font._value.split(" ");
      signPointEntity._label._font._value = val+"px "+font[1];
   }
   else if(type==4){//标签字体
      let font=signPointEntity._label._font._value.split(" ");
      signPointEntity._label._font._value = font[0]+" "+val;
   }
   let saveData= {
      "id":signPointEntity._id,
      "type": "text",
      "content":signPointEntity.title,
      "color":signPointEntity._label._fillColor._value.toCssColorString(),
      "fontsize":signPointEntity._label._font._value.split(" ")[0].replace("px",""),
      "fontstyle":signPointEntity._label._font._value.split(" ")[1],
   }
   let token = window.localStorage.getItem("token");
   $.ajax({
      type: "post",
      async: false,
        url: parent.httpConfig.webApiUrl + "landstamp/front/updateDrawEntity",
        data: saveData,
      contentType: "application/x-www-form-urlencoded",
        beforeSend:function(request){
            request.setRequestHeader("token",token);
        },
      success: function (data) {
         console.log(data)
      },
      error: function (XMLHttpRequest, textStatus, errorThrown) {
         console.log("ajax请求失败!");
      }
   });
}
function updatePoint(type,id,val){//修改点:zzf
   let signPointEntity = viewer.entities.getById(id);
   let popId="pop_"+id;
@@ -982,8 +1060,7 @@
   });
}   
function updateLine(type,id,val,pick){//修改线:zzf
   let attributes = pick.primitive.getGeometryInstanceAttributes( pick.id );
function updateLine(type,id,val,attributes){//修改线:zzf
   let signPointEntity = viewer.entities.getById(id);
   let saveData;
   if(type==1){//线名称
@@ -1434,6 +1511,9 @@
               else if(data.rows[i].type=="label"){
                  drawAjaxLabel(data.rows[i])
               }
               else if(data.rows[i].type=="text"){
                  drawAjaxText(data.rows[i])
               }
            }
         }
      },
@@ -1454,10 +1534,11 @@
      label: {
         text: drawEntity.content,
         font: drawEntity.fontsize+'px '+drawEntity.fontstyle,
         fillColor: Cesium.Color.fromCssColorString(drawEntity.color),
         fillColor: drawEntity.color?Cesium.Color.fromCssColorString(drawEntity.color):Cesium.Color.WHITE,
         outlineColor: Cesium.Color.BLACK,
         outlineWidth: 2,
         style: Cesium.LabelStyle.FILL_AND_OUTLINE,
         eyeOffset:new Cesium.Cartesian3(0,20,0),
         verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
         horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
         disableDepthTestDistance: Number.POSITIVE_INFINITY,
@@ -1612,10 +1693,12 @@
      label: {
         text: drawEntity.content,
         font: drawEntity.fontsize+'px '+drawEntity.fontstyle,
         fillColor: Cesium.Color.fromCssColorString(drawEntity.color),
         fillColor:  drawEntity.color?Cesium.Color.fromCssColorString(drawEntity.color):Cesium.Color.WHITE,
         outlineColor: Cesium.Color.BLACK,
         outlineWidth: 2,
         style: Cesium.LabelStyle.FILL_AND_OUTLINE,
         //pixelOffset: new Cesium.Cartesian2(0.0, 5.0),
         eyeOffset:new Cesium.Cartesian3(0,20,0),
         verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
         horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
         disableDepthTestDistance: Number.POSITIVE_INFINITY,
@@ -1664,4 +1747,45 @@
         "lat": Cesium.Math.toDegrees(cartographic.latitude)
      }
   }, "4");
}
function drawAjaxText(drawEntity){//加载标签
   let cartesian = Cesium.Cartesian3.fromDegrees(drawEntity.longitude, drawEntity.latitude, drawEntity.height);
   var cartographic = Cesium.Cartographic.fromCartesian(cartesian);
   var entity=viewer.entities.add({
      id:drawEntity.id,
      name:"drawTextEtity",
      position:cartesian,
      label: {
         text: drawEntity.content?drawEntity.content:new Date(drawEntity.createTime).format("yyyyMMddhhmmss"),
         font: drawEntity.fontsize+'px '+drawEntity.fontstyle,
         fillColor:  drawEntity.color?Cesium.Color.fromCssColorString(drawEntity.color):Cesium.Color.WHITE,
         outlineColor: Cesium.Color.BLACK,
         outlineWidth: 2,
         style: Cesium.LabelStyle.FILL_AND_OUTLINE,
         verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
         horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
         disableDepthTestDistance: Number.POSITIVE_INFINITY,
         heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
         distanceDisplayCondition: window.localStorage.getItem("visualDistance")?new Cesium.DistanceDisplayCondition(0, window.localStorage.getItem("visualDistance")):new Cesium.DistanceDisplayCondition(0, 100000.0)
      },
   });
   if(drawEntity.content!=null&&drawEntity.content!=""){
      entity.title=drawEntity.content;
   }
   else{
      entity.title =  "标签" + new Date(drawEntity.createTime).format("yyyyMMddhhmmss");
   }
   addTreeNode({
      "title": entity.title,
      "id": entity.id,
      "field": "Entity",
      "checked": true,
      "spread": true,
      "children": [],
      "ext": {
         "lng": Cesium.Math.toDegrees(cartographic.longitude),
         "lat": Cesium.Math.toDegrees(cartographic.latitude)
      }
   }, "4");
}