From d75e47f5a8d2df158a3dd33b7b598a97854ea1df Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Mon, 09 Dec 2024 19:59:27 +0800
Subject: [PATCH] 扫码报警页面模型遮挡图标处理 默认显示影像+轻量处理 阵地管理页面模型遮挡图标处理 从业人员页面模型遮挡图标处理 群众上报页面模型遮挡图标处理 九小场所页面模型遮挡图标处理
---
src/components/map/index.vue | 1039 ++++++++++++++++++++++++++-------------------------------
1 files changed, 477 insertions(+), 562 deletions(-)
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index f1cfadc..313f494 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -2,22 +2,15 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-06-21 16:37:19
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-08-21 21:38:56
+ * @LastEditTime: 2024-12-09 19:48:35
* @FilePath: \srs-police-affairs\src\components\map\index.vue
* @Description:
*
* Copyright (c) 2024 by shuishen, All Rights Reserved.
-->
<template>
- <div
- class="viewer-box"
- id="viewer-container"
- @click="showImgBtn = false"
- >
- <slot
- ref="mainContent"
- name="mainContent"
- ></slot>
+ <div class="viewer-box" id="viewer-container" @click="showImgBtn = false">
+ <slot ref="mainContent" name="mainContent"></slot>
<slot name="copyrightText"></slot>
@@ -26,122 +19,52 @@
<slot name="resetPopup"></slot>
<div class="compass-btn">
- <el-tooltip
- content="指北针"
- placement="top"
- effect="dark"
- >
- <i
- id="COMPASSBTN"
- class="el-icon-compass-btn"
- style="vertical-align: middle; cursor: pointer"
- :style="{ transform: compassBtnTranslate }"
- @click="compassBtnClick"
- ></i>
+ <el-tooltip content="指北针" placement="top" effect="dark">
+ <i id="COMPASSBTN" class="el-icon-compass-btn" style="vertical-align: middle; cursor: pointer"
+ :style="{ transform: compassBtnTranslate }" @click="compassBtnClick"></i>
</el-tooltip>
</div>
<div class="over-look-btn">
- <el-tooltip
- content="一键俯视"
- placement="top"
- effect="dark"
- >
- <i
- class="fa fa-eye"
- style="vertical-align: middle; cursor: pointer"
- @click="overLookClick"
- ></i>
+ <el-tooltip content="一键俯视" placement="top" effect="dark">
+ <i class="fa fa-eye" style="vertical-align: middle; cursor: pointer" @click="overLookClick"></i>
</el-tooltip>
</div>
<!-- 全屏控制按钮 -->
<div class="screen-full-btn">
- <el-tooltip
- v-if="!isShowHomeContentBtn && isFullscreen"
- content="缩放"
- placement="top"
- effect="dark"
- >
- <i
- class="fa fa-compress"
- style="vertical-align: middle; cursor: pointer"
- @click="fullscreenchange"
- ></i>
+ <el-tooltip v-if="!isShowHomeContentBtn && isFullscreen" content="缩放" placement="top" effect="dark">
+ <i class="fa fa-compress" style="vertical-align: middle; cursor: pointer" @click="fullscreenchange"></i>
</el-tooltip>
- <el-tooltip
- v-if="!isShowHomeContentBtn && !isFullscreen"
- content="全屏"
- placement="top"
- effect="dark"
- >
- <i
- class="fa fa-expand"
- style="vertical-align: middle; cursor: pointer"
- @click="fullscreenchange"
- ></i>
+ <el-tooltip v-if="!isShowHomeContentBtn && !isFullscreen" content="全屏" placement="top" effect="dark">
+ <i class="fa fa-expand" style="vertical-align: middle; cursor: pointer" @click="fullscreenchange"></i>
</el-tooltip>
- <el-tooltip
- v-if="isShowHomeContentBtn"
- content="显示/隐藏"
- placement="top"
- effect="dark"
- >
- <i
- class="fa fa-expand"
- style="vertical-align: middle; cursor: pointer"
- @click="switchShowHomeContent"
- ></i>
+ <el-tooltip v-if="isShowHomeContentBtn" content="显示/隐藏" placement="top" effect="dark">
+ <i class="fa fa-expand" style="vertical-align: middle; cursor: pointer" @click="switchShowHomeContent"></i>
</el-tooltip>
</div>
<!-- 切换矢量图按钮 -->
<div class="image-switch-icon-btn">
- <el-tooltip
- content="图层、模型、视角"
- placement="top"
- effect="dark"
- >
- <div
- class="icon-box"
- @click.stop="showImgBtn = !showImgBtn"
- >
- <img
- src="/img/base_map.png"
- alt
- />
+ <el-tooltip content="图层、模型、视角" placement="top" effect="dark">
+ <div class="icon-box" @click.stop="showImgBtn = !showImgBtn">
+ <img src="/img/base_map.png" alt />
</div>
</el-tooltip>
- <div
- class="image-switch-img-btn"
- v-show="showImgBtn"
- @click.stop
- >
+ <div class="image-switch-img-btn" v-show="showImgBtn" @click.stop>
<div class="layer-change-box">
<div class="title">
底图
- <div
- class="close"
- @click.stop="showImgBtn = false"
- >
- <img
- src="/img/icon/close.png"
- alt
- />
+ <div class="close" @click.stop="showImgBtn = false">
+ <img src="/img/icon/close.png" alt />
</div>
</div>
<div class="content">
- <div
- class="img"
- @click.stop="switchImg"
- >
+ <div class="img" @click.stop="switchImg">
<span :class="{ on: imgtype == 0 }">影像</span>
</div>
- <div
- class="elec"
- @click.stop="switchElec"
- >
+ <div class="elec" @click.stop="switchElec">
<span :class="{ on: imgtype == 1 }">矢量</span>
</div>
</div>
@@ -149,26 +72,17 @@
<div class="layer-change-box">
<div class="title">模型</div>
<div class="content">
- <div
- class="img light"
- @click.stop="highOrLightChange('light')"
- >
+ <div class="img light" @click.stop="highOrLightChange('light')">
<span :class="{ on: tilesetLayerType == 'light' }">轻量</span>
</div>
- <div
- class="elec high"
- @click.stop="highOrLightChange('high')"
- >
+ <div class="elec high" @click.stop="highOrLightChange('high')">
<span :class="{ on: tilesetLayerType == 'high' }">高精</span>
</div>
</div>
</div>
<div class="angle-btn">
是否锁定视角:
- <el-checkbox
- v-model="angleCheck"
- @change="angleChange"
- ></el-checkbox>
+ <el-checkbox v-model="angleCheck" @change="angleChange"></el-checkbox>
</div>
</div>
</div>
@@ -202,19 +116,19 @@
</template>
<script>
-let tile3DUrl = "";
+let tile3DUrl = ""
if (process.env.NODE_ENV == "development") {
// 开发
- tile3DUrl = window.BASE_URL_CONFIG.VUE_APP_OUTER_NET_TILEURL;
+ tile3DUrl = window.BASE_URL_CONFIG.VUE_APP_OUTER_NET_TILEURL
} else {
// 部署
- tile3DUrl = window.BASE_URL_CONFIG.VUE_APP_INTRANET_TILEURL;
+ tile3DUrl = window.BASE_URL_CONFIG.VUE_APP_INTRANET_TILEURL
}
-let projectTerrain = null;
+let projectTerrain = null
-var siteEntitylayers = null;
+var siteEntitylayers = null
let layersObjcect = {
housingEstateLayer: null,
@@ -222,18 +136,18 @@
handMachineLayer: null,
monitoringLayer: null,
panoramaLayer: null,
-};
-let polygonObj = {};
+}
+let polygonObj = {}
-let tilesetLayer = null;
+let tilesetLayer = null
-let baseLayers = [];
+let baseLayers = []
let tilesetObject = {
sdTilesetLayer: null,
-};
+}
-let curPolygon = null;
+let curPolygon = null
const ysLabels = [
"EPSG:4490_test:0",
@@ -259,23 +173,23 @@
"EPSG:4490_test:20",
"EPSG:4490_test:21",
"EPSG:4490_test:22",
-];
+]
-import mapPopup from "./components/mapPopup.vue";
-import architecturePopup from "./components/architecturePopup.vue";
-import activityPolicePopup from "./components/activityPolicePopup.vue";
-import multipMapPopup from "./components/multipMapPopup.vue";
-import videoListPopup from "./components/videoListPopup.vue";
-import videoRowClickPopup from "./components/videoRowClickPopup.vue";
-import mapSearchPopup from "./components/mapSearchPopup.vue";
-import houseDeepDataPopup from "./components/houseDeepDataPopup.vue";
-import hotelPopup from "./components/hotelPopup.vue";
-import businessDataPopup from "./components/businessDataPopup.vue";
-import dialogDetailPopup from "./components/dialogDetailPopup.vue";
-import yToolTip from "./components/yToolTip.vue";
-import createTools from "@/utils/tools/index";
-import { mapGetters } from "vuex";
-import { getLineSpeed } from "@/utils/turfPolygon";
+import mapPopup from "./components/mapPopup.vue"
+import architecturePopup from "./components/architecturePopup.vue"
+import activityPolicePopup from "./components/activityPolicePopup.vue"
+import multipMapPopup from "./components/multipMapPopup.vue"
+import videoListPopup from "./components/videoListPopup.vue"
+import videoRowClickPopup from "./components/videoRowClickPopup.vue"
+import mapSearchPopup from "./components/mapSearchPopup.vue"
+import houseDeepDataPopup from "./components/houseDeepDataPopup.vue"
+import hotelPopup from "./components/hotelPopup.vue"
+import businessDataPopup from "./components/businessDataPopup.vue"
+import dialogDetailPopup from "./components/dialogDetailPopup.vue"
+import yToolTip from "./components/yToolTip.vue"
+import createTools from "@/utils/tools/index"
+import { mapGetters } from "vuex"
+import { getLineSpeed } from "@/utils/turfPolygon"
export default {
name: "mapBox",
@@ -295,7 +209,7 @@
videoRowClickPopup,
},
- data() {
+ data () {
return {
fullscreen: false,
isFullscreen: false,
@@ -312,21 +226,21 @@
tilesetLayerType: "",
angleCheck: true,
compassBtnTranslate: "rotate(0deg)",
- };
+ }
},
computed: {
...mapGetters(["isShowHomeContentBtn"]),
},
- mounted() {
+ mounted () {
if (global.viewer != null) {
- global.viewer = null;
+ global.viewer = null
}
- const that = this;
+ const that = this
// 初始化地图
- function initViewer() {
+ function initViewer () {
// new Viewer(new 地图)
global.viewer = new global.DC.Viewer("viewer-container", {
contextOptions: {
@@ -336,19 +250,19 @@
preserveDrawingBuffer: true,
},
},
- });
+ })
global.viewer.scene.postRender.addEventListener(function () {
- var heading = global.viewer.scene.camera.heading;
- var x = -global.DC.Namespace.Cesium.Math.toDegrees(heading);
- that.compassBtnTranslate = "rotate(" + x + "deg)";
- });
+ var heading = global.viewer.scene.camera.heading
+ var x = -global.DC.Namespace.Cesium.Math.toDegrees(heading)
+ that.compassBtnTranslate = "rotate(" + x + "deg)"
+ })
- const curTools = createTools();
+ const curTools = createTools()
Object.keys(curTools).forEach((key) => {
- curTools[key].install(global.viewer);
- });
+ curTools[key].install(global.viewer)
+ })
// let curTilesetLayer = new global.DC.TilesetLayer('curTilesetLayer')
// global.viewer.addLayer(curTilesetLayer)
@@ -359,41 +273,41 @@
// curTileset.setHeight(0)
// curTilesetLayer.addOverlay(curTileset)
- global.viewer.setPitchRange(-90, -45);
+ global.viewer.setPitchRange(-90, -45)
- global.viewer.scene.globe.depthTestAgainstTerrain = false;
+ global.viewer.scene.globe.depthTestAgainstTerrain = false
// 去除logo
- let primitiveArr = global.viewer.scene.primitives._primitives;
- global.viewer.scene.primitives.remove(primitiveArr[0]);
+ let primitiveArr = global.viewer.scene.primitives._primitives
+ global.viewer.scene.primitives.remove(primitiveArr[0])
// 已声明的图层添加到地图上
- siteEntitylayers = new global.DC.VectorLayer("siteEntitylayers");
- global.viewer.addLayer(siteEntitylayers);
+ siteEntitylayers = new global.DC.VectorLayer("siteEntitylayers")
+ global.viewer.addLayer(siteEntitylayers)
// 图层加入地图
layersObjcect.housingEstateLayer = new global.DC.VectorLayer(
"housingEstateLayer"
- );
- global.viewer.addLayer(layersObjcect.housingEstateLayer);
+ )
+ global.viewer.addLayer(layersObjcect.housingEstateLayer)
layersObjcect.patrolWagonLayer = new global.DC.VectorLayer(
"patrolWagonLayer"
- );
- global.viewer.addLayer(layersObjcect.patrolWagonLayer);
+ )
+ global.viewer.addLayer(layersObjcect.patrolWagonLayer)
layersObjcect.handMachineLayer = new global.DC.VectorLayer(
"handMachineLayer"
- );
- global.viewer.addLayer(layersObjcect.handMachineLayer);
+ )
+ global.viewer.addLayer(layersObjcect.handMachineLayer)
layersObjcect.monitoringLayer = new global.DC.VectorLayer(
"monitoringLayer"
- );
- global.viewer.addLayer(layersObjcect.monitoringLayer);
- layersObjcect.panoramaLayer = new global.DC.VectorLayer("panoramaLayer");
- global.viewer.addLayer(layersObjcect.panoramaLayer);
+ )
+ global.viewer.addLayer(layersObjcect.monitoringLayer)
+ layersObjcect.panoramaLayer = new global.DC.VectorLayer("panoramaLayer")
+ global.viewer.addLayer(layersObjcect.panoramaLayer)
// 模型图层添加
- tilesetLayer = new global.DC.TilesetLayer("tilesetLayer");
- global.viewer.addLayer(tilesetLayer);
+ tilesetLayer = new global.DC.TilesetLayer("tilesetLayer")
+ global.viewer.addLayer(tilesetLayer)
// 加载围栏
// let layer = new global.DC.VectorLayer('layer')
@@ -420,7 +334,7 @@
) {
global.viewer.setOptions({
resolutionScale: window.devicePixelRatio,
- });
+ })
}
// let terrain = global.DC.TerrainFactory.createUrlTerrain({
@@ -429,7 +343,8 @@
// global.viewer.addTerrain(terrain)
// 内网
- that.switchImg();
+ that.switchImg()
+ that.highOrLightChange('light')
// 地形数据添加
// that.addTerrain()
@@ -461,7 +376,7 @@
pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
roll: 0.0,
},
- });
+ })
let positions = [
[117.951478782, 28.447896798, 0],
@@ -474,16 +389,16 @@
[117.951834021, 28.447588427, 0],
[117.951896863, 28.447789523, 0],
[117.951478782, 28.447896798, 0],
- ];
+ ]
let MIN_F_H = positions.map((item) => {
- item[2] = 70;
- return item;
- });
+ item[2] = 70
+ return item
+ })
let MAN_F_H = positions.map((item) => {
- item[2] = 80;
- return item;
- });
+ item[2] = 80
+ return item
+ })
// 原生Cesium加载多边体
// let floorPositions = positions.reduce((prev, curr, index, arr) => {
@@ -529,11 +444,11 @@
// global.viewer.flyTo(sqTileset)
- global.viewer.use(new global.DC.Measure());
+ global.viewer.use(new global.DC.Measure())
// global.viewer.locationBar.enable = true
// 缩放
- global.viewer.zoomController.enable = true;
+ global.viewer.zoomController.enable = true
// 比例尺
// global.viewer.distanceLegend.enable = true
@@ -544,30 +459,30 @@
// })
}
- global.DC.ready(initViewer);
+ global.DC.ready(initViewer)
// global.viewer.scene.morphTo2D(1)
// 清除控制台
- console.clear();
+ console.clear()
- function isEleFullScreen() {
+ function isEleFullScreen () {
const fullScreenEle =
document.fullscreenElement ||
document.msFullscreenElement ||
document.mozFullScreenElement ||
- document.webkitFullscreenElement;
+ document.webkitFullscreenElement
if (fullScreenEle === null) {
- that.isFullscreen = false;
- return false;
+ that.isFullscreen = false
+ return false
} else {
- return true;
+ return true
}
}
window.onresize = function () {
- console.log(isEleFullScreen());
- };
+ console.log(isEleFullScreen())
+ }
// 注册事件
@@ -578,32 +493,32 @@
// })
this.$EventBus.$on("mapAddLayer", (params) => {
- that.mapAddLayer(params.layerName, params.type);
- });
+ that.mapAddLayer(params.layerName, params.type)
+ })
this.$EventBus.$on("mapRemoveLayer", (params) => {
- that.mapRemoveLayer(params.layerName, params.type);
- });
+ that.mapRemoveLayer(params.layerName, params.type)
+ })
this.$EventBus.$on("mapRemoveSiteLayer", (params) => {
- that.mapRemoveSiteLayer(params.layerName, params.siteId);
- });
+ that.mapRemoveSiteLayer(params.layerName, params.siteId)
+ })
this.$EventBus.$on("mapRemovePolygonLayer", (params) => {
that.mapRemovePolygonLayer(
params.layerName,
params.polygonName,
params.type
- );
- });
+ )
+ })
this.$EventBus.$on("mapRemovePolygon", (params) => {
- that.mapRemovePolygon(params.layerName, params.overlay, params.type);
- });
+ that.mapRemovePolygon(params.layerName, params.overlay, params.type)
+ })
this.$EventBus.$on("mapClearLayer", (params) => {
- that.mapClearLayer(params.layerName, params.type);
- });
+ that.mapClearLayer(params.layerName, params.type)
+ })
this.$EventBus.$on("layerPointAdd", (params) => {
// eslint-disable-next-line no-unused-vars
@@ -617,8 +532,8 @@
params.mouseOverIncident,
params.mouseOutIncident,
params.pointMouseMove
- );
- });
+ )
+ })
this.$EventBus.$on("layerPolygonAdd", (params) => {
if ("polygonName" in params) {
@@ -633,7 +548,7 @@
params.mouseOverIncident,
params.mouseOutIncident,
params.setStyle
- );
+ )
} else {
that.layerPolygonAdd(
params.layerName,
@@ -646,9 +561,9 @@
params.mouseOverIncident,
params.mouseOutIncident,
params.setStyle
- );
+ )
}
- });
+ })
this.$EventBus.$on("layerPolygonArrowsAdd", (params) => {
that.layerPolygonArrowsAdd(
@@ -661,8 +576,8 @@
params.mouseOverIncident,
params.mouseOutIncident,
params.setStyle
- );
- });
+ )
+ })
this.$EventBus.$on("layerPolylineAdd", (params) => {
that.layerPolylineAdd(
@@ -672,24 +587,24 @@
params.width,
params.params,
params.incident
- );
- });
+ )
+ })
this.$EventBus.$on("layerWallAdd", (params) => {
- that.layerWallAdd(params.layerName, params.positions);
- });
+ that.layerWallAdd(params.layerName, params.positions)
+ })
this.$EventBus.$on("rowLayerWallAdd", (params) => {
- that.rowLayerWallAdd(params.layerName, params.positions);
- });
+ that.rowLayerWallAdd(params.layerName, params.positions)
+ })
this.$EventBus.$on("getOverLayerID", (params) => {
- that.getOverLayerID(params.layerName, params.ids, params.cb);
- });
+ that.getOverLayerID(params.layerName, params.ids, params.cb)
+ })
this.$EventBus.$on("layerShow", (params) => {
- that.layerShow(params.layerName, params.flag);
- });
+ that.layerShow(params.layerName, params.flag)
+ })
this.$EventBus.$on("toPosition", (params) => {
that.toPosition(
@@ -700,64 +615,64 @@
params.sitePitch,
params.siteRoll,
params.time
- );
- });
+ )
+ })
this.$EventBus.$on("highOrLightChange", (type, status) => {
// eslint-disable-next-line no-unused-vars
- that.highOrLightChange(type, status);
- });
+ that.highOrLightChange(type, status)
+ })
this.$EventBus.$on("addMxTileset", (params) => {
// eslint-disable-next-line no-unused-vars
- that.addMxTileset(params.titlesetName, params.titlesetUrl, params);
- });
+ that.addMxTileset(params.titlesetName, params.titlesetUrl, params)
+ })
this.$EventBus.$on("closeMxTileset", () => {
// eslint-disable-next-line no-unused-vars
- that.closeMxTileset();
- });
+ that.closeMxTileset()
+ })
this.$EventBus.$on("tilesetLayerFlag", (type, cb) => {
// eslint-disable-next-line no-unused-vars
- that.tilesetLayerFlag(type, cb);
- });
+ that.tilesetLayerFlag(type, cb)
+ })
this.$EventBus.$on("removeMxTileset", (params) => {
// eslint-disable-next-line no-unused-vars
- that.removeMxTileset(params.titlesetName);
- });
+ that.removeMxTileset(params.titlesetName)
+ })
this.$EventBus.$on("flytoLayer", (params) => {
- that.flytoLayer(params.polygonName, params.duration);
- });
+ that.flytoLayer(params.polygonName, params.duration)
+ })
this.$EventBus.$on("showThreeDimensions", (params) => {
that.showThreeDimensions(
params.positions,
params.minHeight,
params.maxHeight
- );
- });
+ )
+ })
this.$EventBus.$on("switchThreeDimensions", (params) => {
- that.switchThreeDimensions(params);
- });
+ that.switchThreeDimensions(params)
+ })
this.$EventBus.$on("clearHouse3D", () => {
- that.clearHouse3D();
- });
+ that.clearHouse3D()
+ })
this.$EventBus.$on("registerMxClick", (event) => {
- that.registerMxClick(event);
- });
+ that.registerMxClick(event)
+ })
this.$EventBus.$on("unbindMxClick", (event) => {
- that.unbindMxClick(event);
- });
+ that.unbindMxClick(event)
+ })
// 重写定位方法
- const homeCenter = [117.99311892441567, 28.46938164123123];
+ const homeCenter = [117.99311892441567, 28.46938164123123]
this.$nextTick(() => {
// console.log('dc-zoom-controller', document.querySelector('.dc-zoom-controller'))
// if (document.querySelector('.dc-zoom-controller') == null) return
@@ -772,37 +687,37 @@
// })
// }
// document.querySelector('.dc-zoom-controller .refresh svg title').innerHTML = '初始化位置'
- });
+ })
},
methods: {
// 获取当前地图中心的经纬度
- getSceneCenterPosition(viewer) {
+ getSceneCenterPosition (viewer) {
let centerResult = viewer.camera.pickEllipsoid(
new global.DC.Namespace.Cesium.Cartesian2(
viewer.canvas.clientWidth / 2,
viewer.canvas.clientHeight / 2
)
- );
+ )
let curPosition =
global.DC.Namespace.Cesium.Ellipsoid.WGS84.cartesianToCartographic(
centerResult
- );
- let curLongitude = (curPosition.longitude * 180) / Math.PI;
- let curLatitude = (curPosition.latitude * 180) / Math.PI;
+ )
+ let curLongitude = (curPosition.longitude * 180) / Math.PI
+ let curLatitude = (curPosition.latitude * 180) / Math.PI
return {
lon: curLongitude,
lat: curLatitude,
- };
+ }
},
- compassBtnClick() {
- const degrees = global.viewer.camera.heading * (180 / Math.PI);
+ compassBtnClick () {
+ const degrees = global.viewer.camera.heading * (180 / Math.PI)
if (degrees == 360) {
- return;
+ return
}
const position = global.DC.Transform.transformCartesianToWGS84(
global.viewer.camera.position
- );
+ )
global.viewer.camera.flyTo({
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
@@ -823,17 +738,17 @@
roll: global.viewer.camera.roll,
},
duration: 3,
- });
+ })
},
- overLookClick() {
- const degrees = global.viewer.camera.pitch * (180 / Math.PI);
+ overLookClick () {
+ const degrees = global.viewer.camera.pitch * (180 / Math.PI)
if (degrees == -90) {
- return;
+ return
}
- const position = this.getSceneCenterPosition(global.viewer);
+ const position = this.getSceneCenterPosition(global.viewer)
global.viewer.camera.flyTo({
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
@@ -851,10 +766,10 @@
roll: global.viewer.camera.roll,
},
duration: 3,
- });
+ })
},
- angleChange(e) {
+ angleChange (e) {
if (e) {
global.viewer.camera.flyTo({
destination: global.viewer.camera.position,
@@ -864,20 +779,20 @@
roll: global.viewer.camera.roll,
},
duration: 0.0,
- });
+ })
- global.viewer.setPitchRange(-90, -45);
+ global.viewer.setPitchRange(-90, -45)
} else {
- global.viewer.setPitchRange(-90, 0);
+ global.viewer.setPitchRange(-90, 0)
}
},
- closeMxTileset() {
+ closeMxTileset () {
window.TILESET_LABEL.forEach((item) => {
- this.removeMxTileset(`sdTilesetLayer${item.name}`);
- });
+ this.removeMxTileset(`sdTilesetLayer${item.name}`)
+ })
- this.tilesetLayerType = "";
+ this.tilesetLayerType = ""
},
/**
@@ -885,67 +800,67 @@
* @param {*} type
* @return {*}
*/
- highOrLightChange(type, status = "") {
+ highOrLightChange (type, status = "") {
this.$EventBus.$emit("showHouseingTileset", {
type: "remove",
- });
+ })
window.TILESET_LABEL.forEach((item) => {
- this.removeMxTileset(`sdTilesetLayer${item.name}`);
- });
+ this.removeMxTileset(`sdTilesetLayer${item.name}`)
+ })
// this.addMxTileset('sdTilesetLayer', `${tile3DUrl}/sf3d/361102/model/wanda/tileset.json`)
// this.addMxTileset('sdTilesetLayer02', `https://tuan-gis.sit.fengtu.com.cn/361102/wanda/tileset.json`)
// this.addMxTileset('sdTilesetLayer', `/mx/01/tileset.json`)
if (this.tilesetLayerType == type && status == "") {
- this.tilesetLayerType = "";
+ this.tilesetLayerType = ""
} else {
- this.tilesetLayerType = type;
+ this.tilesetLayerType = type
type == "light"
? window.TILESET_LABEL.forEach((item) => {
- this.addMxTileset(
- `sdTilesetLayer${item.name}`,
- `${tile3DUrl}/sf3d/361102/model/all/${item.name}/tileset.json`,
- item
- );
- })
+ this.addMxTileset(
+ `sdTilesetLayer${item.name}`,
+ `${tile3DUrl}/sf3d/361102/model/all/${item.name}/tileset.json`,
+ item
+ )
+ })
: window.TILESET_LABEL.forEach((item) => {
- this.addMxTileset(
- `sdTilesetLayer${item.name}`,
- `${tile3DUrl}/sf3d/361102/model/all1/${item.name}/tileset.json`,
- item
- );
- });
+ this.addMxTileset(
+ `sdTilesetLayer${item.name}`,
+ `${tile3DUrl}/sf3d/361102/model/all1/${item.name}/tileset.json`,
+ item
+ )
+ })
if (this.$route.path == "/layout/house") {
this.$EventBus.$emit("showHouseingTileset", {
type: "add",
- });
+ })
}
}
},
// 模型的点击事件
- tilesetClick(e) {
+ tilesetClick (e) {
if (this.$route.path != "/layout/house") {
this.$router.push({
path: "/layout/house",
query: { searchName: "xxx小区" },
- });
+ })
}
},
- switchImg() {
+ switchImg () {
// 天地图 影像
- this.imgtype = 0;
+ this.imgtype = 0
baseLayers.length &&
baseLayers.forEach((item) => {
- item && global.viewer.imageryLayers.remove(item);
- });
+ item && global.viewer.imageryLayers.remove(item)
+ })
- baseLayers = [];
+ baseLayers = []
// const layer = global.viewer.imageryLayers.addImageryProvider(
// new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
@@ -964,21 +879,21 @@
new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
url: `/qp/{AZ}/{y}/{x}.png`,
customTags: {
- AZ(imageryProvider, x, y, level) {
- return "Z" + level;
+ AZ (imageryProvider, x, y, level) {
+ return "Z" + level
},
},
minimumLevel: 0,
maximumLevel: 25,
})
- );
+ )
- qp.contrast = 0.8;
+ qp.contrast = 0.8
- baseLayers.push(qp);
+ baseLayers.push(qp)
window.YX_LAYER_CONFIG.forEach((item) => {
- let rectangle = {};
+ let rectangle = {}
if (
item.west != 0 &&
@@ -993,29 +908,29 @@
Number(item.east),
Number(item.north)
),
- };
+ }
} else {
- return;
+ return
}
const layer = global.viewer.imageryLayers.addImageryProvider(
new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
url: `${window.BASE_URL_CONFIG.VUE_APP_MAP_YX}/${item.name}/{AZ}/{y}/{x}.png`,
customTags: {
- AZ(imageryProvider, x, y, level) {
- return "Z" + level;
+ AZ (imageryProvider, x, y, level) {
+ return "Z" + level
},
},
minimumLevel: 0,
maximumLevel: 25,
...rectangle,
})
- );
+ )
- layer.contrast = 0.8;
+ layer.contrast = 0.8
- baseLayers.push(layer);
- });
+ baseLayers.push(layer)
+ })
if (window.ADD_NEW_YX_LAYER_CONFIG.length > 0) {
window.ADD_NEW_YX_LAYER_CONFIG.forEach((item) => {
@@ -1023,19 +938,19 @@
new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
url: `${window.BASE_URL_CONFIG.VUE_APP_MAP_YX}/addlayer/${item.name}/{AZ}/{y}/{x}.png`,
customTags: {
- AZ(imageryProvider, x, y, level) {
- return "Z" + level;
+ AZ (imageryProvider, x, y, level) {
+ return "Z" + level
},
},
minimumLevel: 0,
maximumLevel: 25,
})
- );
+ )
- layer.contrast = 0.8;
+ layer.contrast = 0.8
- baseLayers.push(layer);
- });
+ baseLayers.push(layer)
+ })
}
// baseLayers = global.viewer.imageryLayers.addImageryProvider(
@@ -1051,16 +966,16 @@
// )
},
- switchElec() {
+ switchElec () {
// 天地图 矢量
- this.imgtype = 1;
+ this.imgtype = 1
baseLayers.length &&
baseLayers.forEach((item) => {
- item && global.viewer.imageryLayers.remove(item);
- });
+ item && global.viewer.imageryLayers.remove(item)
+ })
- baseLayers = [];
+ baseLayers = []
baseLayers.push(
global.viewer.imageryLayers.addImageryProvider(
@@ -1075,87 +990,87 @@
new global.DC.Namespace.Cesium.GeographicTilingScheme(),
})
)
- );
+ )
- baseLayers.contrast = 1.0;
+ baseLayers.contrast = 1.0
},
- addTerrain() {
+ addTerrain () {
projectTerrain = global.DC.TerrainFactory.createUrlTerrain({
// url: `http://data.marsgis.cn/terrain`
url: `${window.BASE_URL_CONFIG.VUE_APP_MAP_DX}`,
- });
+ })
- global.viewer.addTerrain(projectTerrain);
+ global.viewer.addTerrain(projectTerrain)
},
- removeTerrain() {
- global.viewer.removeTerrain(projectTerrain);
+ removeTerrain () {
+ global.viewer.removeTerrain(projectTerrain)
},
/**
* @description: 全屏控制
* @return {*} 无返回值
*/
- fullscreenchange() {
+ fullscreenchange () {
// 最新写法
- const isFullScreen = document.fullscreenElement;
+ const isFullScreen = document.fullscreenElement
if (isFullScreen) {
if (document.exitFullscreen) {
- document.exitFullscreen();
+ document.exitFullscreen()
} else if (document.msExitFullscreen) {
- document.msExitFullscreen();
+ document.msExitFullscreen()
} else if (document.mozCancelFullScreen) {
- document.mozCancelFullScreen();
+ document.mozCancelFullScreen()
} else if (document.webkitCancelFullScreen) {
- document.webkitCancelFullScreen();
+ document.webkitCancelFullScreen()
}
- this.isFullscreen = false;
+ this.isFullscreen = false
} else {
- var fullscreen = document.body; // 需要全屏的元素
+ var fullscreen = document.body // 需要全屏的元素
if (fullscreen.requestFullscreen) {
- fullscreen.requestFullscreen();
+ fullscreen.requestFullscreen()
} else if (fullscreen.mozRequestFullScreen) {
- fullscreen.mozRequestFullScreen();
+ fullscreen.mozRequestFullScreen()
} else if (fullscreen.webkitRequestFullscreen) {
- fullscreen.webkitRequestFullscreen();
+ fullscreen.webkitRequestFullscreen()
} else if (fullscreen.msRequestFullscreen) {
- fullscreen.msRequestFullscreen();
+ fullscreen.msRequestFullscreen()
}
- this.isFullscreen = true;
+ this.isFullscreen = true
}
},
// 切换首页显示隐藏
- switchShowHomeContent() {
+ switchShowHomeContent () {
this.$store.commit(
"SET_ISSHOWHOMECONTENT",
!this.$store.state.popupParams.isShowHomeContent
- );
+ )
if (this.$store.state.popupParams.isShowHomeContent) {
// if (document.querySelector('.dc-container .dc-zoom-controller').classList.contains('homebottom')) return
document
.querySelector(".dc-container .dc-zoom-controller")
- .classList.add("homebottom");
- document.querySelector(".screen-full-btn").classList.add("homebottom");
- document.querySelector(".over-look-btn").classList.add("homebottom");
- document.querySelector(".compass-btn").classList.add("homebottom");
+ .classList.add("homebottom")
+ document.querySelector(".screen-full-btn").classList.add("homebottom")
+ document.querySelector(".over-look-btn").classList.add("homebottom")
+ document.querySelector(".compass-btn").classList.add("homebottom")
document
.querySelector(".image-switch-icon-btn")
- .classList.add("iconbottom");
+ .classList.add("iconbottom")
} else {
// if (!document.querySelector('.dc-container .dc-zoom-controller').classList.contains('homebottom')) return
document
.querySelector(".dc-container .dc-zoom-controller")
- .classList.remove("homebottom");
+ .classList.remove("homebottom")
document
.querySelector(".screen-full-btn")
- .classList.remove("homebottom");
- document.querySelector(".over-look-btn").classList.remove("homebottom");
- document.querySelector(".compass-btn").classList.remove("homebottom");
+ .classList.remove("homebottom")
+ document.querySelector(".over-look-btn").classList.remove("homebottom")
+ document.querySelector(".compass-btn").classList.remove("homebottom")
document
.querySelector(".image-switch-icon-btn")
- .classList.remove("iconbottom");
+ .classList.remove("iconbottom")
}
},
@@ -1164,14 +1079,14 @@
* @param {*} item 图标
* @param {*} url 图标地址
*/
- addSiteEntity(item, url) {
+ addSiteEntity (item, url) {
const billboard = new global.DC.Billboard(
new global.DC.Position(Number(item.lng), Number(item.lat)),
url
- );
- billboard.size = [20, 28];
- billboard.attrParams = item;
- siteEntitylayers.addOverlay(billboard);
+ )
+ billboard.size = [20, 28]
+ billboard.attrParams = item
+ siteEntitylayers.addOverlay(billboard)
},
/**
@@ -1179,19 +1094,19 @@
* @param {*} layerName 图层名称
* @param {*} type 图层类型
*/
- mapAddLayer(layerName, type, ClusterLayerType) {
+ mapAddLayer (layerName, type, ClusterLayerType) {
if (!layersObjcect[layerName]) {
- this.mapRemoveLayer(layerName, type);
- layersObjcect[layerName] = null;
+ this.mapRemoveLayer(layerName, type)
+ layersObjcect[layerName] = null
}
if (type == "VectorLayer") {
- layersObjcect[layerName] = new global.DC.VectorLayer(layerName);
+ layersObjcect[layerName] = new global.DC.VectorLayer(layerName)
} else if (type == "ClusterLayer") {
layersObjcect[layerName] = new global.DC.ClusterLayer(layerName, {
pixelRange: 40,
style: ClusterLayerType,
- });
+ })
} else if (type == "HeatLayer") {
layersObjcect[layerName] = new global.DC.HeatLayer(layerName, {
gradient: {
@@ -1203,10 +1118,10 @@
radius: 100, // 半径
useGround: false, //是否使用贴地模式
classificationType: 2, //分类 是否影响地形,3D切片或同时影响这两者。0:地形、1:3D切片、2:两者。贴地模式下生效
- });
+ })
}
- global.viewer.addLayer(layersObjcect[layerName]);
+ global.viewer.addLayer(layersObjcect[layerName])
},
/**
@@ -1214,15 +1129,15 @@
* @param {*} layerName 图层名称
* @param {*} type 图层类型
*/
- mapRemoveLayer(layerName, type) {
+ mapRemoveLayer (layerName, type) {
if (
type == "VectorLayer" ||
type == "ClusterLayer" ||
type == "HeatLayer"
) {
if (layersObjcect[layerName] && layersObjcect[layerName] != null) {
- layersObjcect[layerName].remove();
- layersObjcect[layerName] = null;
+ layersObjcect[layerName].remove()
+ layersObjcect[layerName] = null
}
}
},
@@ -1233,7 +1148,7 @@
* @param {*} polygonName 面名称
* @param {*} type 图层类型
*/
- mapRemovePolygonLayer(layerName, polygonName, type) {
+ mapRemovePolygonLayer (layerName, polygonName, type) {
if (
type == "VectorLayer" ||
type == "ClusterLayer" ||
@@ -1245,15 +1160,15 @@
polygonObj[polygonName] &&
polygonObj[polygonName] != null
) {
- layersObjcect[layerName].removeOverlay(polygonObj[polygonName]);
+ layersObjcect[layerName].removeOverlay(polygonObj[polygonName])
}
}
},
- mapRemovePolygon(layerName, overlay, type) {
+ mapRemovePolygon (layerName, overlay, type) {
if (type == "VectorLayer") {
if (layersObjcect[layerName] && layersObjcect[layerName] != null) {
- layersObjcect[layerName].removeOverlay(overlay);
+ layersObjcect[layerName].removeOverlay(overlay)
}
}
},
@@ -1263,14 +1178,14 @@
* @param {*} layerName 图层名称
* @param {*} type 图层类型
*/
- mapClearLayer(layerName, type) {
+ mapClearLayer (layerName, type) {
if (
type == "VectorLayer" ||
type == "ClusterLayer" ||
type == "HeatLayer"
) {
if (layersObjcect[layerName] && layersObjcect[layerName] != null)
- layersObjcect[layerName].clear();
+ layersObjcect[layerName].clear()
}
},
@@ -1282,7 +1197,7 @@
* @param {*} incident 添加的点位事件
*/
- layerPointAdd(
+ layerPointAdd (
layerName,
type,
layerType = "VectorLayer",
@@ -1291,45 +1206,45 @@
near: 0, //最近距离
far: Number.MAX_VALUE, //最远距离
},
- incident = (e) => {},
- mouseOverIncident = (e) => {},
- mouseOutIncident = (e) => {},
- pointMouseMove = (e) => {}
+ incident = (e) => { },
+ mouseOverIncident = (e) => { },
+ mouseOutIncident = (e) => { },
+ pointMouseMove = (e) => { }
) {
if (!layersObjcect[layerName] || layersObjcect[layerName] == null) {
- this.mapAddLayer(layerName, layerType, params.ClusterLayerType);
+ this.mapAddLayer(layerName, layerType, params.ClusterLayerType)
}
- let pointElement;
- let labelElement;
+ let pointElement
+ let labelElement
if (type == "billboard") {
// pointElement = new global.DC.Billboard(new global.DC.Position(Number(params.lng), Number(params.lat), Number(alt)), params.url)
pointElement = new global.DC.Billboard(
new global.DC.Position(Number(params.lng), Number(params.lat), 0),
params.url
- );
- pointElement.setStyle(params.setStyle);
- pointElement.size = params.size || [32, 32];
- pointElement.style = "clustering";
- pointElement.attrParams = params;
- layersObjcect[layerName].addOverlay(pointElement);
- pointElement.on(global.DC.MouseEventType.CLICK, incident);
- pointElement.on(global.DC.MouseEventType.MOUSE_OVER, mouseOverIncident);
- pointElement.on(global.DC.MouseEventType.MOUSE_OUT, mouseOutIncident);
- pointElement.on(global.DC.MouseEventType.MOUSE_MOVE, pointMouseMove);
+ )
+ pointElement.setStyle(params.setStyle)
+ pointElement.size = params.size || [32, 32]
+ pointElement.style = "clustering"
+ pointElement.attrParams = params
+ layersObjcect[layerName].addOverlay(pointElement)
+ pointElement.on(global.DC.MouseEventType.CLICK, incident)
+ pointElement.on(global.DC.MouseEventType.MOUSE_OVER, mouseOverIncident)
+ pointElement.on(global.DC.MouseEventType.MOUSE_OUT, mouseOutIncident)
+ pointElement.on(global.DC.MouseEventType.MOUSE_MOVE, pointMouseMove)
} else if (type == "label") {
// labelElement = new global.DC.Label(new global.DC.Position(Number(params.lng), Number(params.lat), Number(alt)), params.text)
labelElement = new global.DC.Label(
new global.DC.Position(Number(params.lng), Number(params.lat), 0),
params.text
- );
+ )
let fontColor =
- "fontColor" in params ? params.fontColor : global.DC.Color.CRIMSON;
+ "fontColor" in params ? params.fontColor : global.DC.Color.CRIMSON
let style =
"fontColor" in params
? global.DC.Namespace.Cesium.LabelStyle.FILL
- : global.DC.Namespace.Cesium.LabelStyle.FILL_AND_OUTLINE;
+ : global.DC.Namespace.Cesium.LabelStyle.FILL_AND_OUTLINE
labelElement.setStyle({
style: style,
fillColor: fontColor,
@@ -1338,45 +1253,45 @@
font: "16px sans-serif",
pixelOffset: { x: 0, y: -30 },
distanceDisplayCondition: distanceDisplayCondition,
- });
- labelElement.attrParams = params;
- layersObjcect[layerName].addOverlay(labelElement);
- labelElement.on(global.DC.MouseEventType.CLICK, incident);
+ })
+ labelElement.attrParams = params
+ layersObjcect[layerName].addOverlay(labelElement)
+ labelElement.on(global.DC.MouseEventType.CLICK, incident)
} else if (type == "billboardOrLabel") {
- let allSite = layersObjcect[layerName].getOverlays();
+ let allSite = layersObjcect[layerName].getOverlays()
- let flag = allSite.filter((item) => item.attrParams.id == params.id);
+ let flag = allSite.filter((item) => item.attrParams.id == params.id)
if (flag == true) {
- return;
+ return
}
// pointElement = new global.DC.Billboard(new global.DC.Position(Number(params.lng), Number(params.lat), Number(alt)), params.url)
pointElement = new global.DC.Billboard(
new global.DC.Position(Number(params.lng), Number(params.lat), 0),
params.url
- );
- pointElement.setStyle(params.setStyle);
- pointElement.size = params.size || [32, 32];
- pointElement.style = "clustering";
- pointElement.attrParams = params;
- layersObjcect[layerName].addOverlay(pointElement);
- pointElement.on(global.DC.MouseEventType.CLICK, incident);
- pointElement.on(global.DC.MouseEventType.MOUSE_OVER, mouseOverIncident);
- pointElement.on(global.DC.MouseEventType.MOUSE_OUT, mouseOutIncident);
- pointElement.on(global.DC.MouseEventType.MOUSE_MOVE, pointMouseMove);
+ )
+ pointElement.setStyle(params.setStyle)
+ pointElement.size = params.size || [32, 32]
+ pointElement.style = "clustering"
+ pointElement.attrParams = params
+ layersObjcect[layerName].addOverlay(pointElement)
+ pointElement.on(global.DC.MouseEventType.CLICK, incident)
+ pointElement.on(global.DC.MouseEventType.MOUSE_OVER, mouseOverIncident)
+ pointElement.on(global.DC.MouseEventType.MOUSE_OUT, mouseOutIncident)
+ pointElement.on(global.DC.MouseEventType.MOUSE_MOVE, pointMouseMove)
// labelElement = new global.DC.Label(new global.DC.Position(Number(params.lng), Number(params.lat), Number(alt)), params.text)
labelElement = new global.DC.Label(
new global.DC.Position(Number(params.lng), Number(params.lat), 0),
String(params.text)
- );
+ )
let fontColor =
- "fontColor" in params ? params.fontColor : global.DC.Color.CRIMSON;
+ "fontColor" in params ? params.fontColor : global.DC.Color.CRIMSON
let style =
"fontColor" in params
? global.DC.Namespace.Cesium.LabelStyle.FILL
- : global.DC.Namespace.Cesium.LabelStyle.FILL_AND_OUTLINE;
+ : global.DC.Namespace.Cesium.LabelStyle.FILL_AND_OUTLINE
labelElement.setStyle({
style: style,
fillColor: fontColor,
@@ -1386,27 +1301,27 @@
pixelOffset: { x: 0, y: -30 },
distanceDisplayCondition: distanceDisplayCondition,
...params.setStyle,
- });
- labelElement.attrParams = params;
- layersObjcect[layerName].addOverlay(labelElement);
- labelElement.on(global.DC.MouseEventType.CLICK, incident);
+ })
+ labelElement.attrParams = params
+ layersObjcect[layerName].addOverlay(labelElement)
+ labelElement.on(global.DC.MouseEventType.CLICK, incident)
} else if (type == "HeatPoint") {
- layersObjcect[layerName].setPositions(params.positions);
+ layersObjcect[layerName].setPositions(params.positions)
} else if (type == "newBillboard") {
// pointElement = new global.DC.Billboard(new global.DC.Position(Number(params.lng), Number(params.lat), Number(alt)), params.url)
pointElement = new global.DC.Billboard(
new global.DC.Position(Number(params.lng), Number(params.lat), 0),
params.url
- );
- pointElement.setStyle(params.setStyle);
- pointElement.size = params.size || [32, 32];
- pointElement.style = "clustering";
- pointElement.attrParams = params;
- layersObjcect[layerName].addOverlay(pointElement);
- pointElement.on(global.DC.MouseEventType.CLICK, incident);
- pointElement.on(global.DC.MouseEventType.MOUSE_OVER, mouseOverIncident);
- pointElement.on(global.DC.MouseEventType.MOUSE_OUT, mouseOutIncident);
- pointElement.on(global.DC.MouseEventType.MOUSE_MOVE, pointMouseMove);
+ )
+ pointElement.setStyle(params.setStyle)
+ pointElement.size = params.size || [32, 32]
+ pointElement.style = "clustering"
+ pointElement.attrParams = params
+ layersObjcect[layerName].addOverlay(pointElement)
+ pointElement.on(global.DC.MouseEventType.CLICK, incident)
+ pointElement.on(global.DC.MouseEventType.MOUSE_OVER, mouseOverIncident)
+ pointElement.on(global.DC.MouseEventType.MOUSE_OUT, mouseOutIncident)
+ pointElement.on(global.DC.MouseEventType.MOUSE_MOVE, pointMouseMove)
}
},
@@ -1415,13 +1330,13 @@
* @param {*} layerName 图层名称
* @param {*} siteId 点ID
*/
- mapRemoveSiteLayer(layerName, siteId) {
+ mapRemoveSiteLayer (layerName, siteId) {
if (layersObjcect[layerName]) {
- let allSite = layersObjcect[layerName].getOverlays();
+ let allSite = layersObjcect[layerName].getOverlays()
allSite
.filter((item) => item.attrParams.id == siteId)
- .forEach((item) => layersObjcect[layerName].removeOverlay(item));
+ .forEach((item) => layersObjcect[layerName].removeOverlay(item))
}
},
@@ -1432,45 +1347,45 @@
* @param {*} material 颜色
* @param {*} distanceDisplayCondition 可见距离
*/
- layerPolygonAdd(
+ layerPolygonAdd (
layerName,
positions,
material,
distanceDisplayCondition,
polygonName,
params,
- incident = (e) => {},
- mouseOverIncident = (e) => {},
- mouseOutIncident = (e) => {},
+ incident = (e) => { },
+ mouseOverIncident = (e) => { },
+ mouseOutIncident = (e) => { },
setStyle = {}
) {
if (!layersObjcect[layerName] || layersObjcect[layerName] == null) {
- this.mapAddLayer(layerName, "VectorLayer");
+ this.mapAddLayer(layerName, "VectorLayer")
- layersObjcect[layerName].allowDrillPicking = true;
+ layersObjcect[layerName].allowDrillPicking = true
}
// let polygon = new global.DC.Polygon(positions)
// let polygonObj = {}//要在全局定义
- polygonObj[polygonName] = new global.DC.Polygon(positions);
+ polygonObj[polygonName] = new global.DC.Polygon(positions)
// polygon.setStyle({
polygonObj[polygonName].setStyle({
material: material,
distanceDisplayCondition: distanceDisplayCondition,
perPositionHeight: true,
...setStyle,
- });
+ })
// layersObjcect[layerName].addOverlay(polygon)
- polygonObj[polygonName].attrParams = params;
- polygonObj[polygonName].on(global.DC.MouseEventType.CLICK, incident);
+ polygonObj[polygonName].attrParams = params
+ polygonObj[polygonName].on(global.DC.MouseEventType.CLICK, incident)
polygonObj[polygonName].on(
global.DC.MouseEventType.MOUSE_OVER,
mouseOverIncident
- );
+ )
polygonObj[polygonName].on(
global.DC.MouseEventType.MOUSE_OUT,
mouseOutIncident
- );
- layersObjcect[layerName].addOverlay(polygonObj[polygonName]);
+ )
+ layersObjcect[layerName].addOverlay(polygonObj[polygonName])
},
/**
@@ -1480,39 +1395,39 @@
* @param {*} material 颜色
* @param {*} distanceDisplayCondition 可见距离
*/
- layerPolygonArrowsAdd(
+ layerPolygonArrowsAdd (
layerName,
positions,
material,
polygonName = "",
params,
- incident = (e) => {},
- mouseOverIncident = (e) => {},
- mouseOutIncident = (e) => {},
+ incident = (e) => { },
+ mouseOverIncident = (e) => { },
+ mouseOutIncident = (e) => { },
setStyle = {}
) {
if (!layersObjcect[layerName] || layersObjcect[layerName] == null) {
- this.mapAddLayer(layerName, "VectorLayer");
+ this.mapAddLayer(layerName, "VectorLayer")
- layersObjcect[layerName].allowDrillPicking = true;
+ layersObjcect[layerName].allowDrillPicking = true
}
if (polygonName == "") {
- polygonName = layerName + params.id;
+ polygonName = layerName + params.id
}
- polygonObj[polygonName] = new global.DC.Polyline(positions);
+ polygonObj[polygonName] = new global.DC.Polyline(positions)
let positionData = positions
.split(";")
.map((item) => {
- return [Number(item.split(",")[0]), Number(item.split(",")[1])];
+ return [Number(item.split(",")[0]), Number(item.split(",")[1])]
})
.filter((item) => {
- return !item.some((it) => it == 0);
- });
+ return !item.some((it) => it == 0)
+ })
- console.log(params.width, 15);
+ console.log(params.width, 15)
polygonObj[polygonName].setStyle({
width: params.width,
@@ -1531,10 +1446,10 @@
},
clampToGround: false,
...setStyle,
- });
+ })
- polygonObj[polygonName].attrParams = params;
- layersObjcect[layerName].addOverlay(polygonObj[polygonName]);
+ polygonObj[polygonName].attrParams = params
+ layersObjcect[layerName].addOverlay(polygonObj[polygonName])
},
/**
@@ -1544,54 +1459,54 @@
* @param {*} material 颜色
* @param {*} width 宽度
*/
- layerPolylineAdd(
+ layerPolylineAdd (
layerName,
positions,
material,
width,
params,
- incident = (e) => {}
+ incident = (e) => { }
) {
if (!layersObjcect[layerName] || layersObjcect[layerName] == null) {
- this.mapAddLayer(layerName, "VectorLayer");
+ this.mapAddLayer(layerName, "VectorLayer")
- layersObjcect[layerName].allowDrillPicking = true;
+ layersObjcect[layerName].allowDrillPicking = true
}
- let polyline = new global.DC.Polyline(positions);
+ let polyline = new global.DC.Polyline(positions)
polyline.setStyle({
width: width,
material: material,
clampToGround: false,
- });
- polyline.attrParams = params;
- polyline.on(global.DC.MouseEventType.CLICK, incident);
+ })
+ polyline.attrParams = params
+ polyline.on(global.DC.MouseEventType.CLICK, incident)
- layersObjcect[layerName].addOverlay(polyline);
+ layersObjcect[layerName].addOverlay(polyline)
},
- layerWallAdd(layerName, positions) {
+ layerWallAdd (layerName, positions) {
if (!layersObjcect[layerName] || layersObjcect[layerName] == null) {
- this.mapAddLayer(layerName, "VectorLayer");
+ this.mapAddLayer(layerName, "VectorLayer")
}
- let wall = new global.DC.Wall(positions);
+ let wall = new global.DC.Wall(positions)
wall.setStyle({
material: new global.DC.WallTrailMaterialProperty({
color: global.DC.Namespace.Cesium.Color.fromBytes(255, 0, 0, 180),
speed: 10,
}),
- });
- layersObjcect[layerName].addOverlay(wall);
+ })
+ layersObjcect[layerName].addOverlay(wall)
},
- rowLayerWallAdd(layerName, positions) {
+ rowLayerWallAdd (layerName, positions) {
if (!layersObjcect[layerName] || layersObjcect[layerName] == null) {
- this.mapAddLayer(layerName, "VectorLayer");
+ this.mapAddLayer(layerName, "VectorLayer")
}
- let wall = new global.DC.Wall(positions);
+ let wall = new global.DC.Wall(positions)
wall.setStyle({
material: new global.DC.WallImageTrailMaterialProperty({
image: "/images/jjx.png",
@@ -1599,15 +1514,15 @@
repeat: { x: 20, y: 1 },
speed: 10,
}),
- });
- layersObjcect[layerName].addOverlay(wall);
+ })
+ layersObjcect[layerName].addOverlay(wall)
},
/**
* @description: 通过ID获取图层
* @return {*}
*/
- getOverLayerID(layerName, ids = [], cb) {
+ getOverLayerID (layerName, ids = [], cb) {
const data = ids.reduce((pre, cur) => {
if (
layersObjcect[layerName].getOverlay(cur.overlayId) &&
@@ -1617,17 +1532,17 @@
) {
pre.push(
layersObjcect[layerName].getOverlay(cur.overlayId).attrParams
- );
+ )
} else {
layersObjcect[layerName].eachOverlay((item) => {
- if (item.overlayId == cur.overlayId) pre.push(item.attrParams);
- });
+ if (item.overlayId == cur.overlayId) pre.push(item.attrParams)
+ })
}
- return pre;
- }, []);
+ return pre
+ }, [])
- cb(data);
+ cb(data)
},
/**
@@ -1635,8 +1550,8 @@
* @param {*} layerName 图层名称
* @param {*} flag 显示隐藏
*/
- layerShow(layerName, flag) {
- if (layersObjcect[layerName]) layersObjcect[layerName].show = flag;
+ layerShow (layerName, flag) {
+ if (layersObjcect[layerName]) layersObjcect[layerName].show = flag
},
/**
@@ -1649,7 +1564,7 @@
* @param {*} siteRoll 翻转角度,默认0
* @param {*} time 飞行时间,默认3秒
*/
- toPosition(
+ toPosition (
siteJd,
siteWd,
siteGd = 2000,
@@ -1667,9 +1582,9 @@
Number(sitePitch),
Number(siteRoll)
),
- function () {},
+ function () { },
time
- );
+ )
},
// sdTilesetLayer
@@ -1678,8 +1593,8 @@
* @param {*} polygonName 范围名称
* @param {*} duration 时间
*/
- flytoLayer(polygonName, duration = 3) {
- global.viewer.flyTo(polygonObj[polygonName], duration);
+ flytoLayer (polygonName, duration = 3) {
+ global.viewer.flyTo(polygonObj[polygonName], duration)
},
/**
@@ -1688,8 +1603,8 @@
* @param {*} titlesetUrl 模型地址
* @param {*} incident 模型点击事件
*/
- addMxTileset(titlesetName, titlesetUrl, conf) {
- if (!tilesetObject[titlesetName]) tilesetObject[titlesetName] = null;
+ addMxTileset (titlesetName, titlesetUrl, conf) {
+ if (!tilesetObject[titlesetName]) tilesetObject[titlesetName] = null
tilesetObject[titlesetName] = new global.DC.Tileset(titlesetUrl, {
luminanceAtZenith: 0.4,
@@ -1698,40 +1613,40 @@
// skipLevelOfDetail: false,
maximumScreenSpaceError: conf.maximumScreenSpaceError || 16,
shadows: global.DC.Namespace.Cesium.ShadowMode.DISABLED,
- });
+ })
// 地形数据添加
- tilesetObject[titlesetName].setHeight(-73);
+ tilesetObject[titlesetName].setHeight(-73)
- tilesetLayer.addOverlay(tilesetObject[titlesetName]);
+ tilesetLayer.addOverlay(tilesetObject[titlesetName])
// global.viewer.flyTo(tilesetObject[titlesetName])removeMxTileset
},
- tilesetLayerFlag(type, cb) {
+ tilesetLayerFlag (type, cb) {
if (type == 1) {
if (this.tilesetLayerType != "") {
this.$message({
message: "请关闭模型再开始绘制",
type: "warning",
- });
+ })
- cb(false);
- return;
+ cb(false)
+ return
}
} else {
if (this.tilesetLayerType == "") {
this.$message({
message: "请打开模型再开始绘制",
type: "warning",
- });
+ })
- cb(false);
- return;
+ cb(false)
+ return
}
}
- cb(true);
+ cb(true)
},
/**
@@ -1739,10 +1654,10 @@
* @param {*} titlesetName 图层名称
* @param {*} incident 模型点击事件
*/
- removeMxTileset(titlesetName) {
+ removeMxTileset (titlesetName) {
if (tilesetObject[titlesetName] && tilesetObject[titlesetName] != null) {
- tilesetLayer.removeOverlay(tilesetObject[titlesetName]);
- tilesetObject[titlesetName] = null;
+ tilesetLayer.removeOverlay(tilesetObject[titlesetName])
+ tilesetObject[titlesetName] = null
}
},
@@ -1751,21 +1666,21 @@
* @param {*} positions 建筑范围坐标
* @param {*}
*/
- showThreeDimensions(positions, minHeight, maxHeight) {
- console.log("showThreeDimensions--map");
+ showThreeDimensions (positions, minHeight, maxHeight) {
+ console.log("showThreeDimensions--map")
if (curPolygon != null) {
- global.viewer.scene.primitives.remove(curPolygon);
- curPolygon = null;
+ global.viewer.scene.primitives.remove(curPolygon)
+ curPolygon = null
}
- let housePositions = JSON.parse(positions).coordinates[0];
+ let housePositions = JSON.parse(positions).coordinates[0]
let floorPositions = housePositions.reduce((prev, curr) => {
- prev.push(curr[0]);
- prev.push(curr[1]);
+ prev.push(curr[0])
+ prev.push(curr[1])
- return prev;
- }, []);
+ return prev
+ }, [])
curPolygon = new global.DC.Namespace.Cesium.ClassificationPrimitive({
geometryInstances: new global.DC.Namespace.Cesium.GeometryInstance({
@@ -1792,26 +1707,26 @@
classificationType:
global.DC.Namespace.Cesium.ClassificationType.CESIUM_3D_TILE,
- });
+ })
- global.viewer.scene.primitives.add(curPolygon);
+ global.viewer.scene.primitives.add(curPolygon)
},
// 建筑高亮切换显示隐藏
- switchThreeDimensions(boolean) {
- if (!curPolygon) return;
- curPolygon.show = boolean;
+ switchThreeDimensions (boolean) {
+ if (!curPolygon) return
+ curPolygon.show = boolean
},
// 清除建筑3D
- clearHouse3D() {
- global.viewer.scene.primitives.remove(curPolygon);
+ clearHouse3D () {
+ global.viewer.scene.primitives.remove(curPolygon)
- curPolygon = null;
+ curPolygon = null
},
- registerMxClick(event) {
- this.unbindMxClick();
+ registerMxClick (event) {
+ this.unbindMxClick()
window.TILESET_LABEL.forEach((item) => {
if (
tilesetObject[`sdTilesetLayer${item.name}`] &&
@@ -1820,12 +1735,12 @@
tilesetObject[`sdTilesetLayer${item.name}`].on(
global.DC.MouseEventType.CLICK,
event
- );
+ )
}
- });
+ })
},
- unbindMxClick(event) {
+ unbindMxClick (event) {
window.TILESET_LABEL.forEach((item) => {
if (
tilesetObject[`sdTilesetLayer${item.name}`] &&
@@ -1834,41 +1749,41 @@
tilesetObject[`sdTilesetLayer${item.name}`].off(
global.DC.MouseEventType.CLICK,
event
- );
+ )
}
- });
+ })
},
},
- destroyed() {
- this.$EventBus.$off("mapAddLayer");
- this.$EventBus.$off("mapRemoveLayer");
- this.$EventBus.$off("mapRemovePolygonLayer");
- this.$EventBus.$off("mapRemoveSiteLayer");
- this.$EventBus.$off("mapRemovePolygon");
- this.$EventBus.$off("mapClearLayer");
- this.$EventBus.$off("layerPointAdd");
- this.$EventBus.$off("layerPolygonAdd");
- this.$EventBus.$off("layerPolygonArrowsAdd");
- this.$EventBus.$off("layerPolylineAdd");
- this.$EventBus.$off("layerWallAdd");
- this.$EventBus.$off("rowLayerWallAdd");
- this.$EventBus.$off("getOverLayerID");
- this.$EventBus.$off("layerShow");
- this.$EventBus.$off("toPosition");
- this.$EventBus.$off("highOrLightChange");
- this.$EventBus.$off("addMxTileset");
- this.$EventBus.$off("closeMxTileset");
- this.$EventBus.$off("tilesetLayerFlag");
- this.$EventBus.$off("removeMxTileset");
- this.$EventBus.$off("flytoLayer");
- this.$EventBus.$off("showThreeDimensions");
- this.$EventBus.$off("switchThreeDimensions");
- this.$EventBus.$off("clearHouse3D");
- this.$EventBus.$off("registerMxClick");
- this.$EventBus.$off("unbindMxClick");
+ destroyed () {
+ this.$EventBus.$off("mapAddLayer")
+ this.$EventBus.$off("mapRemoveLayer")
+ this.$EventBus.$off("mapRemovePolygonLayer")
+ this.$EventBus.$off("mapRemoveSiteLayer")
+ this.$EventBus.$off("mapRemovePolygon")
+ this.$EventBus.$off("mapClearLayer")
+ this.$EventBus.$off("layerPointAdd")
+ this.$EventBus.$off("layerPolygonAdd")
+ this.$EventBus.$off("layerPolygonArrowsAdd")
+ this.$EventBus.$off("layerPolylineAdd")
+ this.$EventBus.$off("layerWallAdd")
+ this.$EventBus.$off("rowLayerWallAdd")
+ this.$EventBus.$off("getOverLayerID")
+ this.$EventBus.$off("layerShow")
+ this.$EventBus.$off("toPosition")
+ this.$EventBus.$off("highOrLightChange")
+ this.$EventBus.$off("addMxTileset")
+ this.$EventBus.$off("closeMxTileset")
+ this.$EventBus.$off("tilesetLayerFlag")
+ this.$EventBus.$off("removeMxTileset")
+ this.$EventBus.$off("flytoLayer")
+ this.$EventBus.$off("showThreeDimensions")
+ this.$EventBus.$off("switchThreeDimensions")
+ this.$EventBus.$off("clearHouse3D")
+ this.$EventBus.$off("registerMxClick")
+ this.$EventBus.$off("unbindMxClick")
},
-};
+}
</script>
<style lang="scss" scope>
--
Gitblit v1.9.3