Merge branch 'develop' of http://xny.yj-3d.com:3000/zh/sdk4.0 into develop

This commit is contained in:
2025-07-07 16:21:07 +08:00
18 changed files with 110 additions and 29 deletions

View File

@ -3,7 +3,7 @@ class BaseDialog {
this.container = container this.container = container
this.options = { ...options } this.options = { ...options }
this.options.ismove = true this.options.ismove = true
if(options.ismove === false) { if (options.ismove === false) {
this.options.ismove = options.ismove this.options.ismove = options.ismove
} }
this.closeCallBack = options.closeCallBack this.closeCallBack = options.closeCallBack
@ -12,7 +12,6 @@ class BaseDialog {
} }
async init() { async init() {
this.closeAll() this.closeAll()
DialogAll.push(this) DialogAll.push(this)
this.isDestroy = false this.isDestroy = false
@ -62,7 +61,7 @@ class BaseDialog {
}); });
} }
if(this.options.ismove) { if (this.options.ismove) {
this.moveDiv() this.moveDiv()
} }
} }
@ -92,7 +91,7 @@ class BaseDialog {
} }
closeAll() { closeAll() {
for(let i=DialogAll.length-1;i>=0;i--) { for (let i = DialogAll.length - 1; i >= 0; i--) {
DialogAll[i].close() DialogAll[i].close()
DialogAll.splice(i, 1) DialogAll.splice(i, 1)
} }
@ -187,6 +186,14 @@ class BaseDialog {
_this._element.body.style.bottom = 'unset' _this._element.body.style.bottom = 'unset'
_this._element.body.style.right = 'unset' _this._element.body.style.right = 'unset'
} }
//鼠标抬起事件
document.onmouseup = function (e) {
window.onmousemove = null
}
window.ondragend = function (e) {
window.onmousemove = null
}
} }
//鼠标抬起事件 //鼠标抬起事件

View File

@ -73,7 +73,7 @@ import { dialog as ContourDialog } from '../Global/Contour'
import { on as SplitScreenOn, off as SplitScreenOff, setActiveId as SplitScreenSetActiveId, getSdk } from '../Global/SplitScreen' import { on as SplitScreenOn, off as SplitScreenOff, setActiveId as SplitScreenSetActiveId, getSdk } from '../Global/SplitScreen'
import LocateCurrent from '../Obj/Base/LocateCurrent' import LocateCurrent from '../Obj/Base/LocateCurrent'
import { Clear as AnalysisClear } from '../Obj/Analysis/clear' import { AnalysisClear, SectionClear } from '../Obj/Analysis/clear'
import CutFillAnalysis from '../Obj/Analysis/CutFill' import CutFillAnalysis from '../Obj/Analysis/CutFill'
import Submerge from '../Obj/Analysis/Submerge' import Submerge from '../Obj/Analysis/Submerge'
import ViewShed from '../Obj/Analysis/ViewShed' import ViewShed from '../Obj/Analysis/ViewShed'
@ -390,7 +390,9 @@ if (!window.YJ) {
Section, Section,
TerrainExcavation, TerrainExcavation,
Flat, Flat,
Analyses: [] AnalysesResults: [],
SectionResults: [],
ClearSection: SectionClear
}, },
CoordTransform, CoordTransform,
RoutePlanningArrays: [], RoutePlanningArrays: [],

View File

@ -35,7 +35,7 @@ class CircleViewShed extends Tools {
this.Dialog = _Dialog this.Dialog = _Dialog
this._EventBinding = new EventBinding() this._EventBinding = new EventBinding()
this.html = null this.html = null
YJ.Analysis.Analyses.push(this) YJ.Analysis.AnalysesResults.push(this)
CircleViewShed.edit(this) CircleViewShed.edit(this)
// CircleViewShed.create(this) // CircleViewShed.create(this)
} }

View File

@ -44,7 +44,7 @@ class ContourAnalysis {
"#2F0000", "#2F0000",
]; //等高线赋值颜色内含default值 ]; //等高线赋值颜色内含default值
this.countorLineList = Cesium.defaultValue(options.countorLineList, []); this.countorLineList = Cesium.defaultValue(options.countorLineList, []);
YJ.Analysis.Analyses.push(this) YJ.Analysis.AnalysesResults.push(this)
this.createNewLine(); this.createNewLine();
} }
createNewLine() { createNewLine() {

View File

@ -27,7 +27,7 @@ class CutFillAnalysis {
} }
this.entities = [] this.entities = []
this.Draw = new DrawPolygon(this.sdk) this.Draw = new DrawPolygon(this.sdk)
YJ.Analysis.Analyses.push(this) YJ.Analysis.AnalysesResults.push(this)
CutFillAnalysis.EditBox(this) CutFillAnalysis.EditBox(this)
} }

View File

@ -15,7 +15,7 @@ class Profile extends Draw {
super(sdk) super(sdk)
this.viewer = sdk.viewer; this.viewer = sdk.viewer;
this.Dialog = _Dialog this.Dialog = _Dialog
YJ.Analysis.Analyses.push(this) YJ.Analysis.AnalysesResults.push(this)
Profile.create(this) Profile.create(this)
} }
static create(that) { static create(that) {

View File

@ -15,7 +15,7 @@ class Section extends Tools {
this.tiles3d = tiles3d this.tiles3d = tiles3d
this.options = { ...options } this.options = { ...options }
this.options.regionsType = this.options.regionsType || false this.options.regionsType = this.options.regionsType || false
// YJ.Analysis.Analyses.push(this) YJ.Analysis.SectionResults.push(this)
this.Planes = [] this.Planes = []
Section.start(this) Section.start(this)
} }

View File

@ -24,7 +24,7 @@ class SlopeAspect extends Tools {
this.result = []; //存储创建的坡度分析结果primitive集合 this.result = []; //存储创建的坡度分析结果primitive集合
this.handler = undefined; this.handler = undefined;
this.toolTip = ""; this.toolTip = "";
YJ.Analysis.Analyses.push(this) YJ.Analysis.AnalysesResults.push(this)
this.Draw = new DrawPolygon(this.sdk) this.Draw = new DrawPolygon(this.sdk)
// this.createNew4Distance() // this.createNew4Distance()
this.createNew4Num(50) this.createNew4Num(50)

View File

@ -26,7 +26,7 @@ class Submerge extends Tools {
this.status = true this.status = true
this.area = 0 this.area = 0
this._elms = {}; this._elms = {};
YJ.Analysis.Analyses.push(this) YJ.Analysis.AnalysesResults.push(this)
Submerge.EditBox(this) Submerge.EditBox(this)
// Submerge.create(this) // Submerge.create(this)
} }

View File

@ -56,7 +56,7 @@ class ViewShedStage extends Tools {
this.Dialog = _Dialog this.Dialog = _Dialog
this._EventBinding = new EventBinding() this._EventBinding = new EventBinding()
this.html = null this.html = null
YJ.Analysis.Analyses.push(this) YJ.Analysis.AnalysesResults.push(this)
ViewShedStage.edit(this) ViewShedStage.edit(this)
// ViewShedStage.edit(this) // ViewShedStage.edit(this)
// this.update(); // this.update();

View File

@ -50,7 +50,7 @@ class ViewShedStage extends Tools {
this.ids = [] this.ids = []
this.Dialog = _Dialog this.Dialog = _Dialog
this.html = null this.html = null
YJ.Analysis.Analyses.push(this) YJ.Analysis.AnalysesResults.push(this)
ViewShedStage.create(this) ViewShedStage.create(this)
// ViewShedStage.edit(this) // ViewShedStage.edit(this)
// this.update(); // this.update();

View File

@ -38,7 +38,7 @@ class ViewShedStage extends Tools {
this.viewpointPrimitive = null this.viewpointPrimitive = null
this.Dialog = _Dialog this.Dialog = _Dialog
this.html = null this.html = null
YJ.Analysis.Analyses.push(this) YJ.Analysis.AnalysesResults.push(this)
ViewShedStage.create(this) ViewShedStage.create(this)
} }

View File

@ -27,7 +27,7 @@ class VisibilityAnalysis extends Tools {
this.viewPointHeight = options.viewPointHeight this.viewPointHeight = options.viewPointHeight
this.Dialog = _Dialog this.Dialog = _Dialog
this._EventBinding = new EventBinding() this._EventBinding = new EventBinding()
YJ.Analysis.Analyses.push(this) YJ.Analysis.AnalysesResults.push(this)
VisibilityAnalysis.edit(this) VisibilityAnalysis.edit(this)
} }

View File

@ -1,8 +1,14 @@
function Clear() { function AnalysisClear() {
YJ.Analysis.Analyses.forEach(m => { YJ.Analysis.AnalysesResults.forEach(m => {
m.destroy() m.destroy()
}) })
// YJ.Analysis.Analyses = [] // YJ.Analysis.AnalysesResults = []
} }
export {Clear} function SectionClear() {
YJ.Analysis.SectionResults.forEach(m => {
m.destroy()
})
}
export {AnalysisClear, SectionClear}

View File

@ -50,7 +50,7 @@ class Test extends Tools {
this.ids = [] this.ids = []
this.Dialog = _Dialog this.Dialog = _Dialog
this.html = null this.html = null
YJ.Analysis.Analyses.push(this) YJ.Analysis.AnalysesResults.push(this)
Test.create(this) Test.create(this)
// Test.edit(this) // Test.edit(this)
// this.update(); // this.update();

View File

@ -231,7 +231,20 @@ class BillboardObject extends Base {
that._superGif = superGif that._superGif = superGif
that._superGif.id = id // 自定义id用于判断gif实例是否改变 that._superGif.id = id // 自定义id用于判断gif实例是否改变
superGif.load(function () { superGif.load(function (status) {
if (status == 404) {
canvas = document.createElement('canvas')
canvas.width = 0
canvas.height = 0
billboardH = 0
if (that.entity) {
that.entity.billboard.imgWidth = 0
that.entity.billboard.imgHeight = 0
that.entity.billboard.image = canvas
addCluster(that.sdk, that.entity)
}
return
}
if (that._superGif.id != id) { if (that._superGif.id != id) {
return return
} }
@ -286,6 +299,17 @@ class BillboardObject extends Base {
addCluster(that.sdk, that.entity) addCluster(that.sdk, that.entity)
} }
} }
image.onerror = function (err) {
canvas.width = 0
canvas.height = 0
billboardH = 0
if (that.entity) {
that.entity.billboard.imgWidth = 0
that.entity.billboard.imgHeight = 0
that.entity.billboard.image = canvas
addCluster(that.sdk, that.entity)
}
};
} }
that.entity = new Cesium.Entity({ that.entity = new Cesium.Entity({
@ -729,7 +753,24 @@ class BillboardObject extends Base {
let billboardH = 36 let billboardH = 36
let index = 0 let index = 0
_this._frameImages = [] _this._frameImages = []
superGif.load(function () { superGif.load(function (status) {
if (status == 404) {
canvas = document.createElement('canvas')
canvas.width = 0
canvas.height = 0
billboardH = 0
_this.entity.billboard.imgWidth = 0
_this.entity.billboard.imgHeight = 0
_this.entity && (_this.entity.billboard.image = canvas)
_this.entity.billboard.height = new Cesium.CallbackProperty(function () {
return 0
}, false)
_this.entity.label.pixelOffset = new Cesium.CallbackProperty(function () {
return new Cesium.Cartesian2(0, 0)
}, false)
billboardH = height * (31 / width)
return
}
if (_this._superGif.id != id) { if (_this._superGif.id != id) {
return return
} }
@ -802,6 +843,21 @@ class BillboardObject extends Base {
}, false) }, false)
billboardH = height * (31 / width) billboardH = height * (31 / width)
} }
image.onerror = function (err) {
canvas.width = 0
canvas.height = 0
billboardH = 0
_this.entity.billboard.imgWidth = 0
_this.entity.billboard.imgHeight = 0
_this.entity && (_this.entity.billboard.image = canvas)
_this.entity.billboard.height = new Cesium.CallbackProperty(function () {
return 0
}, false)
_this.entity.label.pixelOffset = new Cesium.CallbackProperty(function () {
return new Cesium.Cartesian2(0, 0)
}, false)
billboardH = height * (31 / width)
};
} }
} }
@ -2077,9 +2133,9 @@ class BillboardObject extends Base {
// ) // )
this.entity.label.pixelOffset = new Cesium.CallbackProperty(function () { this.entity.label.pixelOffset = new Cesium.CallbackProperty(function () {
if (_this.options.billboard.show) { if (_this.options.billboard.show) {
let billboardH = let billboardH = _this.entity.billboard.imgHeight ?
_this.entity.billboard.imgHeight * _this.entity.billboard.imgHeight *
(31 / _this.entity.billboard.imgWidth) (31 / _this.entity.billboard.imgWidth) : 0
return new Cesium.Cartesian2( return new Cesium.Cartesian2(
0, 0,
-billboardH * _this.options.billboard.scale - -billboardH * _this.options.billboard.scale -
@ -2224,7 +2280,7 @@ class BillboardObject extends Base {
.value .value
) { ) {
this.options.attribute.vr.content.push({ this.options.attribute.vr.content.push({
name: '全景图' , name: '全景图',
url: this._DialogObject._element.content.getElementsByClassName( url: this._DialogObject._element.content.getElementsByClassName(
'vr_add' 'vr_add'
)[0].value )[0].value
@ -2240,7 +2296,7 @@ class BillboardObject extends Base {
addAttributeRr(vr) { addAttributeRr(vr) {
this.options.attribute.vr.content.push({ this.options.attribute.vr.content.push({
name: '全景图' , name: '全景图',
url: vr url: vr
}) })
this.attributeVr = this.options.attribute.vr.content this.attributeVr = this.options.attribute.vr.content

View File

@ -926,8 +926,14 @@
get_current_frame: function() { return player.current_frame() }, get_current_frame: function() { return player.current_frame() },
load_url: function(src,callback){ load_url: function(src,callback){
if (!load_setup(callback)) return; if (!load_setup(callback)) return;
var h = new XMLHttpRequest(); var h = new XMLHttpRequest();
h.onreadystatechange = function() {
if (h.readyState == 4) {
if (h.status == 404) {
callback(404)
}
}
};
// new browsers (XMLHttpRequest2-compliant) // new browsers (XMLHttpRequest2-compliant)
h.open('GET', src, true); h.open('GET', src, true);

View File

@ -1599,6 +1599,10 @@
width: 23px; width: 23px;
height: 26px; height: 26px;
cursor: pointer; cursor: pointer;
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.2);
display: flex;
align-items: center;
justify-content: center;
} }
.YJ-custom-base-dialog.billboard-object>.content div .image { .YJ-custom-base-dialog.billboard-object>.content div .image {