From 00b733dc6ae372be365a01046ead5c062d8f5617 Mon Sep 17 00:00:00 2001
From: ansel0926 <ansel0926@gmail.com>
Date: 星期二, 17 五月 2022 18:43:44 +0800
Subject: [PATCH] 更换字体图片
---
view/project/drawPlot.html | 14 ++++
assets/service/drawService.js | 15 +++++
view/project/editLine.html | 8 +-
assets/images/icon/icon1.png | 0
libs/Cesiumplus/CesiumDraw.js | 45 +++++++++++++++
assets/map/map3D.js | 65 ++++++++++++++++++++-
6 files changed, 136 insertions(+), 11 deletions(-)
diff --git a/assets/images/icon/icon1.png b/assets/images/icon/icon1.png
index c2381f1..1d8f8bd 100644
--- a/assets/images/icon/icon1.png
+++ b/assets/images/icon/icon1.png
Binary files differ
diff --git a/assets/map/map3D.js b/assets/map/map3D.js
index 2113bfa..269e21d 100644
--- a/assets/map/map3D.js
+++ b/assets/map/map3D.js
@@ -294,7 +294,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);
}
});
}
@@ -982,8 +983,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 +1434,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 +1457,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 +1616,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 +1670,53 @@
"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,
+ //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,
+ 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)
+ },
+ });
+ let popup = new Popup({
+ viewer:viewer,
+ geometry:cartesian,
+ entity:entity,
+ id: "pop_" + entity.id,
+ type:'label',
+ content:drawEntity.popContent?drawEntity.popContent:null,
+ })
+ if( drawEntity.popContent!=null&& drawEntity.popContent!=""){
+ $("#pop_" + entity.id).children(".bx-popup-content-ctn").children(".bx-popup-content").children(".textarea")[0].innerHTML = drawEntity.popContent;
+ }
+ document.getElementById("pop_" +entity.id).style.display="none";
+ 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");
}
\ No newline at end of file
diff --git a/assets/service/drawService.js b/assets/service/drawService.js
index d603cd7..6ac310c 100644
--- a/assets/service/drawService.js
+++ b/assets/service/drawService.js
@@ -44,6 +44,21 @@
CesiumDraw.drawLabel(options);
}
+function drawText(text) {
+ var options = {
+ 'viewer': viewer,
+ 'label': {
+ 'text': text,
+ 'font': '30px SimSun',
+ 'fillColor': Cesium.Color.RED,
+ 'outlineColor': Cesium.Color.BLACK,
+ 'outlineWidth': 2,
+ 'style': Cesium.LabelStyle.FILL_AND_OUTLINE,
+ 'scaleByDistance': new Cesium.NearFarScalar(100, 1.0, 200, 0.4)
+ },
+ }
+ CesiumDraw.drawText(options);
+}
function clearDraw() {
var options = {
'viewer': viewer, //鍏ㄥ眬Cesium瀵硅薄
diff --git a/libs/Cesiumplus/CesiumDraw.js b/libs/Cesiumplus/CesiumDraw.js
index 71b3880..f9a7cf9 100644
--- a/libs/Cesiumplus/CesiumDraw.js
+++ b/libs/Cesiumplus/CesiumDraw.js
@@ -475,6 +475,7 @@
//鑾峰彇榧犳爣鐐瑰嚮澶勭殑鍧愭爣
drawHandler = drawHandler && drawHandler.destroy();
let position = viewer.scene.camera.pickEllipsoid(movement.position, viewer.scene.globe.ellipsoid);
+ position = viewer.scene.pickPosition(movement.position);
let pointText="鐐�" + new Date().format("yyyyMMddhhmmss");
var entity=viewer.entities.add({
name:"drawPointEntity",
@@ -486,6 +487,7 @@
font: '10px SimSun',
fillColor: Cesium.Color.WHITE,
text: pointText,
+ eyeOffset:new Cesium.Cartesian3(0,20,0),
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)
@@ -535,6 +537,7 @@
//鑾峰彇榧犳爣鐐瑰嚮澶勭殑鍧愭爣
drawHandler = drawHandler && drawHandler.destroy();
let position = viewer.scene.camera.pickEllipsoid(movement.position, viewer.scene.globe.ellipsoid);
+ position = viewer.scene.pickPosition(movement.position);
let labelText="鏂囧瓧" + new Date().format("yyyyMMddhhmmss");
var entity=viewer.entities.add({
name:"drawLabelEntity",
@@ -546,6 +549,7 @@
font: '30px SimSun',
fillColor: Cesium.Color.WHITE,
text: labelText,
+ eyeOffset:new Cesium.Cartesian3(0,20,0),
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)
@@ -588,6 +592,47 @@
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
}
+ CesiumDraw.drawText = function (options) {
+ drawHandler = drawHandler && drawHandler.destroy();
+ drawHandler = new Cesium.ScreenSpaceEventHandler(options.viewer.scene.canvas);
+ drawHandler.setInputAction(function (movement) {
+ let position = viewer.scene.pickPosition(movement.position);
+ let labelText="鏍囩" + new Date().format("yyyyMMddhhmmss");
+ var entity=viewer.entities.add({
+ name:"drawTextEtity",
+ position:position,
+ label: {
+ show: true,
+ verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
+ horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
+ font: '20px LiSu',
+ fillColor: Cesium.Color.YELLOW,
+ text: labelText,
+ eyeOffset:new Cesium.Cartesian3(0,20,0),
+ 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)
+ },
+ });
+ entity.title = labelText;
+ var cartesian = entity._position._value
+ addTreeNode({
+ "title": entity.title,
+ "id": entity.id,
+ "field": "Entity",
+ "checked": true,
+ "spread": true,
+ "children": [],
+ "ext": {
+ "lng": Cesium.Math.toDegrees(cartesian.x),
+ "lat": Cesium.Math.toDegrees(cartesian.y)
+ }
+ }, "4");
+ saveDrawEntity("text",entity,entity.id);
+ drawHandler = drawHandler && drawHandler.destroy();
+ }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
+ }
+
CesiumDraw.clearDraw = function (options) {
}
diff --git a/view/project/drawPlot.html b/view/project/drawPlot.html
index 3c4e612..45f27de 100644
--- a/view/project/drawPlot.html
+++ b/view/project/drawPlot.html
@@ -70,7 +70,7 @@
<div>
<img class="mapImg" src="../../assets/images/draw/鐐�.png">
</div>
- <div>鐐�</div>
+ <div>鍥剧墖鏍囪鐐�</div>
</li>
<li class="hover" onclick="drawplot('polyline')">
<div>
@@ -88,8 +88,14 @@
<div>
<img class="mapImg" src="../../assets/images/draw/鏂囧瓧.png">
</div>
- <div>鏂囧瓧</div>
+ <div>鏂囧瓧鏍囪鐐�</div>
</li>
+ <!-- <li class="hover" onclick="drawplot('text')">
+ <div>
+ <img class="mapImg" src="../../assets/images/draw/鏂囧瓧.png">
+ </div>
+ <div>鏍囩</div>
+ </li> -->
<!-- <li>
<input id="text" class="labelInput" type="text" placeholder="杈撳叆鏂囧瓧" autocomplete="off" />
</li> -->
@@ -121,6 +127,10 @@
parent.drawPolygon();
break;
}
+ case 'text':{
+ parent.drawText();
+ break;
+ }
}
}
</script>
diff --git a/view/project/editLine.html b/view/project/editLine.html
index a24e994..d49b670 100644
--- a/view/project/editLine.html
+++ b/view/project/editLine.html
@@ -134,7 +134,7 @@
</div>
<script>
var currentLineId
- function child(id,text,lineColor,lineSize,pick) {
+ function child(id,text,lineColor,lineSize,attributes) {
currentLineId=id
layui.use(['element', 'layer', 'form','colorpicker'], function () {
var element = layui.element;
@@ -146,19 +146,19 @@
color: lineColor,
size:'20px',
done: function (color) {
- parent.updateLine(2,currentLineId,color,pick);
+ parent.updateLine(2,currentLineId,color,attributes);
},
});
lineSize=parseInt(lineSize);
$("#lineSize").val(lineSize);
form.on("select(lineSize)", function (data) {
- parent.updateLine(3,currentLineId,data.value,pick);
+ parent.updateLine(3,currentLineId,data.value,attributes);
})
form.render();
});
}
function labelChange(e) {
- parent.updateLine(1,currentLineId,$("#input").val(),pick);
+ parent.updateLine(1,currentLineId,$("#input").val(),attributes);
}
</script>
--
Gitblit v1.9.1