@kq_npm/client3d_webgl_vue
Version:
KQGIS Client3D for Vue.js
1 lines • 15.7 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("vue"),require("@kq_npm/client_common_vue/_utils/gis-utils"),require("@kq_npm/client_common_vue/init.js"),require("@kq_npm/client_common_vue/_utils/util")):"function"==typeof define&&define.amd?define("@kq_npm/client3d_webgl_vue",["vue","@kq_npm/client_common_vue/_utils/gis-utils","@kq_npm/client_common_vue/init.js","@kq_npm/client_common_vue/_utils/util"],t):"object"==typeof exports?exports["@kq_npm/client3d_webgl_vue"]=t(require("vue"),require("@kq_npm/client_common_vue/_utils/gis-utils"),require("@kq_npm/client_common_vue/init.js"),require("@kq_npm/client_common_vue/_utils/util")):e["@kq_npm/client3d_webgl_vue"]=t(e.Vue,e["@kq_npm/client_common_vue/_utils/gis-utils"],e["@kq_npm/client_common_vue/init.js"],e["@kq_npm/client_common_vue/_utils/util"])}(this,(function(e,t,i,l){return function(){"use strict";var o={1705:function(e,t,i){var l=i(9389),o=i(7997),s=i.n(o);l.ElMessage.install=(e,t)=>{s()(e,t),e.component("KqMessage",l.ElMessage)},t.Z=l.ElMessage},348:function(e){e.exports=require("@kq_npm/client_icons_vue")},9389:function(e){e.exports=require("element-plus/dist/index.full.js")},7080:function(e){e.exports=require("vue-i18n/dist/vue-i18n.cjs.js")},7135:function(e){e.exports=t},3458:function(e){e.exports=l},7997:function(e){e.exports=i},1895:function(t){t.exports=e}},s={};function n(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return o[e](i,i.exports,n),i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};return function(){n.r(a),n.d(a,{SkylineAnalysisViewModel:function(){return l},default:function(){return p}});var e=n(1895),t=n(7135),i=n(1705);class l{_skylineAnalysis=null;_skylineAnalysisChart=null;_skylineAnalysisChartTitle="";_options=null;_showLimitHeightBody=null;_chartStyle=null;_language={};constructor(e,t,i){this._language=e._language,this._chartStyle=i;let l=e._viewer;l.scene.globe.depthTestAgainstTerrain=!0,l.scene.postProcessStages._fxaa.enabled=!0,this._options={viewer:l,lineColor:window.Cesium.Color.fromCssColorString(t.skylineColor),faceColor:window.Cesium.Color.fromCssColorString(t.limitHeightBodyColor).withAlpha(t.limitHeightBodyAlpha),faceOutlineColor:window.Cesium.Color.fromCssColorString("#E6A23C").withAlpha(0),lineWidth:t.skylineWidth,radius:t.skylineRadius},t.viewPosition&&(this._options.viewPosition=t.viewPosition),t.heading&&(this._options.heading=t.heading),t.pitch&&(this._options.pitch=t.pitch),t.roll&&(this._options.viewPosition=t.roll),t.fov&&(this._options.fov=t.fov),this._skylineAnalysis=new window.Cesium.Kq3dSkyline(this._options)}pickSkyLine(){var e=!1,t=this._options.viewer.scene.primitives._primitives;for(let i=0;i<t.length;i++)t[i]._url&&(e=!0);e?(this._skylineAnalysis&&!this._skylineAnalysis.isDestroyed()||(this._skylineAnalysis=new window.Cesium.Kq3dSkyline(this._options)),this._skylineAnalysis.updateBuffer(),this._skylineAnalysis.pickSkyLine(),this.setSkyline2D()):(0,i.Z)({message:this._language.addModelExtractionTips,type:"warning"})}drawLimitHeightBody(){var e=!1,t=this._options.viewer.scene.primitives._primitives;for(let i=0;i<t.length;i++)t[i]._url&&(e=!0);e?(this._skylineAnalysis&&!this._skylineAnalysis.isDestroyed()||(this._skylineAnalysis=new window.Cesium.Kq3dSkyline(this._options)),this._showLimitHeightBody=!0,this._skylineAnalysis.faceColor=this._options.faceColor,this._skylineAnalysis.faceOutlineColor=this._options.faceOutlineColor,this._skylineAnalysis.drawHeightGeo(),this._skylineAnalysis.viewer.camera.moveBackward(1)):(0,i.Z)({message:this._language.addModelExtractionTips,type:"warning"})}setSkyline2D(){let e=this._chartStyle;if(this._skylineAnalysis){var t=this._skylineAnalysis.updateBuffer(),i={title:{text:this._skylineAnalysisChartTitle,textStyle:{color:e.textColor}},tooltip:{trigger:"axis",backgroundColor:e.backgroundColor,borderWidth:0,textStyle:{color:e.textColor}},grid:{containLabel:!0,left:"10px",top:"50px",right:"10px",bottom:"5px"},calculable:!0,xAxis:[{type:"category",boundaryGap:!1,data:t.x,show:!1}],yAxis:[{type:"value",min:0,max:1,axisLabel:{color:e.textColor}}],series:[{name:"",type:"line",data:t.y}]};this._skylineAnalysisChart&&this._skylineAnalysisChart.setOption(i)}}setChartStyle(e){if(this._chartStyle=e,this._skylineAnalysisChart){let t=this._skylineAnalysisChart.getOption();t.title[0].textStyle.color=e.textColor,t.tooltip[0].backgroundColor=e.backgroundColor,t.tooltip[0].textStyle.color=e.textColor,t.yAxis[0].axisLabel.color=e.textColor,this._skylineAnalysisChart.setOption(t)}}setChartTitle(e){if(this._skylineAnalysisChartTitle=e,this._skylineAnalysisChart){let t=this._skylineAnalysisChart.getOption();t.title[0].text=e,this._skylineAnalysisChart.setOption(t)}}removeLimitHeightBody(){this._showLimitHeightBody=!1,this._skylineAnalysis&&!this._skylineAnalysis.isDestroyed()&&(this._skylineAnalysis.removeAlllimitHeights(),this._skylineAnalysis.removeAllFaces(),this._skylineAnalysis.removeCzmlJsonDataSource())}setLineColor(e){e&&(this._options.lineColor=window.Cesium.Color.fromCssColorString(e),this._skylineAnalysis&&(this._skylineAnalysis.lineColor=this._options.lineColor))}setFaceColor(e,t){e&&(this._options.faceColor=window.Cesium.Color.fromCssColorString(e).withAlpha(t||1),this._skylineAnalysis&&this._showLimitHeightBody&&(this._skylineAnalysis.faceColor=this._options.faceColor))}setRadius(e){e&&(this._options.radius=e,this._skylineAnalysis&&(this._skylineAnalysis.radius=e))}setFaceColorAlpha(e,t){e&&(this._options.faceColor=window.Cesium.Color.fromCssColorString(e).withAlpha(t||1),this._skylineAnalysis&&this._showLimitHeightBody&&(this._skylineAnalysis.faceColor=this._options.faceColor))}setFaceOutlineColor(e,t){e&&(this._options.faceOutlineColor=window.Cesium.Color.fromCssColorString(e).withAlpha(t||1),this._skylineAnalysis&&this._showLimitHeightBody&&(this._skylineAnalysis.faceOutlineColor=this._options.faceOutlineColor))}clear(){this._showLimitHeightBody=!1,this._skylineAnalysis&&(this._skylineAnalysis.destroy(),this._skylineAnalysis=new window.Cesium.Kq3dSkyline(this._options))}destroy(){this._showLimitHeightBody=!1,this._skylineAnalysis&&(this._skylineAnalysis.destroy(),this._skylineAnalysis=null)}}var o=n(348),s=n(3458),r=n(7080),u=require("echarts");const d={class:"kq3d-skyline-analysis-box"},y={class:"kq3d-skyline-analysis-footer"},h={class:"kq3d-skyline-analysis-result"},m={key:0,id:"resultEcahrt",class:"resultEcahrt"},c={name:"Kq3dSkylineAnalysis"};var p=Object.assign(c,{props:{settingParams:{type:Object},showShadow:{type:Boolean,default:!0},position:[String,Object],showHeaderTemp:{type:Boolean,default:!1},isCollapseHeaderTemp:{type:Boolean,default:!1},headerTempTitle:{type:String},headerTempIcon:{type:[Object,String],default:o.IconSkylineAnalysis},isRight:{type:Boolean,default:!0}},setup(i,{expose:o}){const n=i,{proxy:a}=(0,e.getCurrentInstance)();let c=(0,e.ref)(a.$i18n.global.messages[a.$i18n.global.locale].webgl),p=null,f=(0,e.ref)(!1),_=(0,e.reactive)({collapseValue:n.settingParams&&n.settingParams.collapseValue||(""==(n.settingParams&&n.settingParams.collapseValue)?"":"setting"),skylineColor:n.settingParams&&n.settingParams.skylineColor||"#ff0000",skylineRadius:n.settingParams&&n.settingParams.skylineRadius||1e3,minSkylineRadius:n.settingParams&&n.settingParams.minSkylineRadius||0,maxSkylineRadius:n.settingParams&&n.settingParams.maxSkylineRadius||5e3,limitHeightBodyColor:n.settingParams&&n.settingParams.limitHeightBodyColor||"#e6a23c",limitHeightBodyAlpha:n.settingParams&&n.settingParams.limitHeightBodyAlpha||.7,minLimitHeightBodyAlpha:n.settingParams&&n.settingParams.minLimitHeightBodyAlpha||0,maxLimitHeightBodyAlpha:n.settingParams&&n.settingParams.maxLimitHeightBodyAlpha||1,skylineWidth:2}),k=(0,e.ref)(null),C=(0,e.ref)(),g=(0,e.ref)(),{locale:w,messages:x}=(0,r.useI18n)(),v=(0,e.ref)(null);v.value=c.value.skylineAnalysis,(0,e.watch)((()=>w.value),((e,t)=>{c.value=x.value[e].webgl,v.value=c.value.skylineAnalysis,p&&p.setChartTitle(c.value.skylineAnalysisChartTitle)})),(0,e.onMounted)((()=>{(0,s.updatePosition)(k.value,n),(0,e.watch)((()=>n.position),((e,t)=>{(0,s.updatePosition)(k.value,n)})),S(),(0,e.watch)((()=>n.showHeaderTemp),((t,i)=>{(0,e.nextTick)((()=>{S()}))})),t.utils.getWebMap(null,(e=>{e&&(p=new l(e,{skylineColor:_.skylineColor,skylineRadius:_.skylineRadius,limitHeightBodyColor:_.limitHeightBodyColor,limitHeightBodyAlpha:_.limitHeightBodyAlpha,skylineWidth:_.skylineWidth},B()),p._skylineAnalysisChartTitle=e._language.skylineAnalysisChartTitle)}))}));const A=new MutationObserver((e=>{for(let t of e)if("attributes"===t.type&&"class"===t.attributeName){let e=B();p.setChartStyle(e)}})),V=document.querySelector("html");A.observe(V,{attributes:!0});const B=()=>{let e={};return"dark"===window.getComputedStyle(document.documentElement).getPropertyValue("color-scheme")?(e.textColor="#fff",e.backgroundColor="#2A2A2A"):(e.textColor="#333",e.backgroundColor="#ffffff"),e},S=()=>{n.showHeaderTemp&&(C.value=(0,s.createHeaderTemp)(k.value,(0,e.toRefs)(n),g,v))};function b(){f.value=!0,setTimeout((()=>{p._skylineAnalysisChart=u.init(document.getElementById("resultEcahrt")),p&&p.pickSkyLine()}),500)}function H(){p&&p.drawLimitHeightBody()}function q(){p&&p.removeLimitHeightBody()}function N(){f.value=!1,p&&p.clear()}function L(){p&&p.setLineColor(_.skylineColor)}function P(){p&&p.setFaceColor(_.limitHeightBodyColor,_.limitHeightBodyAlpha)}function T(){p&&p.setRadius(_.skylineRadius)}function R(){p&&p.setFaceColorAlpha(_.limitHeightBodyColor,_.limitHeightBodyAlpha)}return(0,e.onBeforeUnmount)((()=>{f.value=!1,p&&p.destroy()})),o({pickSkyLine:b,drawLimitHeightBody:H,removeLimitHeightBody:q,onChangeSkylineColor:L,onChangeLimitHeightBodyColor:P,onChangeSkylineRadius:T,onChangeLimitHeightBodyAlpha:R,clearResult:N}),(t,l)=>{const o=(0,e.resolveComponent)("kq-color-picker"),s=(0,e.resolveComponent)("kq-form-item"),n=(0,e.resolveComponent)("kq-row"),a=(0,e.resolveComponent)("kq-slider"),r=(0,e.resolveComponent)("kq-col"),u=(0,e.resolveComponent)("kq-input-number"),p=(0,e.resolveComponent)("kq-form"),w=(0,e.resolveComponent)("kq-collapse-item"),x=(0,e.resolveComponent)("kq-collapse"),v=(0,e.resolveComponent)("kq-button");return(0,e.openBlock)(),(0,e.createElementBlock)("section",{class:(0,e.normalizeClass)(["kq3d-skyline-analysis",{"kq-box-shadow":i.showShadow}]),ref_key:"boxRef",ref:k},[i.showHeaderTemp?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(C)),{key:0,ref_key:"headerTempRef",ref:g},null,512)):(0,e.createCommentVNode)("v-if",!0),(0,e.createElementVNode)("div",d,[(0,e.createVNode)(x,{"model-value":(0,e.unref)(_).collapseValue,class:"kq3d-skyline-analysis-collapse"},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(w,{title:(0,e.unref)(c).analysisSettings,name:"setting"},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(p,{"label-width":"120px","label-position":"left"},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(n,null,{default:(0,e.withCtx)((()=>[(0,e.createVNode)(s,{label:(0,e.unref)(c).skylineColor},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(o,{modelValue:(0,e.unref)(_).skylineColor,"onUpdate:modelValue":l[0]||(l[0]=t=>(0,e.unref)(_).skylineColor=t),onChange:L},null,8,["modelValue"])])),_:1},8,["label"])])),_:1}),(0,e.createVNode)(n,null,{default:(0,e.withCtx)((()=>[(0,e.createVNode)(s,{label:(0,e.unref)(c).skylineRadius},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(n,{style:{display:"flex"}},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(r,{span:16},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(a,{modelValue:(0,e.unref)(_).skylineRadius,"onUpdate:modelValue":l[1]||(l[1]=t=>(0,e.unref)(_).skylineRadius=t),step:100,min:(0,e.unref)(_).minSkylineRadius,max:(0,e.unref)(_).maxSkylineRadius,onInput:T},null,8,["modelValue","min","max"])])),_:1}),(0,e.createVNode)(r,{span:8},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(u,{modelValue:(0,e.unref)(_).skylineRadius,"onUpdate:modelValue":l[2]||(l[2]=t=>(0,e.unref)(_).skylineRadius=t),min:(0,e.unref)(_).minSkylineRadius,step:100,max:(0,e.unref)(_).maxSkylineRadius,"controls-position":"right"},null,8,["modelValue","min","max"])])),_:1})])),_:1})])),_:1},8,["label"])])),_:1}),(0,e.createVNode)(n,null,{default:(0,e.withCtx)((()=>[(0,e.createVNode)(s,{label:(0,e.unref)(c).limitHeightBodyColor},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(o,{modelValue:(0,e.unref)(_).limitHeightBodyColor,"onUpdate:modelValue":l[3]||(l[3]=t=>(0,e.unref)(_).limitHeightBodyColor=t),onChange:P},null,8,["modelValue"])])),_:1},8,["label"])])),_:1}),(0,e.createVNode)(n,null,{default:(0,e.withCtx)((()=>[(0,e.createVNode)(s,{label:(0,e.unref)(c).limitHeightBodyAlpha},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(n,{style:{display:"flex"}},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(r,{span:16},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(a,{modelValue:(0,e.unref)(_).limitHeightBodyAlpha,"onUpdate:modelValue":l[4]||(l[4]=t=>(0,e.unref)(_).limitHeightBodyAlpha=t),step:.1,min:(0,e.unref)(_).minLimitHeightBodyAlpha,max:(0,e.unref)(_).maxLimitHeightBodyAlpha,onInput:R},null,8,["modelValue","step","min","max"])])),_:1}),(0,e.createVNode)(r,{span:8},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(u,{modelValue:(0,e.unref)(_).limitHeightBodyAlpha,"onUpdate:modelValue":l[5]||(l[5]=t=>(0,e.unref)(_).limitHeightBodyAlpha=t),min:(0,e.unref)(_).minLimitHeightBodyAlpha,step:.1,max:(0,e.unref)(_).maxLimitHeightBodyAlpha,"controls-position":"right"},null,8,["modelValue","min","step","max"])])),_:1})])),_:1})])),_:1},8,["label"])])),_:1})])),_:1})])),_:1},8,["title"])])),_:1},8,["model-value"]),(0,e.createElementVNode)("div",y,[(0,e.createVNode)(n,{gutter:20,class:"btnClass"},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(r,{span:12},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(v,{onClick:l[6]||(l[6]=(0,e.withModifiers)((e=>b()),["stop"])),title:(0,e.unref)(c).pickSkyLine,type:"primary"},{default:(0,e.withCtx)((()=>[(0,e.createTextVNode)((0,e.toDisplayString)((0,e.unref)(c).pickSkyLine),1)])),_:1},8,["title"])])),_:1}),(0,e.createVNode)(r,{span:12},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(v,{onClick:l[7]||(l[7]=(0,e.withModifiers)((e=>H()),["stop"])),title:(0,e.unref)(c).drawLimitHeightBody,type:"primary"},{default:(0,e.withCtx)((()=>[(0,e.createTextVNode)((0,e.toDisplayString)((0,e.unref)(c).drawLimitHeightBody),1)])),_:1},8,["title"])])),_:1})])),_:1}),(0,e.createVNode)(n,{gutter:20},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(r,{span:12},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(v,{onClick:l[8]||(l[8]=(0,e.withModifiers)((e=>q()),["stop"])),title:(0,e.unref)(c).removeLimitHeightBody},{default:(0,e.withCtx)((()=>[(0,e.createTextVNode)((0,e.toDisplayString)((0,e.unref)(c).removeLimitHeightBody),1)])),_:1},8,["title"])])),_:1}),(0,e.createVNode)(r,{span:12},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(v,{onClick:l[9]||(l[9]=(0,e.withModifiers)((e=>N()),["stop"])),title:(0,e.unref)(c).clearResult},{default:(0,e.withCtx)((()=>[(0,e.createTextVNode)((0,e.toDisplayString)((0,e.unref)(c).clearResult),1)])),_:1},8,["title"])])),_:1})])),_:1})]),(0,e.createElementVNode)("div",h,[(0,e.unref)(f)?((0,e.openBlock)(),(0,e.createElementBlock)("div",m)):(0,e.createCommentVNode)("v-if",!0)])])],2)}}}),f=n(7997),_=n.n(f);p.install=(e,t)=>{_()(e,t),e.component(p.name,p)}}(),a}()}));