From 585932b46cb2dda666453a493f68cb47d3a5ccd5 Mon Sep 17 00:00:00 2001
From: ansel0926 <ansel0926@gmail.com>
Date: 星期二, 17 五月 2022 19:19:33 +0800
Subject: [PATCH] 提交
---
libs/Cesiumplus/CesiumDraw.js | 194 +++++++++++++++++++++++++++++++----------------
1 files changed, 127 insertions(+), 67 deletions(-)
diff --git a/libs/Cesiumplus/CesiumDraw.js b/libs/Cesiumplus/CesiumDraw.js
index 8ef7e66..55bc1f9 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
@@ -472,33 +474,51 @@
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 lng = Cesium.Math.toDegrees(cartographic.longitude);
- // var lat = Cesium.Math.toDegrees(cartographic.latitude);
- // var poiResult = lng + "," + lat + "," + height;
- // document.getElementById(options.printId).value = poiResult;
- // var drawPointEntity = options.viewer.entities.getById("drawPointEntity");
- // if(drawPointEntity == undefined){
- var entity = viewer.entities.add({
- name: 'drawPointEntity',
- position: cartesian.clone(),
- point: {
- color: options.pointcolor,
- pixelSize: 10,
- outlineColor: Cesium.Color.WHITE,
+ 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,
+ outlineColor: Cesium.Color.BLACK,
outlineWidth: 2,
- disableDepthTestDistance: Number.POSITIVE_INFINITY
+ 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: 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",
+ 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: window.localStorage.getItem("visualDistance")?new Cesium.DistanceDisplayCondition(0, window.localStorage.getItem("visualDistance")):new Cesium.DistanceDisplayCondition(0, 100000.0)
}
});
- entity.title = "鐐�" + new Date().format("yyyyMMddhhmmss");
+ entity.title = pointText;
+ var cartesian = entity._position._value
+ let popup = new Popup({
+ viewer:viewer,
+ geometry:cartesian,
+ entity:entity,
+ id: "pop_" + entity.id,
+ type:'image',
+ content:null,
+ })
addTreeNode({
"title": entity.title,
"id": entity.id,
@@ -507,63 +527,63 @@
"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("point",entity,entity.id);
}, 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);
+ position = viewer.scene.pickPosition(movement.position);
+ 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,
+ 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, 10000000000000.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",
+ 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: window.localStorage.getItem("visualDistance")?new Cesium.DistanceDisplayCondition(0, window.localStorage.getItem("visualDistance")):new Cesium.DistanceDisplayCondition(0, 100000.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,
@@ -572,11 +592,51 @@
"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);
+ }, 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);
}
--
Gitblit v1.9.1