@kq_npm/client3d_webgl_vue
Version:
KQGIS Client3D for Vue.js
1 lines • 18.4 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/_utils/const-image"),require("@kq_npm/client_common_vue/_utils/util"),require("@kq_npm/client_common_vue/init.js")):"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/_utils/const-image","@kq_npm/client_common_vue/_utils/util","@kq_npm/client_common_vue/init.js"],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/_utils/const-image"),require("@kq_npm/client_common_vue/_utils/util"),require("@kq_npm/client_common_vue/init.js")):e["@kq_npm/client3d_webgl_vue"]=t(e.Vue,e["@kq_npm/client_common_vue/_utils/gis-utils"],e["@kq_npm/client_common_vue/_utils/const-image"],e["@kq_npm/client_common_vue/_utils/util"],e["@kq_npm/client_common_vue/init.js"])}(this,(function(e,t,i,o,l){return function(){"use strict";var n={6868:function(e,t,i){var o=i(3645),l=i.n(o)()((function(e){return e[1]}));l.push([e.id,".coord-sightline{background:rgba(42,42,42,.8);border-radius:4px;padding:5px;color:#edffff;font-size:15px}.coord-sightline .triangle{display:block;height:16px;width:16px;background-color:inherit;border:inherit;position:absolute;bottom:-8px;left:calc(50% - 8px);clip-path:polygon(0% 0%, 100% 100%, 0% 100%);transform:rotate(-45deg)}",""]),t.Z=l},3645:function(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var i=e(t);return t[2]?"@media ".concat(t[2]," {").concat(i,"}"):i})).join("")},t.i=function(e,i,o){"string"==typeof e&&(e=[[null,e,""]]);var l={};if(o)for(var n=0;n<this.length;n++){var s=this[n][0];null!=s&&(l[s]=!0)}for(var r=0;r<e.length;r++){var a=[].concat(e[r]);o&&l[a[0]]||(i&&(a[2]?a[2]="".concat(i," and ").concat(a[2]):a[2]=i),t.push(a))}},t}},3379:function(e,t,i){var o,l=function(){return void 0===o&&(o=Boolean(window&&document&&document.all&&!window.atob)),o},n=function(){var e={};return function(t){if(void 0===e[t]){var i=document.querySelector(t);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(e){i=null}e[t]=i}return e[t]}}(),s=[];function r(e){for(var t=-1,i=0;i<s.length;i++)if(s[i].identifier===e){t=i;break}return t}function a(e,t){for(var i={},o=[],l=0;l<e.length;l++){var n=e[l],a=t.base?n[0]+t.base:n[0],c=i[a]||0,u="".concat(a," ").concat(c);i[a]=c+1;var d=r(u),h={css:n[1],media:n[2],sourceMap:n[3]};-1!==d?(s[d].references++,s[d].updater(h)):s.push({identifier:u,updater:f(h,t),references:1}),o.push(u)}return o}function c(e){var t=document.createElement("style"),o=e.attributes||{};if(void 0===o.nonce){var l=i.nc;l&&(o.nonce=l)}if(Object.keys(o).forEach((function(e){t.setAttribute(e,o[e])})),"function"==typeof e.insert)e.insert(t);else{var s=n(e.insert||"head");if(!s)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");s.appendChild(t)}return t}var u,d=(u=[],function(e,t){return u[e]=t,u.filter(Boolean).join("\n")});function h(e,t,i,o){var l=i?"":o.media?"@media ".concat(o.media," {").concat(o.css,"}"):o.css;if(e.styleSheet)e.styleSheet.cssText=d(t,l);else{var n=document.createTextNode(l),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(n,s[t]):e.appendChild(n)}}function m(e,t,i){var o=i.css,l=i.media,n=i.sourceMap;if(l?e.setAttribute("media",l):e.removeAttribute("media"),n&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(n))))," */")),e.styleSheet)e.styleSheet.cssText=o;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(o))}}var p=null,g=0;function f(e,t){var i,o,l;if(t.singleton){var n=g++;i=p||(p=c(t)),o=h.bind(null,i,n,!1),l=h.bind(null,i,n,!0)}else i=c(t),o=m.bind(null,i,t),l=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(i)};return o(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;o(e=t)}else l()}}e.exports=function(e,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=l());var i=a(e=e||[],t);return function(e){if(e=e||[],"[object Array]"===Object.prototype.toString.call(e)){for(var o=0;o<i.length;o++){var l=r(i[o]);s[l].references--}for(var n=a(e,t),c=0;c<i.length;c++){var u=r(i[c]);0===s[u].references&&(s[u].updater(),s.splice(u,1))}i=n}}}},348:function(e){e.exports=require("@kq_npm/client_icons_vue")},7080:function(e){e.exports=require("vue-i18n/dist/vue-i18n.cjs.js")},6277:function(e){e.exports=i},7135:function(e){e.exports=t},3458:function(e){e.exports=o},7997:function(e){e.exports=l},1895:function(t){t.exports=e}},s={};function r(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={id:e,exports:{}};return n[e](i,i.exports,r),i.exports}r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nc=void 0;var a={};return function(){r.r(a),r.d(a,{SightlineAnalysisViewModel:function(){return c},default:function(){return _}});var e=r(1895),t=r(7135),i=r(3379),o=r.n(i),l=r(6868),n={insert:"head",singleton:!1},s=(o()(l.Z,n),l.Z.locals,r(6277));class c{_viewer=null;_sightlineAnalysis=null;_drawManager=null;_obstacleColor=Cesium.Color.RED;_isLabel=!1;_addType=0;_pointCollection=[];_cartographicList=[];_highlightIds=[];_billboards=[];_language=null;constructor(e,t,i){this._viewer=e._viewer,this._viewer.scene.postProcessStages._fxaa.enabled=!0,this._viewer.scene.globe.depthTestAgainstTerrain=!0,this._language=i,t.viewer=this._viewer,t.visibleColor&&(t.visibleColor=Cesium.Color.fromCssColorString(t.visibleColor)),t.visibleColor&&(t.invisibleColor=Cesium.Color.fromCssColorString(t.invisibleColor)),t.obstacleColor&&(this._obstacleColor=Cesium.Color.fromCssColorString(t.obstacleColor)),this._isLabel=t.isLabel,t.isLabel=!1,this._sightlineAnalysis=new Cesium.Kq3dSightAnalysis(t),this._drawManager=e._drawManager}createBillboard(e){1==this._addType&&this.clearBillboards("marker"+this._addType),this._billboards.push(this._viewer.entities.add({position:e,name:"marker"+this._addType,billboard:{image:1===this._addType?s.OBSERVATION_POINT:s.TARGET_POINT,verticalOrigin:Cesium.VerticalOrigin.BOTTOM,disableDepthTestDistance:Number.POSITIVE_INFINITY}}))}createDivPoint(e){if(e){var t=Cesium.Math.toDegrees(e.longitude).toFixed(5),i=Cesium.Math.toDegrees(e.latitude).toFixed(5),o=e.height.toFixed(3);e=Cesium.Cartesian3.fromRadians(e.longitude,e.latitude,e.height);var l='<div class="coord-sightline">\n <table>\n <tr>\n <td>X: </td>\n <td>{X}°</td>\n </tr>\n <tr>\n <td>Y: </td>\n <td>{Y}°</td>\n </tr>\n <tr>\n <td>Z: </td>\n <td>{Z} m</td>\n </tr>\n </table>\n <span class="triangle"></span>\n </div>';l=l.replace("{X}",t).replace("{Y}",i).replace("{Z}",o),this._language&&(l=l.replace("X",this._language.value.longitude).replace("Y",this._language.value.latitude).replace("Z",this._language.value.elevation));var n=new Cesium.Kq3dHtmlTag(this._viewer,{html:l,position:e,anchor:[0,-8],alignmentMode:7,noEvent:!0});this._isLabel||n.setVisible(!1),this._pointCollection.push(n)}}createLabels(e){for(let t=0;t<e.length;t++){this._cartographicList.some((i=>{if(i.longitude===e[t].longitude&&i.latitude===e[t].latitude&&i.height===e[t].height)return!0}))||this.createDivPoint(e[t])}this._cartographicList=[].concat(e)}set3DTilesetColor(e,t){t||(t=[]);let i=this._viewer.scene.primitives._primitives;for(let o=0;o<i.length;o++)i[o]instanceof Cesium.Cesium3DTileset&&(i[o].style=new Cesium.Cesium3DTileStyle({color:{evaluateColor:function(i,o){return i&&i.pickId&&t.includes(i.pickId.key)?Cesium.Color.clone(e,o):Cesium.Color.clone(Cesium.Color.WHITE,o),o}}}))}highlightObstacles(e){e&&0!==e.length&&(this._highlightIds=e,this.set3DTilesetColor(this._obstacleColor,e))}clearHighlights(){this._highlightIds=[],this.set3DTilesetColor(Cesium.Color.WHITE)}addSeePoint(){let e=this;this._addType=1,this._drawManager.startDraw("point",{image:s.OBSERVATION_POINT},((t,{shape:i})=>{if(i.groupName&&"SightlineAnalysisDraw"===i.groupName){if(i&&"marker"===i.type)if(e.createBillboard(i.position),1===e._addType)e._sightlineAnalysis.setSeePoint(i.position),e.clearDisplay(),e.createLabels(e._sightlineAnalysis._pickedPos),e.highlightObstacles(e._sightlineAnalysis._pickedFeatures);else if(2===e._addType){let t=e._sightlineAnalysis.addTargetPoint(i.position);e.createLabels(t.cartographic),e.highlightObstacles(t.id)}e._drawManager&&e._drawManager.clearDrawGroup("SightlineAnalysisDraw")}}),"SightlineAnalysisDraw",!0)}addTargetPoint(){let e=this;this._sightlineAnalysis._seePoint&&(this._addType=2,this._drawManager.startDraw("point",{image:s.TARGET_POINT},((t,{shape:i})=>{if(i.groupName&&"SightlineAnalysisDraw"===i.groupName){if(i&&"marker"===i.type)if(e.createBillboard(i.position),1===e._addType)e._sightlineAnalysis.setSeePoint(i.position),e.clearDisplay(),e.createLabels(e._sightlineAnalysis._pickedPos),e.highlightObstacles(e._sightlineAnalysis._pickedFeatures);else if(2===e._addType){let t=e._sightlineAnalysis.addTargetPoint(i.position);e.createLabels(t.cartographic),e.highlightObstacles(t.id)}e._drawManager&&e._drawManager.clearDrawGroup("SightlineAnalysisDraw")}}),"SightlineAnalysisDraw",!0))}clearDisplay(){for(var e=0;e<this._pointCollection.length;e++)this._pointCollection[e].destroy();this._pointCollection=[]}clearBillboards(e){for(var t=0;t<this._billboards.length;t++)e?this._billboards[t].name==e&&this._viewer.entities.remove(this._billboards[t]):this._viewer.entities.remove(this._billboards[t]);e||(this._billboards=[])}clearAll(){this._drawManager.stopDraw(),this.clearDisplay(),this.clearHighlights(),this.clearBillboards(),this._sightlineAnalysis&&this._sightlineAnalysis.remove()}destroy(){this.clearAll(),this._sightlineAnalysis&&this._sightlineAnalysis.destroy(),this._sightlineAnalysis=null}setVisibleColor(e){this._sightlineAnalysis.visibleColor=Cesium.Color.fromCssColorString(e)}setInvisibleColor(e){this._sightlineAnalysis.invisibleColor=Cesium.Color.fromCssColorString(e)}setObstacleColor(e){this._obstacleColor=Cesium.Color.fromCssColorString(e),this._highlightIds.length>0&&this.set3DTilesetColor(this._obstacleColor,this._highlightIds)}setShowLabel(e){this._isLabel=e;for(var t=0;t<this._pointCollection.length;t++)this._pointCollection[t].setVisible(e)}}var u=r(348),d=r(3458),h=r(7080);const m={class:"kq3d-sightline-analysis-box"},p={class:"kq3d-sightline-analysis-footer"},g={name:"Kq3dSightlineAnalysis"};var f=Object.assign(g,{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:u.IconSightlineAnalysis},isRight:{type:Boolean,default:!0}},setup(i,{expose:o}){const l=i,{proxy:n}=(0,e.getCurrentInstance)();let s=(0,e.ref)(n.$i18n.global.messages[n.$i18n.global.locale].webgl),r=(0,e.reactive)({collapseValue:l.settingParams&&l.settingParams.collapseValue||(""==(l.settingParams&&l.settingParams.collapseValue)?"":"setting"),lineWidth:l.settingParams&&l.settingParams.lineWidth||5,visibleColor:l.settingParams&&l.settingParams.visibleColor||"#00ff00",invisibleColor:l.settingParams&&l.settingParams.invisibleColor||"#ff0000",obstacleColor:l.settingParams&&l.settingParams.obstacleColor||"#e6a23c",obstaclePoint:l.settingParams&&void 0!==l.settingParams.obstaclePoint||!1,highlightObstacle:l.settingParams&&void 0!==l.settingParams.highlightObstacle||!1,isLabel:l.settingParams&&void 0!==l.settingParams.isLabel||!0}),a=null,u=(0,e.ref)(null),g=(0,e.ref)(),f=(0,e.ref)(),{locale:_,messages:b}=(0,h.useI18n)(),v=(0,e.ref)(null);v.value=s.value.sightlineAnalysis,(0,e.watch)((()=>_.value),((e,t)=>{s.value=b.value[e].webgl,v.value=s.value.sightlineAnalysis})),(0,e.onMounted)((()=>{(0,d.updatePosition)(u.value,l),(0,e.watch)((()=>l.position),((e,t)=>{(0,d.updatePosition)(u.value,l)})),C(),(0,e.watch)((()=>l.showHeaderTemp),((t,i)=>{(0,e.nextTick)((()=>{C()}))})),t.utils.getWebMap(null,(e=>{if(e){let t={lineWidth:r.lineWidth,visibleColor:r.visibleColor,invisibleColor:r.invisibleColor,obstacleColor:r.obstacleColor,isLabel:r.isLabel};a=new c(e,t,s)}}))}));const C=()=>{l.showHeaderTemp&&(g.value=(0,d.createHeaderTemp)(u.value,(0,e.toRefs)(l),f,v))};function y(e){switch(e){case"visibleColor":a.setVisibleColor(r.visibleColor);break;case"invisibleColor":a.setInvisibleColor(r.invisibleColor);break;case"obstacleColor":a.setObstacleColor(r.obstacleColor);break;case"isLabel":a.setShowLabel(r.isLabel)}}function w(){a&&a.addSeePoint()}function k(){a&&a.addTargetPoint()}function q(){a&&a.clearAll()}return(0,e.onBeforeUnmount)((()=>{a&&a.destroy()})),o({paramsChanged:y,addSeePoint:w,addTargetPoint:k,clearResult:q}),(t,o)=>{const l=(0,e.resolveComponent)("kq-row"),n=(0,e.resolveComponent)("kq-color-picker"),a=(0,e.resolveComponent)("kq-form-item"),c=(0,e.resolveComponent)("kq-checkbox"),d=(0,e.resolveComponent)("kq-form"),h=(0,e.resolveComponent)("kq-collapse-item"),_=(0,e.resolveComponent)("kq-collapse"),b=(0,e.resolveComponent)("kq-button");return(0,e.openBlock)(),(0,e.createElementBlock)("section",{class:(0,e.normalizeClass)(["kq3d-sightline-analysis",{"kq-box-shadow":i.showShadow}]),ref_key:"boxRef",ref:u},[i.showHeaderTemp?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(g)),{key:0,ref_key:"headerTempRef",ref:f},null,512)):(0,e.createCommentVNode)("v-if",!0),(0,e.createElementVNode)("div",m,[(0,e.createVNode)(l,{class:"kq3d-sightline-analysis-tip"},{default:(0,e.withCtx)((()=>[(0,e.createElementVNode)("p",null,(0,e.toDisplayString)((0,e.unref)(s).sightTips),1)])),_:1}),(0,e.createVNode)(_,{"model-value":(0,e.unref)(r).collapseValue},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(h,{title:(0,e.unref)(s).analysisSettings,name:"setting"},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(d,{"label-width":"120px","label-position":"left"},{default:(0,e.withCtx)((()=>[(0,e.createCommentVNode)(' <kq-row>\r\n <kq-form-item :label="language.lineWidth">\r\n <kq-row style="display: flex">\r\n <kq-col :span="16">\r\n <kq-slider v-model="formItem.lineWidth" :min="1" :max="10" @change="paramsChanged(\'lineWidth\')"></kq-slider>\r\n </kq-col>\r\n <kq-col :span="8">\r\n <kq-input-number v-model="formItem.lineWidth" :min="1" :max="10" controls-position="right" @change="paramsChanged(\'lineWidth\')">\r\n </kq-input-number>\r\n </kq-col>\r\n </kq-row>\r\n </kq-form-item>\r\n </kq-row> '),(0,e.createVNode)(l,null,{default:(0,e.withCtx)((()=>[(0,e.createVNode)(a,{label:(0,e.unref)(s).visibleColor},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(n,{modelValue:(0,e.unref)(r).visibleColor,"onUpdate:modelValue":o[0]||(o[0]=t=>(0,e.unref)(r).visibleColor=t),onChange:o[1]||(o[1]=e=>y("visibleColor"))},null,8,["modelValue"])])),_:1},8,["label"])])),_:1}),(0,e.createVNode)(l,null,{default:(0,e.withCtx)((()=>[(0,e.createVNode)(a,{label:(0,e.unref)(s).invisibleColor},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(n,{modelValue:(0,e.unref)(r).invisibleColor,"onUpdate:modelValue":o[2]||(o[2]=t=>(0,e.unref)(r).invisibleColor=t),onChange:o[3]||(o[3]=e=>y("invisibleColor"))},null,8,["modelValue"])])),_:1},8,["label"])])),_:1}),(0,e.createVNode)(l,null,{default:(0,e.withCtx)((()=>[(0,e.createVNode)(a,{label:(0,e.unref)(s).obstacleColor},{default:(0,e.withCtx)((()=>[(0,e.createVNode)(n,{modelValue:(0,e.unref)(r).obstacleColor,"onUpdate:modelValue":o[4]||(o[4]=t=>(0,e.unref)(r).obstacleColor=t),onChange:o[5]||(o[5]=e=>y("obstacleColor"))},null,8,["modelValue"])])),_:1},8,["label"])])),_:1}),(0,e.createCommentVNode)(' <kq-row style="display: flex">\r\n <kq-col :span="12">\r\n <kq-checkbox v-model="formItem.obstaclePoint">{{ language.obstaclePoint }}</kq-checkbox>\r\n </kq-col>\r\n <kq-col :span="12">\r\n <kq-checkbox v-model="formItem.highlightObstacle">{{ language.highlightObstacle }}</kq-checkbox>\r\n </kq-col>\r\n </kq-row> '),(0,e.createVNode)(l,null,{default:(0,e.withCtx)((()=>[(0,e.createVNode)(c,{modelValue:(0,e.unref)(r).isLabel,"onUpdate:modelValue":o[6]||(o[6]=t=>(0,e.unref)(r).isLabel=t),onChange:o[7]||(o[7]=e=>y("isLabel"))},{default:(0,e.withCtx)((()=>[(0,e.createTextVNode)((0,e.toDisplayString)((0,e.unref)(s).showLabel),1)])),_:1},8,["modelValue"])])),_:1})])),_:1})])),_:1},8,["title"])])),_:1},8,["model-value"]),(0,e.createElementVNode)("div",p,[(0,e.createVNode)(b,{onClick:(0,e.withModifiers)(w,["stop"]),title:(0,e.unref)(s).seePoint,type:"primary"},{default:(0,e.withCtx)((()=>[(0,e.createTextVNode)((0,e.toDisplayString)((0,e.unref)(s).seePoint),1)])),_:1},8,["onClick","title"]),(0,e.createVNode)(b,{onClick:(0,e.withModifiers)(k,["stop"]),title:(0,e.unref)(s).targetPoint,type:"primary"},{default:(0,e.withCtx)((()=>[(0,e.createTextVNode)((0,e.toDisplayString)((0,e.unref)(s).targetPoint),1)])),_:1},8,["onClick","title"]),(0,e.createVNode)(b,{onClick:(0,e.withModifiers)(q,["stop"]),title:(0,e.unref)(s).clearResult},{default:(0,e.withCtx)((()=>[(0,e.createTextVNode)((0,e.toDisplayString)((0,e.unref)(s).clearResult),1)])),_:1},8,["onClick","title"])])])],2)}}});var _=f,b=r(7997),v=r.n(b);_.install=(e,t)=>{v()(e,t),e.component(_.name,_)}}(),a}()}));