zbcx_ckyc 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/package.json +90 -0
- package/src/plugins/app/com/CesiumTool.js +730 -0
- package/src/plugins/app/com/MapMethods.js +355 -0
- package/src/plugins/app/com/MapTool.vue +772 -0
- package/src/plugins/app/com/MenuRouter.vue +157 -0
- package/src/plugins/app/com/ParamsDes.vue +35 -0
- package/src/plugins/app/com/SelCoorSys.vue +235 -0
- package/src/plugins/app/com/WebProj4.js +32 -0
- package/src/plugins/app/com/measure.js +127 -0
- package/src/plugins/app/com/yx.js +238 -0
- package/src/plugins/app/modelmanagement/D3DrawGraph.js +708 -0
- package/src/plugins/app/modelmanagement/MineralGo.vue +241 -0
- package/src/plugins/app/modelmanagement/MineralModel.vue +1203 -0
- package/src/plugins/app/modelmanagement/ModelCloudmap.vue +69 -0
- package/src/plugins/app/modelmanagement/ModelMst.vue +60 -0
- package/src/plugins/app/modelmanagement/ModelSy.vue +173 -0
- package/src/plugins/app/modelmanagement/ModelTp.vue +51 -0
- package/src/plugins/app/modelmanagement/ModelUpload.vue +774 -0
- package/src/plugins/app/znycpjxt/Api.js +714 -0
- package/src/plugins/app/znycpjxt/Bf/AttFactory.js +25 -0
- package/src/plugins/app/znycpjxt/Bf/IAnomalyhandle.js +102 -0
- package/src/plugins/app/znycpjxt/Bf/IComposeanomaly.js +140 -0
- package/src/plugins/app/znycpjxt/Bf/IContinueanaly.js +138 -0
- package/src/plugins/app/znycpjxt/Bf/IContrastanaly.js +138 -0
- package/src/plugins/app/znycpjxt/Bf/ICustomNode.js +145 -0
- package/src/plugins/app/znycpjxt/Bf/IDerivanaly.js +139 -0
- package/src/plugins/app/znycpjxt/Bf/IFilterananly.js +141 -0
- package/src/plugins/app/znycpjxt/Bf/IMeananaly.js +137 -0
- package/src/plugins/app/znycpjxt/Bf/IModelNodeBase.js +135 -0
- package/src/plugins/app/znycpjxt/Bf/IMoveaverage.js +135 -0
- package/src/plugins/app/znycpjxt/Bf/IReducepole.js +141 -0
- package/src/plugins/app/znycpjxt/Bf/ISmoothanaly.js +135 -0
- package/src/plugins/app/znycpjxt/Bf/ITrendanaly.js +144 -0
- package/src/plugins/app/znycpjxt/Bf/IVector2grd.js +144 -0
- package/src/plugins/app/znycpjxt/Bf/IYcfj.js +84 -0
- package/src/plugins/app/znycpjxt/Bf/IYcxxjs.js +105 -0
- package/src/plugins/app/znycpjxt/Bf/IYgsbtq.js +112 -0
- package/src/plugins/app/znycpjxt/Bf/IYgtxrh.js +112 -0
- package/src/plugins/app/znycpjxt/Bf/Iinteranaly.js +135 -0
- package/src/plugins/app/znycpjxt/Bf/index.js +44 -0
- package/src/plugins/app/znycpjxt/Bf/input/InputData.js +21 -0
- package/src/plugins/app/znycpjxt/Bf/input/InputExcel.js +28 -0
- package/src/plugins/app/znycpjxt/Bf/input/InputKd.js +31 -0
- package/src/plugins/app/znycpjxt/Bqqd/Bqqd.vue +380 -0
- package/src/plugins/app/znycpjxt/Bqqd/BqqdMap.vue +1046 -0
- package/src/plugins/app/znycpjxt/Bqqd/SetOpacity.vue +101 -0
- package/src/plugins/app/znycpjxt/Bqqd/SjzxTree.vue +244 -0
- package/src/plugins/app/znycpjxt/Bqqd/YclsjjTree.vue +212 -0
- package/src/plugins/app/znycpjxt/Bqqd/api/DsjzxApi.js +37 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmx.vue +161 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxgl/CfgGloalParams.vue +92 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxgl/CfgNodeFlds.vue +102 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxgl/CfgNodeParams.vue +277 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxgl/Ckycmxgl.vue +303 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxgl/SetLabelParam.vue +68 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxgl/SetModelParam.vue +69 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/Ckycmxtab.vue +107 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/Dtzzylwl.vue +156 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/Jjsjwl.vue +230 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/Sjsl.vue +126 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/Zcxlj.vue +128 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/Zjq.vue +123 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/Zstp.vue +271 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/Zzylwl.vue +149 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/coms/ParamsData.vue +323 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/coms/ParamsDataNew.vue +336 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycmxtab/coms/QqtEcharts.vue +137 -0
- package/src/plugins/app/znycpjxt/Ckycmx/Ckycrwgl/Ckycrwgl.vue +290 -0
- package/src/plugins/app/znycpjxt/CusTools/CodeApi.js +83 -0
- package/src/plugins/app/znycpjxt/CusTools/CodeEditor/CodeEditor.md +36 -0
- package/src/plugins/app/znycpjxt/CusTools/CodeEditor/CodeEditor.vue +227 -0
- package/src/plugins/app/znycpjxt/CusTools/CodeEditor/PlugCodeEditor.vue +78 -0
- package/src/plugins/app/znycpjxt/CusTools/CodeEditor/demo/basic.png +0 -0
- package/src/plugins/app/znycpjxt/CusTools/CodeEditor/demo/basic.vue +27 -0
- package/src/plugins/app/znycpjxt/CusTools/DmbjForm.vue +76 -0
- package/src/plugins/app/znycpjxt/CusTools/DmfbForm.vue +351 -0
- package/src/plugins/app/znycpjxt/CusTools/GjForm.vue +206 -0
- package/src/plugins/app/znycpjxt/CusTools/Gjbjyfb.vue +200 -0
- package/src/plugins/app/znycpjxt/CusTools/ParamSelect.vue +222 -0
- package/src/plugins/app/znycpjxt/CusTools/ParamSelect2.vue +204 -0
- package/src/plugins/app/znycpjxt/CusTools/Zngjj.vue +105 -0
- package/src/plugins/app/znycpjxt/DataAnlyModel/DataAnlyModel.vue +134 -0
- package/src/plugins/app/znycpjxt/DataAnlyModel/Hgfx/HgfxEcharts.vue +98 -0
- package/src/plugins/app/znycpjxt/DataAnlyModel/Hgfx/HgfxTab.vue +73 -0
- package/src/plugins/app/znycpjxt/DataAnlyModel/Hgfx.vue +101 -0
- package/src/plugins/app/znycpjxt/DataAnlyModel/Jctj/JctjjgTab.vue +70 -0
- package/src/plugins/app/znycpjxt/DataAnlyModel/Jctj/Plzft.vue +154 -0
- package/src/plugins/app/znycpjxt/DataAnlyModel/Jctj.vue +118 -0
- package/src/plugins/app/znycpjxt/DataAnlyModel/Jlfx/JlfxImg.vue +80 -0
- package/src/plugins/app/znycpjxt/DataAnlyModel/Jlfx.vue +91 -0
- package/src/plugins/app/znycpjxt/DataAnlyModel/PCAfx/PcaTab.vue +161 -0
- package/src/plugins/app/znycpjxt/DataAnlyModel/PCAfx.vue +101 -0
- package/src/plugins/app/znycpjxt/DataAnlyModel/Qqt/QqtEcharts.vue +202 -0
- package/src/plugins/app/znycpjxt/DataAnlyModel/Qqt.vue +88 -0
- package/src/plugins/app/znycpjxt/DataAnlyModel/Xgxfx/XgxfxImg.vue +80 -0
- package/src/plugins/app/znycpjxt/DataAnlyModel/Xgxfx.vue +96 -0
- package/src/plugins/app/znycpjxt/DatasetMan/CreateDataset.vue +296 -0
- package/src/plugins/app/znycpjxt/DatasetMan/DatasetMan.vue +141 -0
- package/src/plugins/app/znycpjxt/DatasetMan/PreData.js +91 -0
- package/src/plugins/app/znycpjxt/DatasetMan/PreData.vue +545 -0
- package/src/plugins/app/znycpjxt/DatasetMan/PreDataApi.js +101 -0
- package/src/plugins/app/znycpjxt/DatasetMan/SelData.vue +186 -0
- package/src/plugins/app/znycpjxt/DatasetMan/SjTree.vue +130 -0
- package/src/plugins/app/znycpjxt/DatasetMan/Sjj.vue +478 -0
- package/src/plugins/app/znycpjxt/DatasetMan/Yclsjj.vue +445 -0
- package/src/plugins/app/znycpjxt/DatasetMan/Yssjj.vue +389 -0
- package/src/plugins/app/znycpjxt/DocList/DocList.vue +496 -0
- package/src/plugins/app/znycpjxt/DocList/unit/DocItem.vue +137 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/AnomalyExtraction/Dchj.vue +107 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/AnomalyExtraction/GeophysicalAnomaly.vue +115 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/AnomalyExtraction/Jxyt.vue +98 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/AnomalyExtraction/Lbjs.vue +127 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/AnomalyExtraction/Pjcjs.vue +103 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/AnomalyExtraction/Qdjs.vue +103 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/ExceptHandlModel.vue +163 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Cdjs.vue +102 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Czfx.vue +163 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/GetFormData.vue +343 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Hdpj.vue +100 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Pjtd.vue +90 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Qsfx.vue +109 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/ResultOnlyData.vue +121 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/ResultTable.vue +231 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/UniversalComputing.vue +139 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Xgxsjs.vue +93 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Xxsjs.vue +90 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Ycfj.vue +116 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/GeneralCalculation/Yhcl.vue +100 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/extgeoanomalies/AnomalsGard.vue +91 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/extgeoanomalies/Dqhxycht.vue +113 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/extgeoanomalies/GeocAnomalies.vue +99 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/extgeoanomalies/JgTableList.vue +203 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/extgeoanomalies/Lszcl.vue +110 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/extgeoanomalies/Ycxxjs.vue +116 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/geoAnomalyExtraction/GeoAnomalyExtraction.vue +108 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/geoAnomalyExtraction/coms/AttWeight.vue +99 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/geoAnomalyExtraction/coms/Ckdctq.vue +98 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/geoAnomalyExtraction/coms/LeftForm.vue +266 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/ygyctq/Ygsbtq.vue +150 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/ygyctq/Ygtxrh.vue +107 -0
- package/src/plugins/app/znycpjxt/ExceptHandlModel/ygyctq/ygyctq.vue +98 -0
- package/src/plugins/app/znycpjxt/Index/DataCard.vue +45 -0
- package/src/plugins/app/znycpjxt/Index/Index.vue +123 -0
- package/src/plugins/app/znycpjxt/Rzgl/Rzgl.vue +156 -0
- package/src/plugins/app/znycpjxt/coms/CmapColor.vue +70 -0
- package/src/plugins/app/znycpjxt/coms/CustomFileView.vue +343 -0
- package/src/plugins/app/znycpjxt/coms/CustomForm.vue +220 -0
- package/src/plugins/app/znycpjxt/coms/GrdView.vue +355 -0
- package/src/plugins/app/znycpjxt/coms/LeftForm.vue +195 -0
- package/src/plugins/app/znycpjxt/coms/MakeData.js +472 -0
- package/src/plugins/app/znycpjxt/coms/PreView.js +55 -0
- package/src/plugins/app/znycpjxt/coms/RightContent.vue +71 -0
- package/src/plugins/app/znycpjxt/coms/TableEarth.vue +259 -0
- package/src/plugins/app/znycpjxt/intellPred/ModelList.vue +200 -0
- package/src/plugins/app/znycpjxt/intellPred/coms/D3DrawGraph.js +634 -0
- package/src/plugins/app/znycpjxt/intellPred/coms/MineralGo.vue +249 -0
- package/src/plugins/app/znycpjxt/intellPred/coms/ModelCard.vue +298 -0
- package/src/plugins/app/znycpjxt/intellPred/coms/ModelEdit.vue +292 -0
- package/src/plugins/app/znycpjxt/intellPred/coms/ModelSpecif.vue +46 -0
- package/src/plugins/app/znycpjxt/intellPred/intellPred.vue +71 -0
- package/src/plugins/bf/BfApi.js +92 -0
- package/src/plugins/bf/BfColAdd.vue +78 -0
- package/src/plugins/bf/BfColEdit.vue +68 -0
- package/src/plugins/bf/BfColFilter.vue +112 -0
- package/src/plugins/bf/BfDataGroup.vue +80 -0
- package/src/plugins/bf/BfDataPreview.vue +118 -0
- package/src/plugins/bf/BfDataStat.vue +81 -0
- package/src/plugins/bf/BfDuplicateDel.vue +82 -0
- package/src/plugins/bf/BfProcCall.vue +82 -0
- package/src/plugins/bf/BfRunHis.vue +289 -0
- package/src/plugins/bf/BfRunParams.vue +94 -0
- package/src/plugins/bf/BfSaveFlow.vue +186 -0
- package/src/plugins/bf/BfSelFlow.vue +123 -0
- package/src/plugins/bf/BfTabCombine.vue +127 -0
- package/src/plugins/bf/BfTabJoin.vue +108 -0
- package/src/plugins/bf/BfTabMerge.vue +68 -0
- package/src/plugins/bf/BfTabReader.vue +126 -0
- package/src/plugins/bf/BfValFormat.vue +68 -0
- package/src/plugins/bf/BfValNumber.vue +68 -0
- package/src/plugins/bf/BfValProc.vue +78 -0
- package/src/plugins/bf/BfValSort.vue +78 -0
- package/src/plugins/bf/BiFlow.vue +1177 -0
- package/src/plugins/bf/IBfPlug.js +205 -0
- package/src/plugins/bf/coms/ColAdd.vue +75 -0
- package/src/plugins/bf/coms/ColEdit.vue +52 -0
- package/src/plugins/bf/coms/ColList.vue +91 -0
- package/src/plugins/bf/coms/DataGroup.vue +90 -0
- package/src/plugins/bf/coms/DataStat.vue +67 -0
- package/src/plugins/bf/coms/EditTable.vue +161 -0
- package/src/plugins/bf/coms/NodeTree.vue +105 -0
- package/src/plugins/bf/coms/PlugCmd.vue +95 -0
- package/src/plugins/bf/coms/RunParams.vue +68 -0
- package/src/plugins/bf/coms/TabCombine.vue +60 -0
- package/src/plugins/bf/coms/TabJoin.vue +69 -0
- package/src/plugins/bf/coms/ValFormat.vue +53 -0
- package/src/plugins/bf/coms/ValProc.vue +77 -0
- package/src/plugins/bf/coms/ValSort.vue +89 -0
- package/src/plugins/bf/parts/Icon.vue +105 -0
- package/src/plugins/bf/parts/Rect.vue +98 -0
- package/src/plugins/bf/parts/index.js +11 -0
- package/src/plugins/cxMixin/IAttBase.js +78 -0
- package/src/plugins/cxMixin/IAttDlg.js +45 -0
- package/src/plugins/cxMixin/IAttProc.js +98 -0
- package/src/plugins/cxMixin/IComBase.js +42 -0
- package/src/plugins/cxMixin/IContextMenu.js +74 -0
- package/src/plugins/cxMixin/IDataAcce.js +1106 -0
- package/src/plugins/cxMixin/IDataList.js +775 -0
- package/src/plugins/cxMixin/IDataMan.js +1670 -0
- package/src/plugins/cxMixin/IDataMan2.js +2561 -0
- package/src/plugins/cxMixin/IDataProc.js +379 -0
- package/src/plugins/cxMixin/IDatagrid.js +234 -0
- package/src/plugins/cxMixin/IEditableDg.js +477 -0
- package/src/plugins/cxMixin/IExpBase.js +51 -0
- package/src/plugins/cxMixin/IFormBase.js +29 -0
- package/src/plugins/cxMixin/IGridBpm.js +732 -0
- package/src/plugins/cxMixin/IGridData.js +109 -0
- package/src/plugins/cxMixin/IOperMore.js +323 -0
- package/src/plugins/cxMixin/IPlugBase.js +341 -0
- package/src/plugins/cxMixin/ISendCode.js +86 -0
- package/src/plugins/cxMixin/ISinglePage.js +112 -0
- package/src/plugins/cxMixin/ITags.js +81 -0
- package/src/plugins/cxe/CxeMap.vue +61 -0
- package/src/plugins/home/HeadNav.vue +194 -0
- package/src/plugins/home/Home.vue +59 -0
- package/src/plugins/home/HomePage.vue +237 -0
- package/src/plugins/home/Login.vue +139 -0
- package/src/plugins/zbcxCesium/coms/GraDrawBarWgt.vue +176 -0
- package/src/plugins/zbcxCesium/coms/baseMapSwitch/BaseMap.scss +42 -0
- package/src/plugins/zbcxCesium/coms/baseMapSwitch/BaseMap.vue +59 -0
- package/src/plugins/zbcxCesium/coms/dataPreview/DataPreview.vue +526 -0
- package/src/plugins/zbcxCesium/coms/dataPreview/DataPreviewPlug.vue +79 -0
- package/src/plugins/zbcxCesium/coms/dataPreview/ReadShpFile.js +42 -0
- package/src/plugins/zbcxCesium/coms/legend/Legend.vue +78 -0
- package/src/plugins/zbcxCesium/coms/popup/dialog-left-bg.png +0 -0
- package/src/plugins/zbcxCesium/coms/popup/index.js +88 -0
- package/src/plugins/zbcxCesium/coms/popup/index.vue +93 -0
- package/src/plugins/zbcxCesium/pub/LoadGeojson.js +44 -0
- package/src/plugins/zbcxCesium/pub/LoadModel.js +128 -0
- package/src/plugins/zbcxCesium/pub/LoadOgc.js +226 -0
- package/src/plugins/zbcxCesium/pub/Opacity.vue +139 -0
- package/src/plugins/zbcxCesium/pub/PubCxe.js +97 -0
- package/src/plugins/zbcxCesium/pub/SceneSet.vue +178 -0
- package/src/plugins/zbcxCesium/pub/ShowEffect.vue +216 -0
- package/src/plugins/zbcxCesium/pub/TMeasure.vue +122 -0
- package/src/plugins/zbcxCesium/pub/ToDefView3.vue +109 -0
- package/src/plugins/zbcxCesium/pub/getWmsGetCapabilities.js +127 -0
- package/src/plugins/zbcxCesium/utils/ShpToGeoJson.js +24 -0
- package/src/plugins/zbcxCesium/utils/WebProj4.js +32 -0
|
@@ -0,0 +1,526 @@
|
|
|
1
|
+
<style lang='scss' scoped>
|
|
2
|
+
#chart3d {width: 100%; height: 100%; position: relative; overflow: hidden;}
|
|
3
|
+
:deep(.cxe-zoom-controller) {top: 1rem; right: .45rem;}
|
|
4
|
+
:deep(.zoom-in) {line-height: normal;}
|
|
5
|
+
:deep(.refresh) {line-height: normal;}
|
|
6
|
+
:deep(.zoom-out) {line-height: normal;}
|
|
7
|
+
.legend2 {position: absolute; bottom: 0.1rem;right: 0.1rem;max-height: 2.5rem;z-index: 2;background-color: #fff;}
|
|
8
|
+
:deep(.legendBox) {
|
|
9
|
+
margin-left: 0.1rem;
|
|
10
|
+
img {width: 0.20rem; height: 0.20rem;}
|
|
11
|
+
p {font-size:0.12rem; margin-left: 0.1rem;}
|
|
12
|
+
}
|
|
13
|
+
.tool-style{top: 2% !important;z-index: 2;}
|
|
14
|
+
:deep(.cxe-compass){display: none!important}
|
|
15
|
+
:deep(.cxe-zoom-controller){display: none!important}
|
|
16
|
+
:deep(.cxe-location-bar) {left: 4rem}
|
|
17
|
+
:deep(.cxe-distance-legend){display: none;}
|
|
18
|
+
.dq-switch { position: absolute; right: 0.12rem; top: 1.32rem; z-index: 1;}
|
|
19
|
+
.slider-alpha { position: absolute; right: 0.12rem; top: 0.9rem; background: rgba(255,255,255,0.5); width: 2.5rem; color: #000; z-index: 1; display: flex; align-items: center; justify-content: space-around;}
|
|
20
|
+
:deep(.el-slider) {width: 50%;}
|
|
21
|
+
|
|
22
|
+
</style>
|
|
23
|
+
|
|
24
|
+
<template>
|
|
25
|
+
<!-- 标签语义化:header、nav、main、article、aside、footer、section -->
|
|
26
|
+
<div id="chart3d" ref="map3d">
|
|
27
|
+
<slot></slot>
|
|
28
|
+
<el-switch v-if="!noShowTool" class="dq-switch" v-model="dqSwitch" active-text="地球" inactive-text=""/>
|
|
29
|
+
|
|
30
|
+
<div class="slider-alpha" v-if="!noShowTool">
|
|
31
|
+
<span class="demonstration">地图透明度设置</span>
|
|
32
|
+
<el-slider v-model="alpha" :max="1" :step="0.1" @change="setOpacity" />
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
<!-- 图例 -->
|
|
36
|
+
<legend2 class="legend2" v-if="legendList_.length" :legendList="legendList_"></legend2>
|
|
37
|
+
<!-- 底图切换 -->
|
|
38
|
+
<BaseMap v-if="baseMapArr.length && showBaseMap" style="position:absolute;bottom: 2vh;right:1%" :baseMapArr="baseMapArr" @basemap-click='baseMapClick'></BaseMap>
|
|
39
|
+
<MapTool ref='map'
|
|
40
|
+
v-if="!noShowTool"
|
|
41
|
+
class="tool-style"
|
|
42
|
+
@drawPointFunc="drawPointFunc('Circle')"
|
|
43
|
+
@drawLineFunc="drawLineFunc('LineString')"
|
|
44
|
+
@drawLineFuncClosed="drawLineFuncClosed('Rectangle')"
|
|
45
|
+
@drawParamLine="drawParamLine"
|
|
46
|
+
@drawPolFunc="drawPolFunc('Polygon')"
|
|
47
|
+
@controlLayer="controlLayer"
|
|
48
|
+
@delVector="delVector"
|
|
49
|
+
@drawBq="drawBq"
|
|
50
|
+
@clearDrawBq="clearDrawBq"
|
|
51
|
+
@exportShp="exportShp"
|
|
52
|
+
@saveShp="saveShp"
|
|
53
|
+
>
|
|
54
|
+
</MapTool>
|
|
55
|
+
</div>
|
|
56
|
+
</template>
|
|
57
|
+
|
|
58
|
+
<script>
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* 组件 - 空间数据预览
|
|
62
|
+
*
|
|
63
|
+
* 调用说明:
|
|
64
|
+
* @prop {Array} baseMapArr 底图数组
|
|
65
|
+
* @prop {Object} defSceneCfg 三维场景默认配置
|
|
66
|
+
* @prop {boolean} defSceneCfg.compass 罗盘,默认true
|
|
67
|
+
* @prop {boolean} defSceneCfg.stateBar 状态栏,默认true
|
|
68
|
+
* @prop {boolean} defSceneCfg.disLegend 比例尺,默认true
|
|
69
|
+
* @prop {boolean} defSceneCfg.zoomControl 缩放,默认true
|
|
70
|
+
* @prop {boolean} defSceneCfg.lightFollow 是否开启灯光跟随,类似手电筒效果.默认false
|
|
71
|
+
*
|
|
72
|
+
* @prop {Object} services 图层数据属性,具体字段见cx_mapservice。
|
|
73
|
+
* @prop {Object} services.url 资源url。
|
|
74
|
+
* @prop {Object} services.maptype 图层服务类型。
|
|
75
|
+
* @prop {Object} services.layer layer。
|
|
76
|
+
* @prop {Object} services.params 附带参数。
|
|
77
|
+
* @prop {Object} services.params.rectangle 服务位置的矩形,格式:{"rectangle":{"south":34.334515220101366,"east":96.384783,"north":49.183097094455405,"west":73.501142}}
|
|
78
|
+
* @prop {Object} services.params.tilingScheme 切片方式,默认new GeographicTilingScheme(),参考https://cesium.com/learn/cesiumjs/ref-doc/TilingScheme.html#TilingScheme
|
|
79
|
+
* @prop {Object} services.params.tileMatrixSetID 用于WMTS请求的TileMatrixSet的标识符。
|
|
80
|
+
* @prop {Object} services.params.tileMatrixLabels TileMatrix中用于WMTS请求的标识符列表,每个TileMatrix级别一个。
|
|
81
|
+
* @prop {Object} services.params.center 3dtiles设置中心点,格式:{"center":{"lng":119.18,"lat":34.57,"height":0}}。
|
|
82
|
+
* @prop {Object} services.params.offset 3dtiles平移,格式:{"offset":{"x":1000,"y":0,"z":0}}。
|
|
83
|
+
* @prop {Object} services.params.rotate 3dtiles旋转,格式:{"rotate":{"x":-90,"y":0,"z":0}}。
|
|
84
|
+
* @prop {Object} services.params.scale 3dtiles缩放,格式:{"scale":{"x":-90,"y":0,"z":0}}。
|
|
85
|
+
|
|
86
|
+
* @prop {Array} legendList 数据图例
|
|
87
|
+
* @prop {String} legendList.name 图例名
|
|
88
|
+
* @prop {String} legendList.url 图例图片
|
|
89
|
+
*
|
|
90
|
+
* @prop {Object} opts 额外参数,shp、geojson数据加载时候需要额外样式和回调
|
|
91
|
+
* @prop {Object} opts.style 样式,参考cxe和cesium的语法
|
|
92
|
+
* @prop {function} opts.callback 回调函数
|
|
93
|
+
* @event event 响应方法以及参数
|
|
94
|
+
*
|
|
95
|
+
* @slot default 描述
|
|
96
|
+
*
|
|
97
|
+
*/
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* 修改记录:
|
|
101
|
+
* 2023-9-4 张光辉 首次编写
|
|
102
|
+
*/
|
|
103
|
+
import MapTool from '@/plugins/app/com/MapTool.vue'
|
|
104
|
+
import legend2 from '../legend/Legend.vue'
|
|
105
|
+
import BaseMap from '../baseMapSwitch/BaseMap.vue'
|
|
106
|
+
import PubCxe from '../../pub/PubCxe.js'
|
|
107
|
+
import LoadModel from '../../pub/LoadModel'
|
|
108
|
+
import LoadOgc from '../../pub/LoadOgc'
|
|
109
|
+
import ReadShpFile from './ReadShpFile.js'
|
|
110
|
+
import shpToGeoJson from '../../utils/ShpToGeoJson'
|
|
111
|
+
import LoadGeojson from '../../pub/LoadGeojson.js'
|
|
112
|
+
import MesureTool from '@/plugins/app/com/measure'
|
|
113
|
+
import CesiumTool from '@/plugins/app/com/CesiumTool'
|
|
114
|
+
|
|
115
|
+
const TYPE_GLTF = 'gltf' // gltf模型,单体模型
|
|
116
|
+
const TYPE_GLBS = 'glbs' // glb模型
|
|
117
|
+
const TYPE_TILES = '3dtiles' // 3dtiles模型
|
|
118
|
+
const TYPE_SHP = 'shp' // shp
|
|
119
|
+
const TYPE_WMS = 'wms' // wms图层
|
|
120
|
+
const TYPE_WMTS = 'wmts' // WMTS图层
|
|
121
|
+
const TYPE_GEOJSON = 'geojson' // geojson
|
|
122
|
+
const Point = 'Point', Polygon = 'Polygon', LineString = 'LineString', Rectangle = 'Rectangle', Circle = 'Circle'
|
|
123
|
+
const Delete = 'Delete'
|
|
124
|
+
export default
|
|
125
|
+
{
|
|
126
|
+
mixins: [],
|
|
127
|
+
components: { BaseMap, legend2, MapTool },
|
|
128
|
+
props:
|
|
129
|
+
{
|
|
130
|
+
defSceneCfg: {
|
|
131
|
+
type: Object,
|
|
132
|
+
default: () => ({
|
|
133
|
+
compass: true,
|
|
134
|
+
stateBar: true,
|
|
135
|
+
disLegend: true,
|
|
136
|
+
zoomControl: true
|
|
137
|
+
})
|
|
138
|
+
}, // 基础控件
|
|
139
|
+
baseMapArr: { type: Array, default: () => [] }, // 底图数组
|
|
140
|
+
showBaseMap: { type: Boolean, default: true }, // 是否显示底图控件
|
|
141
|
+
legendList: { type: Array, default: () => [] }, // 图例数组
|
|
142
|
+
services: { type: Object, default: () => ({}) }, // 要预览的数据属性
|
|
143
|
+
opts: { type: Object, default: () => ({}) }, // 额外参数
|
|
144
|
+
noShowTool: {
|
|
145
|
+
type: Boolean,
|
|
146
|
+
default: () =>
|
|
147
|
+
{
|
|
148
|
+
return false
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
data()
|
|
153
|
+
{
|
|
154
|
+
return {
|
|
155
|
+
legendList_: this.legendList,
|
|
156
|
+
paramDraw: {
|
|
157
|
+
mode: 'vertical',
|
|
158
|
+
tipPlace: 'left',
|
|
159
|
+
subToolPlace: 'right',
|
|
160
|
+
toolWidth: 40,
|
|
161
|
+
showTextTip: true,
|
|
162
|
+
tools: [
|
|
163
|
+
[
|
|
164
|
+
{
|
|
165
|
+
name: LineString,
|
|
166
|
+
title: '线绘制',
|
|
167
|
+
namec: '线绘制',
|
|
168
|
+
grp: '',
|
|
169
|
+
plugin: '',
|
|
170
|
+
icon: 'cx-fi ic-huizhixian',
|
|
171
|
+
params: '',
|
|
172
|
+
children: []
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
name: Polygon,
|
|
176
|
+
title: '多边形绘制',
|
|
177
|
+
namec: '多边形绘制',
|
|
178
|
+
grp: '',
|
|
179
|
+
plugin: '',
|
|
180
|
+
icon: 'cx-fi ic-polygon',
|
|
181
|
+
params: '',
|
|
182
|
+
children: []
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
name: Rectangle,
|
|
186
|
+
title: '矩形绘制',
|
|
187
|
+
namec: '矩形绘制',
|
|
188
|
+
grp: '',
|
|
189
|
+
plugin: '',
|
|
190
|
+
icon: 'cx-fi ic-drawRectangle',
|
|
191
|
+
params: '',
|
|
192
|
+
children: []
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
name: Circle,
|
|
196
|
+
title: '圆形绘制',
|
|
197
|
+
namec: '圆形绘制',
|
|
198
|
+
grp: '',
|
|
199
|
+
plugin: '',
|
|
200
|
+
icon: 'cx-fi ic-drawcircle',
|
|
201
|
+
params: '',
|
|
202
|
+
children: []
|
|
203
|
+
}
|
|
204
|
+
]
|
|
205
|
+
]
|
|
206
|
+
},
|
|
207
|
+
layer: null,
|
|
208
|
+
dqSwitch: true,
|
|
209
|
+
alpha: 1
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
|
|
213
|
+
emits: ['created'],
|
|
214
|
+
// 计算属性,依赖其他数据数字计算
|
|
215
|
+
computed:
|
|
216
|
+
{},
|
|
217
|
+
|
|
218
|
+
// 属性监听,处理属性变化后有大量操作
|
|
219
|
+
watch:
|
|
220
|
+
{
|
|
221
|
+
legendList:
|
|
222
|
+
{
|
|
223
|
+
handler: function(newVal, oldVal)
|
|
224
|
+
{
|
|
225
|
+
this.legendList_ = newVal
|
|
226
|
+
},
|
|
227
|
+
deep: true
|
|
228
|
+
},
|
|
229
|
+
dqSwitch(value)
|
|
230
|
+
{
|
|
231
|
+
this.viewer.scene.globe.show = value // 不显示地球
|
|
232
|
+
this.viewer.scene.skyAtmosphere.show = value
|
|
233
|
+
this.viewer.viewer.imageryLayers._layers.forEach(layer =>
|
|
234
|
+
{
|
|
235
|
+
layer.alpha = value ? 1 : 0
|
|
236
|
+
})
|
|
237
|
+
this.viewer.viewer.scene.globe.baseColor = new Cesium.Color(0, 0, 0, value ? 0 : 1)
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
|
|
241
|
+
// 初始化组件,data中数据变量赋值
|
|
242
|
+
created()
|
|
243
|
+
{},
|
|
244
|
+
|
|
245
|
+
// 组件dom挂载成功
|
|
246
|
+
mounted()
|
|
247
|
+
{
|
|
248
|
+
this.init()
|
|
249
|
+
},
|
|
250
|
+
|
|
251
|
+
// 销毁前
|
|
252
|
+
beforeUnmount()
|
|
253
|
+
{},
|
|
254
|
+
|
|
255
|
+
// 按功能相关性组织函数块,函数名体现功能
|
|
256
|
+
methods:
|
|
257
|
+
{
|
|
258
|
+
init()
|
|
259
|
+
{
|
|
260
|
+
this.initEarth()
|
|
261
|
+
},
|
|
262
|
+
|
|
263
|
+
// 初始化地球
|
|
264
|
+
initEarth()
|
|
265
|
+
{
|
|
266
|
+
this.viewer = new window.cxe.Viewer('chart3d')
|
|
267
|
+
// 罗盘 true/false
|
|
268
|
+
this.viewer.compass.enable = this.defSceneCfg.compass
|
|
269
|
+
// 状态栏 true/false
|
|
270
|
+
this.viewer.stateBar.enable = this.defSceneCfg.stateBar
|
|
271
|
+
// 比例尺 true/false
|
|
272
|
+
this.viewer.disLegend.enable = this.defSceneCfg.disLegend
|
|
273
|
+
// 缩放
|
|
274
|
+
this.viewer.zoomControl.enable = this.defSceneCfg.zoomControl
|
|
275
|
+
|
|
276
|
+
this.viewer.scene.globe.showSkirts = false // 去网格化
|
|
277
|
+
this.viewer.scene.globe.depthTestAgainstTerrain = true // 深度检测
|
|
278
|
+
|
|
279
|
+
// 是否开启灯光跟随,类似手电筒效果,监听相机位置改变光照。
|
|
280
|
+
if (!this.defSceneCfg.lightFollow)
|
|
281
|
+
this.lightFollow()
|
|
282
|
+
this.pubCxe = new PubCxe({ viewer: this.viewer })
|
|
283
|
+
this.pubCxe.loadBasemap(this.baseMapArr)
|
|
284
|
+
|
|
285
|
+
// 加载数据
|
|
286
|
+
this.loadData(this.services)
|
|
287
|
+
|
|
288
|
+
window.Viewer = this.viewer
|
|
289
|
+
this.$emit('created', this.viewer)
|
|
290
|
+
this.mesure = new MesureTool(this.viewer)
|
|
291
|
+
window.mesure = this.mesure
|
|
292
|
+
window.tool = new CesiumTool(this.viewer, [])
|
|
293
|
+
},
|
|
294
|
+
|
|
295
|
+
// 设置光源位置,照亮视野范围
|
|
296
|
+
lightFollow()
|
|
297
|
+
{
|
|
298
|
+
let scene = this.viewer.scene
|
|
299
|
+
let flashlight = new Cesium.DirectionalLight({
|
|
300
|
+
direction: this.viewer.scene.camera.directionWC
|
|
301
|
+
})
|
|
302
|
+
scene.light = flashlight
|
|
303
|
+
scene.globe.dynamicAtmosphereLighting = false
|
|
304
|
+
this.viewer.scene.preRender.addEventListener(function(scene, time)
|
|
305
|
+
{
|
|
306
|
+
scene.light.direction = Cesium.Cartesian3.clone(scene.camera.directionWC, scene.light.direction)
|
|
307
|
+
})
|
|
308
|
+
},
|
|
309
|
+
|
|
310
|
+
// 加载数据
|
|
311
|
+
loadData(services)
|
|
312
|
+
{
|
|
313
|
+
switch (services.maptype)
|
|
314
|
+
{
|
|
315
|
+
case TYPE_GLTF:
|
|
316
|
+
case TYPE_GLBS:
|
|
317
|
+
case TYPE_TILES:
|
|
318
|
+
LoadModel.loadModel(this.viewer, services); break
|
|
319
|
+
case TYPE_WMS:
|
|
320
|
+
case TYPE_WMTS:
|
|
321
|
+
LoadOgc.loadOgc(this.viewer, services)
|
|
322
|
+
break
|
|
323
|
+
case TYPE_SHP:
|
|
324
|
+
this.loadShp(this.viewer, services, this.opts)
|
|
325
|
+
break
|
|
326
|
+
case TYPE_GEOJSON:
|
|
327
|
+
this.laodGeojson(this.viewer, services, this.opts)
|
|
328
|
+
break
|
|
329
|
+
}
|
|
330
|
+
},
|
|
331
|
+
|
|
332
|
+
loadShp(viewer, services, opts)
|
|
333
|
+
{
|
|
334
|
+
let res = ReadShpFile.parseUrl(services)
|
|
335
|
+
let promise = shpToGeoJson(res.shp, res.dbf)
|
|
336
|
+
promise.then(res =>
|
|
337
|
+
{
|
|
338
|
+
res.forEach(item =>
|
|
339
|
+
{
|
|
340
|
+
this.laodGeojson(viewer, { url: item }, opts)
|
|
341
|
+
})
|
|
342
|
+
})
|
|
343
|
+
},
|
|
344
|
+
|
|
345
|
+
async laodGeojson(viewer, services, opts)
|
|
346
|
+
{
|
|
347
|
+
this.layer = await LoadGeojson.loadGeojson(viewer, { ...opts, ...services, url: services.url })
|
|
348
|
+
},
|
|
349
|
+
|
|
350
|
+
removeLayer()
|
|
351
|
+
{
|
|
352
|
+
if (this.layer)
|
|
353
|
+
this.viewer.layers.removeLayer(this.layer)
|
|
354
|
+
},
|
|
355
|
+
|
|
356
|
+
// 点绘制
|
|
357
|
+
drawPointFunc(name)
|
|
358
|
+
{
|
|
359
|
+
const drawPoint = cx.array.get1(this.paramDraw.tools[0], { name })
|
|
360
|
+
this.toolClickDraws(drawPoint)
|
|
361
|
+
},
|
|
362
|
+
// 点线绘制
|
|
363
|
+
drawLineFunc(name)
|
|
364
|
+
{
|
|
365
|
+
const drawPoint = cx.array.get1(this.paramDraw.tools[0], { name })
|
|
366
|
+
this.toolClickDraws(drawPoint)
|
|
367
|
+
},
|
|
368
|
+
// 矩形绘制
|
|
369
|
+
drawLineFuncClosed(name)
|
|
370
|
+
{
|
|
371
|
+
const drawPoint = cx.array.get1(this.paramDraw.tools[0], { name })
|
|
372
|
+
this.toolClickDraws(drawPoint)
|
|
373
|
+
},
|
|
374
|
+
// 多边形绘制
|
|
375
|
+
drawPolFunc(name)
|
|
376
|
+
{
|
|
377
|
+
const drawPoint = cx.array.get1(this.paramDraw.tools[0], { name })
|
|
378
|
+
this.toolClickDraws(drawPoint)
|
|
379
|
+
},
|
|
380
|
+
// 清除
|
|
381
|
+
delVector()
|
|
382
|
+
{
|
|
383
|
+
this.clearDraw()
|
|
384
|
+
},
|
|
385
|
+
|
|
386
|
+
// 点击绘制
|
|
387
|
+
toolClickDraws(tool)
|
|
388
|
+
{
|
|
389
|
+
this.viewer.scene.globe.depthTestAgainstTerrain = true
|
|
390
|
+
this.coordinates = []
|
|
391
|
+
this.clearDraw()
|
|
392
|
+
this.nowDraw = tool
|
|
393
|
+
let params = this.setDrawParams(this.maxPos)
|
|
394
|
+
switch (tool.name)
|
|
395
|
+
{
|
|
396
|
+
case Point: this.draw = new cxe.DrawPoint(this.viewer, params); break
|
|
397
|
+
case LineString: this.draw = new cxe.DrawPolyline(this.viewer, params); break
|
|
398
|
+
case Polygon: this.draw = new cxe.DrawPolygon(this.viewer, params); break
|
|
399
|
+
case Rectangle: this.draw = new cxe.DrawRectangle(this.viewer, params); break
|
|
400
|
+
case Circle: this.draw = new cxe.DrawCircle(this.viewer, params); break
|
|
401
|
+
case Delete: this.clearDraw(); break
|
|
402
|
+
}
|
|
403
|
+
this.draw.start()
|
|
404
|
+
},
|
|
405
|
+
|
|
406
|
+
// 构造绘制参数
|
|
407
|
+
setDrawParams(maxPos)
|
|
408
|
+
{
|
|
409
|
+
this.drawLayer = new cxe.VectorLayer('layer')
|
|
410
|
+
let layer = this.drawLayer
|
|
411
|
+
this.viewer.layers.addLayer(layer)
|
|
412
|
+
|
|
413
|
+
let params = {
|
|
414
|
+
layer,
|
|
415
|
+
drawUpdate: this.drawUpdate,
|
|
416
|
+
drawFinish: this.drawFinish
|
|
417
|
+
}
|
|
418
|
+
if (maxPos)
|
|
419
|
+
params.maxPos = maxPos
|
|
420
|
+
return params
|
|
421
|
+
},
|
|
422
|
+
|
|
423
|
+
// 绘制完成的回调
|
|
424
|
+
drawFinish(args)
|
|
425
|
+
{
|
|
426
|
+
if (this.nowDraw.name === Point)
|
|
427
|
+
this.coordinates.push(args.graph.position._lng, args.graph.position._lat)
|
|
428
|
+
else if (this.nowDraw.name === LineString)
|
|
429
|
+
{
|
|
430
|
+
this.LineStringObj = args
|
|
431
|
+
setTimeout(() =>
|
|
432
|
+
{
|
|
433
|
+
this.drawLineString = true
|
|
434
|
+
}, 1)
|
|
435
|
+
}
|
|
436
|
+
else if (this.nowDraw.name === Circle)
|
|
437
|
+
this.getFullText(this.nowDraw.name, `${args.graph.center._lng},${args.graph.center._lat},${args.graph.radius}`)
|
|
438
|
+
else if (this.nowDraw.name === Rectangle)
|
|
439
|
+
{
|
|
440
|
+
let arr = []
|
|
441
|
+
args.graph.positions.forEach(item =>
|
|
442
|
+
{
|
|
443
|
+
arr.push([item._lng, item._lat])
|
|
444
|
+
})
|
|
445
|
+
arr = this.creatteRectangle({ x: arr[0][0], y: arr[0][1] }, { x: arr[1][0], y: arr[1][1] })
|
|
446
|
+
// 组织左下角,右上角点位
|
|
447
|
+
let val = `${arr[3][0]},${arr[3][1]},${arr[1][0]},${arr[1][1]}`
|
|
448
|
+
this.getFullText(this.nowDraw.name, val)
|
|
449
|
+
}
|
|
450
|
+
else
|
|
451
|
+
{
|
|
452
|
+
let arr = []
|
|
453
|
+
args.graph.positions.forEach(item =>
|
|
454
|
+
{
|
|
455
|
+
arr.push([item._lng, item._lat])
|
|
456
|
+
})
|
|
457
|
+
arr.push(arr[0])
|
|
458
|
+
|
|
459
|
+
this.coordinates.push(arr)
|
|
460
|
+
this.getFullText(this.nowDraw.name, arr.toString())
|
|
461
|
+
}
|
|
462
|
+
},
|
|
463
|
+
|
|
464
|
+
// 清除绘制
|
|
465
|
+
clearDraw()
|
|
466
|
+
{
|
|
467
|
+
this.coordinates = []
|
|
468
|
+
if (this.draw)
|
|
469
|
+
this.draw.destroy()
|
|
470
|
+
if (this.LineStringObj)
|
|
471
|
+
this.LineStringObj = null
|
|
472
|
+
if (this.pickCoor)
|
|
473
|
+
this.pickCoor.sleep()
|
|
474
|
+
if (this.htmlLayer)
|
|
475
|
+
this.viewer.layers.removeLayer(this.htmlLayer)
|
|
476
|
+
if (this.drawLayer)
|
|
477
|
+
this.viewer.layers.removeLayer(this.drawLayer)
|
|
478
|
+
if (this.billboardLayer)
|
|
479
|
+
this.viewer.layers.removeLayer(this.billboardLayer)
|
|
480
|
+
},
|
|
481
|
+
|
|
482
|
+
drawBq()
|
|
483
|
+
{
|
|
484
|
+
this.$emit('drawBq')
|
|
485
|
+
},
|
|
486
|
+
|
|
487
|
+
clearDrawBq()
|
|
488
|
+
{
|
|
489
|
+
this.$emit('clearDrawBq')
|
|
490
|
+
},
|
|
491
|
+
|
|
492
|
+
exportShp()
|
|
493
|
+
{
|
|
494
|
+
this.$emit('exportShp')
|
|
495
|
+
},
|
|
496
|
+
|
|
497
|
+
saveShp()
|
|
498
|
+
{
|
|
499
|
+
this.$emit('saveShp')
|
|
500
|
+
},
|
|
501
|
+
|
|
502
|
+
// 设置透明度opacity
|
|
503
|
+
setOpacity(value)
|
|
504
|
+
{
|
|
505
|
+
// 如果地球透明 globe.translucency.enabled 要设置为true
|
|
506
|
+
if (value === 1)
|
|
507
|
+
{
|
|
508
|
+
window.Viewer.scene.globe.translucency.enabled = false
|
|
509
|
+
window.Viewer.scene.globe.baseColor = new Cesium.Color(1 / 255, 19 / 255, 70 / 255, 1)
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
else
|
|
513
|
+
{
|
|
514
|
+
window.Viewer.scene.globe.translucency.enabled = true
|
|
515
|
+
window.Viewer.scene.globe.baseColor = new Cesium.Color(0, 0, 0, 0)
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
// 影像图层设置透明度
|
|
519
|
+
window.Viewer.imageryLayers._layers.forEach(layer =>
|
|
520
|
+
{
|
|
521
|
+
layer.alpha = value
|
|
522
|
+
})
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
</script>
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
<style lang='scss' scoped>
|
|
2
|
+
</style>
|
|
3
|
+
|
|
4
|
+
<template>
|
|
5
|
+
<DataPreview :baseMapArr="baseMapArr" :defSceneCfg="defSceneCfg" :services="att" :legendList="legendList" :showBaseMap="showBaseMap"></DataPreview>
|
|
6
|
+
</template>
|
|
7
|
+
|
|
8
|
+
<script>
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* 插件 - 空间数据预览插件
|
|
12
|
+
*
|
|
13
|
+
* 调用说明:
|
|
14
|
+
* @prop {Object} xxxxxx 描述参数
|
|
15
|
+
*
|
|
16
|
+
* @event event 响应方法以及参数
|
|
17
|
+
*
|
|
18
|
+
* @slot default 描述
|
|
19
|
+
*
|
|
20
|
+
* 参数说明:
|
|
21
|
+
* xxx参数
|
|
22
|
+
* @param {Object} xxx 描述参数
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* 修改记录:
|
|
27
|
+
* 22-06-20 姓名 修改内容
|
|
28
|
+
*/
|
|
29
|
+
import DataPreview from './DataPreview.vue'
|
|
30
|
+
export default
|
|
31
|
+
{
|
|
32
|
+
mixins: [cx.mixin.IPlugBase],
|
|
33
|
+
components: { DataPreview },
|
|
34
|
+
|
|
35
|
+
data()
|
|
36
|
+
{
|
|
37
|
+
return {
|
|
38
|
+
baseMapArr: [],
|
|
39
|
+
defSceneCfg: {},
|
|
40
|
+
att: {},
|
|
41
|
+
legendList: [],
|
|
42
|
+
showBaseMap: null
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
// 计算属性,依赖其他数据数字计算
|
|
47
|
+
computed:
|
|
48
|
+
{},
|
|
49
|
+
|
|
50
|
+
// 属性监听,处理属性变化后有大量操作
|
|
51
|
+
watch:
|
|
52
|
+
{
|
|
53
|
+
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
// 初始化组件,data中数据变量赋值
|
|
57
|
+
created()
|
|
58
|
+
{
|
|
59
|
+
this.baseMapArr = this.params.baseMapArr
|
|
60
|
+
this.defSceneCfg = this.params.defSceneCfg || {}
|
|
61
|
+
this.att = this.params.att || {}
|
|
62
|
+
this.legendList = this.params.legendList
|
|
63
|
+
this.showBaseMap = this.params.showBaseMap
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
// 组件dom挂载成功
|
|
67
|
+
mounted()
|
|
68
|
+
{},
|
|
69
|
+
|
|
70
|
+
// 销毁前
|
|
71
|
+
beforeUnmount()
|
|
72
|
+
{},
|
|
73
|
+
|
|
74
|
+
// 按功能相关性组织函数块,函数名体现功能
|
|
75
|
+
methods:
|
|
76
|
+
{
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
</script>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
class ReadShpFile
|
|
2
|
+
{
|
|
3
|
+
/**
|
|
4
|
+
* 解析url字段,需要shp、dbf路径,支持两种方式,忽略大小写
|
|
5
|
+
* 1. { url: 'shp:xx/xx.shp;dbf:xx/xx.dbf' } 2. { shpUrl:'xx/.shp',dbfUrl:'xx/xx.dbf' }
|
|
6
|
+
* @param {Object} att shp文件属性
|
|
7
|
+
* @returns {object} shp, dbf路径
|
|
8
|
+
*/
|
|
9
|
+
static parseUrl(att)
|
|
10
|
+
{
|
|
11
|
+
let shp, dbf
|
|
12
|
+
if (att.url)
|
|
13
|
+
{
|
|
14
|
+
let res = this.urlDb(att.url)
|
|
15
|
+
shp = res.shp
|
|
16
|
+
dbf = res.dbf
|
|
17
|
+
}
|
|
18
|
+
else if (att.shpUrl && att.dbfUrl)
|
|
19
|
+
{
|
|
20
|
+
shp = att.shpUrl
|
|
21
|
+
dbf = att.dbfUrl
|
|
22
|
+
}
|
|
23
|
+
return { shp, dbf }
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// 方式1的参数
|
|
27
|
+
static urlDb(url, shp, dbf)
|
|
28
|
+
{
|
|
29
|
+
const shp_ = 'shp:', dbf_ = 'dbf:'
|
|
30
|
+
if (url.toLowerCase().includes(shp_) && url.toLowerCase().includes(dbf_))
|
|
31
|
+
{
|
|
32
|
+
let arr = url.split(';')
|
|
33
|
+
arr.forEach(item =>
|
|
34
|
+
{
|
|
35
|
+
if (item.toLowerCase().includes(shp_)) shp = item.split(':')[1]
|
|
36
|
+
if (item.toLowerCase().includes(dbf_)) dbf = item.split(':')[1]
|
|
37
|
+
})
|
|
38
|
+
}
|
|
39
|
+
return { shp, dbf }
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export default ReadShpFile
|