diff --git a/src/Global/efflect/Sunshine/index.js b/src/Global/efflect/Sunshine/index.js index 115d39a..a069c6d 100644 --- a/src/Global/efflect/Sunshine/index.js +++ b/src/Global/efflect/Sunshine/index.js @@ -98,6 +98,7 @@ export default class Sunshine { } if (state) { + let _this = this this._DialogObject = await new Dialog(this.sdk, this.originalOptions, { title: '光照属性', left: '180px', top: '100px', confirmCallBack: (options) => { @@ -106,6 +107,7 @@ export default class Sunshine { this.Dialog.confirmCallBack && this.Dialog.confirmCallBack(this.originalOptions) syncData(this.sdk, this.options.id) syncSplitData(this.sdk, this.options.id) + this.remove() }, resetCallBack: () => { this.reset() @@ -116,6 +118,7 @@ export default class Sunshine { // }, closeCallBack: () => { this.reset() + _this.remove() // this.entity.style = new Cesium.Cesium3DTileStyle({ // color: "color('rgba(255,255,255," + this.newData.transparency + ")')", // show: true, diff --git a/src/Obj/Base/FlowLine/index.js b/src/Obj/Base/FlowLine/index.js index f972e23..604f91b 100644 --- a/src/Obj/Base/FlowLine/index.js +++ b/src/Obj/Base/FlowLine/index.js @@ -40,6 +40,7 @@ class FlowLine extends Base { this.options.duration = options.duration || 10.0 this.options.color = options.color || "rgba(255,255,255,1)" this.options.lineBackAlpha = options.lineBackAlpha || 0.05 + this.options.positions = options.positions || [] this.options.show = (options.show || options.show === false) ? options.show : true this.Dialog = _Dialog this._EventBinding = new EventBinding() @@ -47,7 +48,8 @@ class FlowLine extends Base { this.positionArea = [] this.positions = [] this.sdk.addIncetance(this.options.id, this) - FlowLine.create(this) + // FlowLine.create(this) + FlowLine.drawLine(this) } // 创建水面 @@ -68,6 +70,13 @@ class FlowLine extends Base { that.edit(true) }) } + static drawLine(that) { + that.positionArea = that.options.positions + let posis = that.getRandomPointsInCesiumPolygon(that.options.positions, that.options.pointNumber) + that.positions = posis + that.getLine(that, posis) + // that.edit(true) + } getRandomPointsInCesiumPolygon(positions, count) { let lons = [], lats = [], posi = [] positions.forEach(item => { diff --git a/src/Obj/Base/PolylineObject/index.js b/src/Obj/Base/PolylineObject/index.js index c1686e2..e474b08 100644 --- a/src/Obj/Base/PolylineObject/index.js +++ b/src/Obj/Base/PolylineObject/index.js @@ -58,8 +58,8 @@ class PolylineObject extends Base { this.options.smooth = options.smooth || false this.options.extend = options.extend || false this.options.rotate = options.rotate || true - this.options.space = options.space || 0.1 - this.options.speed = options.speed || 1 + this.options.space = options.space || 1 + this.options.speed = options.speed || 10 this.options.dashSize = options.dashSize || 0.03 this.options['length-unit'] = options['length-unit'] || '米' this.options['fit-length-unit'] = options['fit-length-unit'] || '米' @@ -335,9 +335,13 @@ class PolylineObject extends Base { this._elms.lineWidth.forEach(item => { item.value = this.options.width }) - this.entity && - this.entity.polyline && - (this.entity.polyline.width = this.options.width) + if (this.entity && this.entity.polyline) { + this.entity.polyline.width = this.entity.polyline.width + v - this.entity.polyline.oriWidth + this.entity.polyline.oriWidth = this.options.width + } + // this.entity && + // this.entity.polyline && + // (this.entity.polyline.width = this.options.width) && (this.entity.polyline.oriWidth = this.options.width) } get lineType() { @@ -1316,6 +1320,7 @@ class PolylineObject extends Base { zIndex: that.sdk._entityZIndex } }) + that.entity.polyline.oriWidth = that.options.width that.sdk._entityZIndex++ PolylineObject.createLabel(that) // that.entity.polyline.positionsLngLat = positions diff --git a/src/Obj/Materail/LineTextureMaterialProperty.js b/src/Obj/Materail/LineTextureMaterialProperty.js index 5bed3ec..70afe5a 100644 --- a/src/Obj/Materail/LineTextureMaterialProperty.js +++ b/src/Obj/Materail/LineTextureMaterialProperty.js @@ -12,7 +12,7 @@ function LineTexture() { this.image = options.image || ""; this.color = new Cesium.Color.fromCssColorString(options.color || "rgba(255,255,255,1)"); this.speed = options.speed != undefined ? options.speed : 1.0; - this.repeat = options.repeat || 1.0; + this.repeat = options.repeat || new Cesium.Cartesian2(1.0, 1.0); } get isConstant() { @@ -52,7 +52,7 @@ function LineTexture() { result.repeat = Cesium.Property.getValueOrDefault( this._repeat, time, - 1.0, + new Cesium.Cartesian2(1.0, 1.0), result.repeat ); result.frameNumber = Cesium.getTimestamp(); @@ -85,14 +85,14 @@ function LineTexture() { uniform vec4 color; uniform sampler2D image; uniform float speed; - uniform float repeat; + // uniform float repeat; czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); vec2 st = materialInput.st; - st.s *= repeat; // 关键:通过repeat控制纹理密度 + st.s *= repeat.x; // 关键:通过repeat控制纹理密度 // vec4 colorImage = texture2D(image, vec2(fract(st.s + speed*czm_frameNumber* 0.01), st.t)); - vec4 colorImage = speed==0.0?texture2D(image, vec2(fract(st.s), st.t)):texture2D(image, vec2(fract(st.s + frameNumber / 1000.0 / speed * repeat ), st.t)); + vec4 colorImage = speed==0.0?texture2D(image, vec2(fract(st.s), st.t)):texture2D(image, vec2(fract(st.s + frameNumber / 1000.0 / speed * repeat.x / repeat.y ), st.t)); material.alpha = colorImage.a * color.a; material.diffuse = color.rgb; return material; @@ -106,7 +106,7 @@ function LineTexture() { uniforms: { color: new Cesium.Color(1.0, 1.0, 1.0, 1.0), image: '', - repeat: 1.0, + repeat: new Cesium.Cartesian2(1.0, 1.0), speed: 1.0, frameNumber: Cesium.getTimestamp(), uTime: 1 diff --git a/src/Tools/index.js b/src/Tools/index.js index 3d74663..dc707b1 100644 --- a/src/Tools/index.js +++ b/src/Tools/index.js @@ -587,8 +587,6 @@ class Tools { getMaterial(color = '#2ab0c2', type = 0, entity = null, newParam = {}) { let material = '' - - switch (Number(type)) { case 1: //虚线 @@ -647,7 +645,18 @@ class Tools { space: newParam.space, speed: newParam.speed } + let arr = { + '7': 10, + '8': 3, + '9': 4, + '10': 4, + '11': 4, + '12': 2 + } param.speed = newParam.rotate ? param.speed : 0 - param.speed + console.log(entity.polyline.oriWidth, arr[type + ''], type, 'oriWidth') + entity.polyline.width = entity.polyline.oriWidth + arr[type + ''] + this.getFlowTexture(this, param, entity) break @@ -684,6 +693,8 @@ class Tools { // let repeat = getRepeat() // }, false) + entity.polyline.material.oriRepeat = undefined + entity.polyline.material.oriSpeed = undefined entity.polyline.material = new Cesium.LineTextureMaterialProperty( { color: options.color, @@ -697,8 +708,8 @@ class Tools { var positions = positionProperty.getValue(that.sdk.viewer.clock.currentTime); if (!Cesium.defined(positions)) { - // return new Cesium.Cartesian2(1.0, 1.0); - return 1.0; + return new Cesium.Cartesian2(1.0, 1.0); + // return 1.0; } var distance = 0; @@ -722,14 +733,21 @@ class Tools { var groundResolution = that.sdk.viewer.scene.camera.getPixelSize(boundingSphere, drawingBufferWidth, drawingBufferHeight) // repeatX *= groundResolution / cameraHeight / ((myImg.width / myImg.height * 5) + 1); repeatX *= groundResolution / cameraHeight / (options.space * (canvasEle.width / canvasEle.height * 5) + 1); + let speed + if (entity.polyline.material.oriRepeat) { + speed = repeatX / entity.polyline.material.oriRepeat + } else { + entity.polyline.material.oriRepeat = repeatX + } // if (repeatX < 3) { // repeatX = 3 // } - // return new Cesium.Cartesian2(repeatX, 1.0); - return repeatX; + return new Cesium.Cartesian2(repeatX, speed || 1.0); + // return repeatX; }) } ) + entity.polyline.material.oriSpeed = options.speed } } diff --git a/static/img/arrow/1.png b/static/img/arrow/1.png index 650bc1f..62d84a0 100644 Binary files a/static/img/arrow/1.png and b/static/img/arrow/1.png differ diff --git a/static/img/arrow/11.png b/static/img/arrow/11.png new file mode 100644 index 0000000..650bc1f Binary files /dev/null and b/static/img/arrow/11.png differ diff --git a/static/img/arrow/2.png b/static/img/arrow/2.png index a92774d..b20bf3f 100644 Binary files a/static/img/arrow/2.png and b/static/img/arrow/2.png differ diff --git a/static/img/arrow/222.png b/static/img/arrow/222.png new file mode 100644 index 0000000..a92774d Binary files /dev/null and b/static/img/arrow/222.png differ diff --git a/static/img/arrow/3.png b/static/img/arrow/3.png index ffd053d..7da948e 100644 Binary files a/static/img/arrow/3.png and b/static/img/arrow/3.png differ diff --git a/static/img/arrow/33.png b/static/img/arrow/33.png new file mode 100644 index 0000000..ffd053d Binary files /dev/null and b/static/img/arrow/33.png differ diff --git a/static/img/arrow/4.png b/static/img/arrow/4.png index b3cbe70..935d8ab 100644 Binary files a/static/img/arrow/4.png and b/static/img/arrow/4.png differ diff --git a/static/img/arrow/44.png b/static/img/arrow/44.png new file mode 100644 index 0000000..b3cbe70 Binary files /dev/null and b/static/img/arrow/44.png differ diff --git a/static/img/arrow/5.png b/static/img/arrow/5.png index 374af4a..bd1fa7f 100644 Binary files a/static/img/arrow/5.png and b/static/img/arrow/5.png differ diff --git a/static/img/arrow/55.png b/static/img/arrow/55.png new file mode 100644 index 0000000..374af4a Binary files /dev/null and b/static/img/arrow/55.png differ diff --git a/static/img/arrow/6.png b/static/img/arrow/6.png index eca7083..7eb7923 100644 Binary files a/static/img/arrow/6.png and b/static/img/arrow/6.png differ