From f0efddd9e32b9c5dc828401c4092be004b4826cf Mon Sep 17 00:00:00 2001
From: ansel0926 <ansel0926@gmail.com>
Date: 星期三, 18 五月 2022 12:05:08 +0800
Subject: [PATCH] 添加标签

---
 libs/Cesiumplus/CesiumDraw.js |   69 +++++++++++++++++++++++++++++++---
 1 files changed, 63 insertions(+), 6 deletions(-)

diff --git a/libs/Cesiumplus/CesiumDraw.js b/libs/Cesiumplus/CesiumDraw.js
index b649303..55a6c78 100644
--- a/libs/Cesiumplus/CesiumDraw.js
+++ b/libs/Cesiumplus/CesiumDraw.js
@@ -169,7 +169,8 @@
 					outlineColor: Cesium.Color.WHITE,
 					hierarchy: new Cesium.CallbackProperty(function () {
 						return polygon;
-					}, false)
+					}, false),
+					distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 10000000.0)
 				}
 			});
 
@@ -314,6 +315,7 @@
 					clampToGround: true,
 					width: 1,
 					material: options.polylinecolor,
+					distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 10000000.0)
 				},
 				drawpointArr: [],
 				measureLinePositonsArray: measureLinePositonsArray
@@ -473,20 +475,27 @@
 				//鑾峰彇榧犳爣鐐瑰嚮澶勭殑鍧愭爣
 				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",
 					position:position,
 					label: {
+						text: pointText,
 						show: true,
 						verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
 						horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
 						font: '10px SimSun',
 						fillColor: Cesium.Color.WHITE,
-						text: pointText,
+						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,
 						heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
-						distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 200000000.0)
+						distanceDisplayCondition: window.localStorage.getItem("visualDistance")?new Cesium.DistanceDisplayCondition(0, window.localStorage.getItem("visualDistance")):new Cesium.DistanceDisplayCondition(0, 100000.0)
 					},
 					billboard: {
 						image: "../assets/images/icon/icon1.png",
@@ -497,7 +506,7 @@
 						horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
 						disableDepthTestDistance: Number.POSITIVE_INFINITY,//骞垮憡鐗屼笉杩涜娣卞害妫�娴�
 						heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
-						distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 200000000.0)
+						distanceDisplayCondition: window.localStorage.getItem("visualDistance")?new Cesium.DistanceDisplayCondition(0, window.localStorage.getItem("visualDistance")):new Cesium.DistanceDisplayCondition(0, 100000.0)
 					}
 				});
 				entity.title =  pointText;
@@ -533,6 +542,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",
@@ -543,10 +553,14 @@
 						horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
 						font: '30px SimSun',
 						fillColor: Cesium.Color.WHITE,
+						outlineColor: Cesium.Color.BLACK,
+						outlineWidth: 2,
+						style: Cesium.LabelStyle.FILL_AND_OUTLINE,
 						text: labelText,
+						eyeOffset:new Cesium.Cartesian3(0,20,0),
 						disableDepthTestDistance: Number.POSITIVE_INFINITY,
 						heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
-						distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 200000000.0)
+						distanceDisplayCondition: window.localStorage.getItem("visualDistance")?new Cesium.DistanceDisplayCondition(0, window.localStorage.getItem("visualDistance")):new Cesium.DistanceDisplayCondition(0, 100000.0)
 					},
 					billboard: {
 						image: "../assets/images/icon/icon1.png",
@@ -557,7 +571,7 @@
 						horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
 						disableDepthTestDistance: Number.POSITIVE_INFINITY,//骞垮憡鐗屼笉杩涜娣卞害妫�娴�
 						heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
-						distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 200000000.0)
+						distanceDisplayCondition: window.localStorage.getItem("visualDistance")?new Cesium.DistanceDisplayCondition(0, window.localStorage.getItem("visualDistance")):new Cesium.DistanceDisplayCondition(0, 100000.0)
 					}
 				});
 				entity.title =  labelText;
@@ -586,6 +600,49 @@
 			}, 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,
+						outlineColor: Cesium.Color.BLACK,
+						outlineWidth: 2,
+						style: Cesium.LabelStyle.FILL_AND_OUTLINE,
+						text: labelText,
+						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) {
 
 		}

--
Gitblit v1.9.1