shuishen
2022-02-09 7aae45224f5a9f2cfd1f87af5ddad50757041bd8
部分修改
7 files modified
1 files added
20136 ■■■■■ changed files
package-lock.json 18932 ●●●●● patch | view | raw | blame | history
package.json 122 ●●●● patch | view | raw | blame | history
src/api/mobile/buildsClock/buildsClock.js 4 ●●●● patch | view | raw | blame | history
src/components/map/components/dimension.vue 985 ●●●● patch | view | raw | blame | history
src/pcLayout/index.vue 1 ●●●● patch | view | raw | blame | history
src/pcviews/tool/area.vue 75 ●●●●● patch | view | raw | blame | history
src/pcviews/tool/ranging.vue 6 ●●●● patch | view | raw | blame | history
src/router/page/index.js 11 ●●●● patch | view | raw | blame | history
package-lock.json
Diff too large
package.json
@@ -1,65 +1,65 @@
{
    "name": "smart-campus",
    "version": "0.1.0",
    "private": true,
    "scripts": {
        "serve": "vue-cli-service serve",
        "build": "vue-cli-service build",
        "lint": "vue-cli-service lint"
  "name": "smart-campus",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "@dvgis/dc-sdk": "^2.5.0",
    "axios": "^0.22.0",
    "core-js": "^3.6.5",
    "echarts": "^5.2.1",
    "element-ui": "^2.15.6",
    "lodash": "^4.17.21",
    "vue": "^2.6.11",
    "vue-axios": "^3.3.7",
    "vue-router": "^3.5.2",
    "vuex": "^3.6.2"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.5.0",
    "@vue/cli-plugin-eslint": "~4.5.0",
    "@vue/cli-plugin-router": "~4.5.0",
    "@vue/cli-plugin-vuex": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "@vue/eslint-config-standard": "^5.1.2",
    "babel-eslint": "^10.1.0",
    "eslint": "^6.7.2",
    "eslint-plugin-import": "^2.20.2",
    "eslint-plugin-node": "^11.1.0",
    "eslint-plugin-promise": "^4.2.1",
    "eslint-plugin-standard": "^4.0.0",
    "eslint-plugin-vue": "^6.2.2",
    "node-sass": "^7.0.1",
    "sass-loader": "^8.0.2",
    "script-loader": "^0.7.2",
    "vue-template-compiler": "^2.6.11"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "dependencies": {
        "@dvgis/dc-sdk": "^2.5.0",
        "axios": "^0.22.0",
        "core-js": "^3.6.5",
        "echarts": "^5.2.1",
        "element-ui": "^2.15.6",
        "lodash": "^4.17.21",
        "vue": "^2.6.11",
        "vue-axios": "^3.3.7",
        "vue-router": "^3.5.2",
        "vuex": "^3.6.2"
    "extends": [
      "plugin:vue/essential",
      "@vue/standard"
    ],
    "parserOptions": {
      "parser": "babel-eslint"
    },
    "devDependencies": {
        "@vue/cli-plugin-babel": "~4.5.0",
        "@vue/cli-plugin-eslint": "~4.5.0",
        "@vue/cli-plugin-router": "~4.5.0",
        "@vue/cli-plugin-vuex": "~4.5.0",
        "@vue/cli-service": "~4.5.0",
        "@vue/eslint-config-standard": "^5.1.2",
        "babel-eslint": "^10.1.0",
        "eslint": "^6.7.2",
        "eslint-plugin-import": "^2.20.2",
        "eslint-plugin-node": "^11.1.0",
        "eslint-plugin-promise": "^4.2.1",
        "eslint-plugin-standard": "^4.0.0",
        "eslint-plugin-vue": "^6.2.2",
        "node-sass": "^4.12.0",
        "sass-loader": "^8.0.2",
        "script-loader": "^0.7.2",
        "vue-template-compiler": "^2.6.11"
    },
    "eslintConfig": {
        "root": true,
        "env": {
            "node": true
        },
        "extends": [
            "plugin:vue/essential",
            "@vue/standard"
        ],
        "parserOptions": {
            "parser": "babel-eslint"
        },
        "rules": {
            "indent": "off",
            "eqeqeq": [
                "off"
            ]
        }
    },
    "browserslist": [
        "> 1%",
        "last 2 versions",
        "not dead"
    ]
    "rules": {
      "indent": "off",
      "eqeqeq": [
        "off"
      ]
    }
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not dead"
  ]
}
src/api/mobile/buildsClock/buildsClock.js
@@ -1,8 +1,8 @@
/*
 * @Author: Morpheus
 * @Date: 2021-05-09 15:17:44
 * @Last Modified by: liu
 * @Last Modified time: 2022-01-20 16:47:43
 * @Last Modified by: mikey.zhaopeng
 * @Last Modified time: 2022-02-08 15:20:47
 */
// 党群机构
import request from "@/router/axios";
src/components/map/components/dimension.vue
@@ -1,8 +1,10 @@
<template>
    <div class="dimension-cut">
        <el-radio-group v-model="dimensionValue"
                        size="medium"
                        @change="dimensionChange">
        <el-radio-group
            v-model="dimensionValue"
            size="medium"
            @change="dimensionChange"
        >
            <el-radio-button label="三 维"></el-radio-button>
            <el-radio-button label="真三维"></el-radio-button>
        </el-radio-group>
@@ -10,7 +12,6 @@
</template>
<script>
import axios from 'axios'
import { mapGetters } from 'vuex'
import { getDetail } from '@/api/pc/public/arc'
@@ -36,11 +37,11 @@
            titlesetLayerFlag: false,
            silhouetteBlue: null,
            wallArr: [
                [114.04006133, 27.62803800, 100],
                [114.04006133, 27.628038, 100],
                [114.04020623, 27.62809403, 100],
                [114.04025389, 27.62819931, 100],
                [114.04032823, 27.62827743, 100],
                [114.04108710, 27.62918798, 100],
                [114.0410871, 27.62918798, 100],
                [114.04001425, 27.62986815, 100],
                [114.04001615, 27.62986817, 100],
                [114.03992451, 27.62998379, 100],
@@ -59,11 +60,11 @@
                [114.03782957, 27.63072932, 100],
                [114.03787347, 27.63068209, 100],
                [114.03824591, 27.62887902, 100],
                [114.03837943, 27.62891050, 100],
                [114.03837943, 27.6289105, 100],
                [114.03863853, 27.62868839, 100],
                [114.03905656, 27.62843592, 100],
                [114.03954722, 27.62819644, 100],
                [114.04006133, 27.62803800, 100]
                [114.04006133, 27.628038, 100]
            ]
        }
    },
@@ -87,49 +88,60 @@
                if (this.titlesetLayerFlag == false && newCode != null) {
                    var that = this
                    that.tilesetLayer = new that.DC.TilesetLayer('tilesetLayer')
                    that.viewer.addLayer(that.tilesetLayer)
                    that.tileset = new that.DC.Tileset(
                        '/mx/tileset.json',
                        {
                            luminanceAtZenith: 0.5
                        }
                    that.tilesetLayer = new that.DC.TilesetLayer(
                        'tilesetLayer'
                    )
                    that.viewer.addLayer(that.tilesetLayer)
                    that.tileset = new that.DC.Tileset('/mx/tileset.json', {
                        luminanceAtZenith: 0.5
                    })
                    that.tilesetLayer.addOverlay(that.tileset)
                    that.tilesetLayer.show = false
                    that.silhouetteBlue = that.DC.Namespace.Cesium.PostProcessStageLibrary.createEdgeDetectionStage()
                    that.silhouetteBlue.uniforms.color = that.DC.Namespace.Cesium.Color.fromBytes(9, 162, 40)
                    that.silhouetteBlue =
                        that.DC.Namespace.Cesium.PostProcessStageLibrary.createEdgeDetectionStage()
                    that.silhouetteBlue.uniforms.color =
                        that.DC.Namespace.Cesium.Color.fromBytes(9, 162, 40)
                    that.silhouetteBlue.uniforms.length = 0.01
                    that.silhouetteBlue.selected = []
                    that.viewer.scene.postProcessStages.add(
                        that.DC.Namespace.Cesium.PostProcessStageLibrary.createSilhouetteStage([
                            that.silhouetteBlue
                        ])
                        that.DC.Namespace.Cesium.PostProcessStageLibrary.createSilhouetteStage(
                            [that.silhouetteBlue]
                        )
                    )
                    that.vecLayer = that.viewer.imageryLayers.addImageryProvider(new that.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
                        url: ' http://t1.tianditu.gov.cn/vec_w/wmts?tk=9ae78c51a0a28f06444d541148496e36',
                        type: 'wmts',
                        layer: 'vec',
                        style: 'default',
                        format: 'tiles',
                        tileMatrixSetID: 'w',
                        show: true,
                        maximumLevel: 18
                    }))
                    that.vecLayer =
                        that.viewer.imageryLayers.addImageryProvider(
                            new that.DC.Namespace.Cesium.WebMapTileServiceImageryProvider(
                                {
                                    url: ' http://t1.tianditu.gov.cn/vec_w/wmts?tk=9ae78c51a0a28f06444d541148496e36',
                                    type: 'wmts',
                                    layer: 'vec',
                                    style: 'default',
                                    format: 'tiles',
                                    tileMatrixSetID: 'w',
                                    show: true,
                                    maximumLevel: 18
                                }
                            )
                        )
                    that.cvaLayer = that.viewer.imageryLayers.addImageryProvider(new that.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
                        url: ' http://t1.tianditu.gov.cn/cva_w/wmts?tk=9ae78c51a0a28f06444d541148496e36',
                        type: 'wmts',
                        layer: 'cva',
                        style: 'default',
                        format: 'tiles',
                        tileMatrixSetID: 'w',
                        show: true,
                        maximumLevel: 18
                    }))
                    that.cvaLayer =
                        that.viewer.imageryLayers.addImageryProvider(
                            new that.DC.Namespace.Cesium.WebMapTileServiceImageryProvider(
                                {
                                    url: ' http://t1.tianditu.gov.cn/cva_w/wmts?tk=9ae78c51a0a28f06444d541148496e36',
                                    type: 'wmts',
                                    layer: 'cva',
                                    style: 'default',
                                    format: 'tiles',
                                    tileMatrixSetID: 'w',
                                    show: true,
                                    maximumLevel: 18
                                }
                            )
                        )
                    var highlighted = {
                        feature: undefined,
@@ -141,14 +153,20 @@
                        originalColor: new that.DC.Namespace.Cesium.Color()
                    }
                    const videoLayer = new that.DC.CameraVideoLayer('video-layer').addTo(that.viewer)
                    const videoLayer = new that.DC.CameraVideoLayer(
                        'video-layer'
                    ).addTo(that.viewer)
                    const cameraVideo = new that.DC.CameraVideo(new that.DC.Position(
                        114.03935976, 27.62939045,
                        100.25,
                        4.2,
                        -90
                    ), document.getElementById('video'))
                    const cameraVideo = new that.DC.CameraVideo(
                        new that.DC.Position(
                            114.03935976,
                            27.62939045,
                            100.25,
                            4.2,
                            -90
                        ),
                        document.getElementById('video')
                    )
                    cameraVideo.setStyle({
                        fov: 30,
                        far: 120,
@@ -158,59 +176,146 @@
                    })
                    videoLayer.addOverlay(cameraVideo)
                    that.tileset.on(that.DC.MouseEventType.CLICK, e => {
                    that.tileset.on(that.DC.MouseEventType.CLICK, (e) => {
                        that.viewer.scene.globe.depthTestAgainstTerrain = false
                        if (e.overlay && e.overlay.attr.arcName != null) {
                            this.$store.commit('CLEAR_ALL', null)
                            getDetail({ mechanismname: e.overlay.attr.arcName }).then((res) => {
                                if (res && JSON.stringify(res.data.data) != '{}') {
                            getDetail({
                                mechanismname: e.overlay.attr.arcName
                            }).then((res) => {
                                if (
                                    res &&
                                    JSON.stringify(res.data.data) != '{}'
                                ) {
                                    var result = res.data.data
                                    var imgArr = result.tpurl.split(',')
                                    this.$store.commit('SET_POPUPBGURL', imgArr[0])
                                    this.$store.commit('SET_POPUPQRURL', result.codeurl)
                                    this.$store.commit('SET_POINTPOSITION', [Number(e.wgs84Position.lng), Number(e.wgs84Position.lat), Number(e.wgs84Position.alt), Number(0), Number(0), Number(0)])
                                    this.$store.commit('SET_STATENAME', result.mechanismname)
                                    this.$store.commit('SET_SITENAME', result.address)
                                    this.$store.commit('SET_TELEPHONE', result.telephone)
                                    this.$store.commit('SET_INTRODUCETEXT', result.introduce)
                                    this.$store.commit('SET_PANORAMAURL', result.panoramaurl)
                                    this.$store.commit('SET_POPUPIMGATLAS', imgArr)
                                    if (result.videourl && result.videourl != '') {
                                        this.$store.commit('SET_MONITORURL', result.videourl)
                                    this.$store.commit(
                                        'SET_POPUPBGURL',
                                        imgArr[0]
                                    )
                                    this.$store.commit(
                                        'SET_POPUPQRURL',
                                        result.codeurl
                                    )
                                    this.$store.commit('SET_POINTPOSITION', [
                                        Number(e.wgs84Position.lng),
                                        Number(e.wgs84Position.lat),
                                        Number(e.wgs84Position.alt),
                                        Number(0),
                                        Number(0),
                                        Number(0)
                                    ])
                                    this.$store.commit(
                                        'SET_STATENAME',
                                        result.mechanismname
                                    )
                                    this.$store.commit(
                                        'SET_SITENAME',
                                        result.address
                                    )
                                    this.$store.commit(
                                        'SET_TELEPHONE',
                                        result.telephone
                                    )
                                    this.$store.commit(
                                        'SET_INTRODUCETEXT',
                                        result.introduce
                                    )
                                    this.$store.commit(
                                        'SET_PANORAMAURL',
                                        result.panoramaurl
                                    )
                                    this.$store.commit(
                                        'SET_POPUPIMGATLAS',
                                        imgArr
                                    )
                                    if (
                                        result.videourl &&
                                        result.videourl != ''
                                    ) {
                                        this.$store.commit(
                                            'SET_MONITORURL',
                                            result.videourl
                                        )
                                    }
                                    if (result.jx != undefined && result.jx != '') {
                                        var tabOne = res.data.data[0].jx.split(',')
                                        this.$store.commit('SET_TEACHLIST', tabOne)
                                    if (
                                        result.jx != undefined &&
                                        result.jx != ''
                                    ) {
                                        var tabOne =
                                            res.data.data[0].jx.split(',')
                                        this.$store.commit(
                                            'SET_TEACHLIST',
                                            tabOne
                                        )
                                    } else {
                                        this.$store.commit('SET_TEACHLIST', [])
                                    }
                                    if (result.sh != undefined && result.sh != '') {
                                        var tabTwo = res.data.data[0].sh.split(',')
                                        this.$store.commit('SET_LIVELIST', tabTwo)
                                    if (
                                        result.sh != undefined &&
                                        result.sh != ''
                                    ) {
                                        var tabTwo =
                                            res.data.data[0].sh.split(',')
                                        this.$store.commit(
                                            'SET_LIVELIST',
                                            tabTwo
                                        )
                                    } else {
                                        this.$store.commit('SET_LIVELIST', [])
                                    }
                                    // 定制化窗体
                                    // eslint-disable-next-line no-unused-vars
                                    var popup = new that.DC.DivForms(that.viewer, {
                                        domId: 'divFormsDomBox',
                                        position: [
                                            that.DC.Transform.transformWGS84ToCartesian(new that.DC.Position(Number(e.wgs84Position.lng), Number(e.wgs84Position.lat), Number(e.wgs84Position.alt)))
                                        ]
                                    })
                                    var popup = new that.DC.DivForms(
                                        that.viewer,
                                        {
                                            domId: 'divFormsDomBox',
                                            position: [
                                                that.DC.Transform.transformWGS84ToCartesian(
                                                    new that.DC.Position(
                                                        Number(
                                                            e.wgs84Position.lng
                                                        ),
                                                        Number(
                                                            e.wgs84Position.lat
                                                        ),
                                                        Number(
                                                            e.wgs84Position.alt
                                                        )
                                                    )
                                                )
                                            ]
                                        }
                                    )
                                    this.$store.commit('SET_PANORAMAPOPUP', false)
                                    this.$store.commit('SET_MONITORPOPUP', false)
                                    this.$store.commit('SET_DETAILSPOPUP', true)
                                    this.$store.commit(
                                        'SET_PANORAMAPOPUP',
                                        false
                                    )
                                    this.$store.commit(
                                        'SET_MONITORPOPUP',
                                        false
                                    )
                                    this.$store.commit(
                                        'SET_DETAILSPOPUP',
                                        true
                                    )
                                }
                            })
                            this.viewer.flyToPosition(
                                new this.DC.Position(Number(e.wgs84Position.lng + 0.00070806), Number(e.wgs84Position.lat - 0.00261205), 300, Number(-9), Number(-34.54), Number(0))
                                new this.DC.Position(
                                    Number(e.wgs84Position.lng + 0.00070806),
                                    Number(e.wgs84Position.lat - 0.00261205),
                                    300,
                                    Number(-9),
                                    Number(-34.54),
                                    Number(0)
                                )
                            )
                        }
                    })
@@ -268,33 +373,43 @@
                    //     ]
                    // })
                    var provider = new that.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                        url: '/wp/{z}/{x}/{y}.png',
                        fileExtension: 'png'
                        // minimumLevel: 19
                    })
                    var provider =
                        new that.DC.Namespace.Cesium.UrlTemplateImageryProvider(
                            {
                                url: '/wp/{z}/{x}/{y}.png',
                                fileExtension: 'png'
                                // minimumLevel: 19
                            }
                        )
                    var baseProvider = new that.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                        url: '/base/{z}/{x}/{y}.png',
                        fileExtension: 'png'
                    })
                    var baseProvider =
                        new that.DC.Namespace.Cesium.UrlTemplateImageryProvider(
                            {
                                url: '/base/{z}/{x}/{y}.png',
                                fileExtension: 'png'
                            }
                        )
                    // that.baseLayer = that.viewer.imageryLayers.addImageryProvider(baseProvider)
                    that.newLayer = that.viewer.imageryLayers.addImageryProvider(provider)
                    that.newLayer =
                        that.viewer.imageryLayers.addImageryProvider(provider)
                    that.wallLayer = new that.DC.VectorLayer('wallLayer')
                    // that.viewer.addLayer(that.wallLayer)
                    that.wallArr.forEach(item => {
                    that.wallArr.forEach((item) => {
                        item = item.join(',')
                    })
                    that.wallArr = that.wallArr.join(';')
                    const wall = new that.DC.Wall(
                        that.wallArr
                    )
                    const wall = new that.DC.Wall(that.wallArr)
                    wall.setStyle({
                        material: new that.DC.WallTrailMaterialProperty({
                            color: that.DC.Namespace.Cesium.Color.fromBytes(0, 142, 255, 150),
                            color: that.DC.Namespace.Cesium.Color.fromBytes(
                                0,
                                142,
                                255,
                                150
                            ),
                            // color: that.DC.Color.CYAN,
                            speed: 10
                        })
@@ -304,7 +419,7 @@
                    // that.viewer.camera.setView({
                    //     // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                    //     // fromDegrees()方法,将经纬度和高程转换为世界坐标
                    //     destination: that.DC.Namespace.Cesium.Cartesian3.fromDegrees(114.03928791, 27.62954732, 1000.0),
                    //     destination: that.DC.Namespace.Cesium.Cartesian3.fromDegrees(114.03928791, 27.62954732, 400.0),
                    //     orientation: {
                    //         // 指向
                    //         heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
@@ -335,16 +450,24 @@
                    //             })
                    //         }
                    //     })
                    // }, 1000)
                    // }, 400)
                    that.titlesetLayerFlag = true
                    that.viewer.camera.setView({
                        // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                        // fromDegrees()方法,将经纬度和高程转换为世界坐标
                        destination: that.DC.Namespace.Cesium.Cartesian3.fromDegrees(114.039779, 27.629696, 500.0),
                        destination:
                            that.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                                114.04001675,
                                27.62935375,
                                400.0
                            ),
                        orientation: {
                            // 指向
                            heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
                            heading: that.DC.Namespace.Cesium.Math.toRadians(
                                0,
                                0
                            ),
                            // 视角
                            pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
                            roll: 0.0
@@ -354,10 +477,10 @@
                    // 最小
                    that.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 200
                    // 最大
                    that.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 1000
                    that.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 400
                    // 设置相机缩小时的速率
                    that.viewer.scene.screenSpaceCameraController._minimumZoomRate = 10000
                    that.viewer.scene.screenSpaceCameraController._minimumZoomRate = 2000
                    // 设置相机放大时的速率
                    that.viewer.scene.screenSpaceCameraController._maximumZoomRate = 5906376272000
                    // 视角平移
@@ -367,34 +490,50 @@
                    // 视角旋转
                    that.viewer.scene.screenSpaceCameraController.enableTilt = false
                    axios.get('http://arcgis.jxpskj.com:6080/arcgis/rest/services/lxxqwxq/MapServer/0/query?where=1%3D1&text=&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=*&returnGeometry=true&maxAllowableOffset=&geometryPrecision=&outSR=&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&returnTrueCurves=false&resultOffset=&resultRecordCount=&f=pjson').then(resultData => {
                        resultData.data.features.forEach(item => {
                            item.geometry.rings[0].forEach(it => {
                                it = it.join(',')
                    axios
                        .get(
                            'http://arcgis.jxpskj.com:6080/arcgis/rest/services/lxxqwxq/MapServer/0/query?where=1%3D1&text=&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=*&returnGeometry=true&maxAllowableOffset=&geometryPrecision=&outSR=&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&returnTrueCurves=false&resultOffset=&resultRecordCount=&f=pjson'
                        )
                        .then((resultData) => {
                            resultData.data.features.forEach((item) => {
                                item.geometry.rings[0].forEach((it) => {
                                    it = it.join(',')
                                })
                                item.geometry.rings[0] =
                                    item.geometry.rings[0].join(';')
                                const polygon = new that.DC.Polygon(
                                    item.geometry.rings[0]
                                )
                                polygon.attr = item.attributes
                                polygon.setStyle({
                                    material:
                                        that.DC.Namespace.Cesium.Color.fromBytes(
                                            255,
                                            255,
                                            255,
                                            1
                                        )
                                })
                                that.areaLayer.addOverlay(polygon)
                            })
                            item.geometry.rings[0] = item.geometry.rings[0].join(';')
                            const polygon = new that.DC.Polygon(item.geometry.rings[0])
                            polygon.attr = item.attributes
                            polygon.setStyle({
                                material: that.DC.Namespace.Cesium.Color.fromBytes(255, 255, 255, 1)
                            })
                            that.areaLayer.addOverlay(polygon)
                            that.areaLayer.show = true
                        })
                        that.areaLayer.show = true
                    })
                    var select = {
                        overlay: undefined,
                        color: undefined
                    }
                    that.viewer.on(that.DC.MouseEventType.MOUSE_MOVE, e => {
                        if (e.overlay != undefined && e.layer.id == 'areaLayer') {
                    that.viewer.on(that.DC.MouseEventType.MOUSE_MOVE, (e) => {
                        if (
                            e.overlay != undefined &&
                            e.layer.id == 'areaLayer'
                        ) {
                            if (select.overlay != undefined) {
                                if (e.overlay != select.overlay) {
                                    select.overlay.setStyle({
@@ -413,10 +552,22 @@
                                select.color = e.overlay._style.material
                                select.overlay.setStyle({
                                    outline: true,
                                    outlineColor: that.DC.Namespace.Cesium.Color.fromBytes(3, 255, 13, 255), // 边框颜色
                                    outlineColor:
                                        that.DC.Namespace.Cesium.Color.fromBytes(
                                            3,
                                            255,
                                            13,
                                            255
                                        ), // 边框颜色
                                    outlineWidth: 10, // 边框大小,
                                    height: 0.01,
                                    material: that.DC.Namespace.Cesium.Color.fromBytes(108, 245, 113, 158)
                                    material:
                                        that.DC.Namespace.Cesium.Color.fromBytes(
                                            108,
                                            245,
                                            113,
                                            158
                                        )
                                })
                            }
                        } else {
@@ -432,72 +583,176 @@
                        }
                    })
                    that.viewer.on(that.DC.MouseEventType.CLICK, e => {
                        if (e.overlay != undefined && e.layer.id == 'areaLayer') {
                            var rid = e.overlay.attr['楼栋号'] == '8栋' ? '9栋' : e.overlay.attr['楼栋号'] == '9栋' ? '8栋' : e.overlay.attr['楼栋号']
                    that.viewer.on(that.DC.MouseEventType.CLICK, (e) => {
                        if (
                            e.overlay != undefined &&
                            e.layer.id == 'areaLayer'
                        ) {
                            var rid =
                                e.overlay.attr['楼栋号'] == '8栋'
                                    ? '9栋'
                                    : e.overlay.attr['楼栋号'] == '9栋'
                                    ? '8栋'
                                    : e.overlay.attr['楼栋号']
                            this.$store.commit('CLEAR_ALL', null)
                            getDetail({ mechanismname: '香琴湾' + rid }).then((res) => {
                                that.viewer.scene.globe.depthTestAgainstTerrain = false
                                var result = res.data.data
                            getDetail({ mechanismname: '香琴湾' + rid }).then(
                                (res) => {
                                    that.viewer.scene.globe.depthTestAgainstTerrain = false
                                    var result = res.data.data
                                var imgArr = result.tpurl.split(',')
                                this.$store.commit('SET_POPUPBGURL', imgArr[0])
                                this.$store.commit('SET_POPUPQRURL', result.codeurl)
                                this.$store.commit('SET_POINTPOSITION', [Number(e.wgs84Position.lng), Number(e.wgs84Position.lat), Number(e.wgs84Position.alt), Number(0), Number(0), Number(0)])
                                this.$store.commit('SET_STATENAME', result.mechanismname)
                                this.$store.commit('SET_SITENAME', result.address)
                                this.$store.commit('SET_TELEPHONE', result.telephone)
                                this.$store.commit('SET_INTRODUCETEXT', result.introduce)
                                this.$store.commit('SET_PANORAMAURL', result.panoramaurl)
                                this.$store.commit('SET_POPUPIMGATLAS', imgArr)
                                if (result.videourl && result.videourl != '') {
                                    this.$store.commit('SET_MONITORURL', result.videourl)
                                    var imgArr = result.tpurl.split(',')
                                    this.$store.commit(
                                        'SET_POPUPBGURL',
                                        imgArr[0]
                                    )
                                    this.$store.commit(
                                        'SET_POPUPQRURL',
                                        result.codeurl
                                    )
                                    this.$store.commit('SET_POINTPOSITION', [
                                        Number(e.wgs84Position.lng),
                                        Number(e.wgs84Position.lat),
                                        Number(e.wgs84Position.alt),
                                        Number(0),
                                        Number(0),
                                        Number(0)
                                    ])
                                    this.$store.commit(
                                        'SET_STATENAME',
                                        result.mechanismname
                                    )
                                    this.$store.commit(
                                        'SET_SITENAME',
                                        result.address
                                    )
                                    this.$store.commit(
                                        'SET_TELEPHONE',
                                        result.telephone
                                    )
                                    this.$store.commit(
                                        'SET_INTRODUCETEXT',
                                        result.introduce
                                    )
                                    this.$store.commit(
                                        'SET_PANORAMAURL',
                                        result.panoramaurl
                                    )
                                    this.$store.commit(
                                        'SET_POPUPIMGATLAS',
                                        imgArr
                                    )
                                    if (
                                        result.videourl &&
                                        result.videourl != ''
                                    ) {
                                        this.$store.commit(
                                            'SET_MONITORURL',
                                            result.videourl
                                        )
                                    }
                                    if (
                                        result.jx != undefined &&
                                        result.jx != ''
                                    ) {
                                        var tabOne =
                                            res.data.data[0].jx.split(',')
                                        this.$store.commit(
                                            'SET_TEACHLIST',
                                            tabOne
                                        )
                                    } else {
                                        this.$store.commit('SET_TEACHLIST', [])
                                    }
                                    if (
                                        result.sh != undefined &&
                                        result.sh != ''
                                    ) {
                                        var tabTwo =
                                            res.data.data[0].sh.split(',')
                                        this.$store.commit(
                                            'SET_LIVELIST',
                                            tabTwo
                                        )
                                    } else {
                                        this.$store.commit('SET_LIVELIST', [])
                                    }
                                    // 定制化窗体
                                    // eslint-disable-next-line no-unused-vars
                                    var popup = new that.DC.DivForms(
                                        that.viewer,
                                        {
                                            domId: 'divFormsDomBox',
                                            position: [
                                                that.DC.Transform.transformWGS84ToCartesian(
                                                    new that.DC.Position(
                                                        Number(
                                                            e.wgs84Position.lng
                                                        ),
                                                        Number(
                                                            e.wgs84Position.lat
                                                        ),
                                                        Number(
                                                            e.wgs84Position.alt
                                                        )
                                                    )
                                                )
                                            ]
                                        }
                                    )
                                    this.$store.commit(
                                        'SET_PANORAMAPOPUP',
                                        false
                                    )
                                    this.$store.commit(
                                        'SET_MONITORPOPUP',
                                        false
                                    )
                                    this.$store.commit(
                                        'SET_DETAILSPOPUP',
                                        true
                                    )
                                }
                                if (result.jx != undefined && result.jx != '') {
                                    var tabOne = res.data.data[0].jx.split(',')
                                    this.$store.commit('SET_TEACHLIST', tabOne)
                                } else {
                                    this.$store.commit('SET_TEACHLIST', [])
                                }
                                if (result.sh != undefined && result.sh != '') {
                                    var tabTwo = res.data.data[0].sh.split(',')
                                    this.$store.commit('SET_LIVELIST', tabTwo)
                                } else {
                                    this.$store.commit('SET_LIVELIST', [])
                                }
                                // 定制化窗体
                                // eslint-disable-next-line no-unused-vars
                                var popup = new that.DC.DivForms(that.viewer, {
                                    domId: 'divFormsDomBox',
                                    position: [
                                        that.DC.Transform.transformWGS84ToCartesian(new that.DC.Position(Number(e.wgs84Position.lng), Number(e.wgs84Position.lat), Number(e.wgs84Position.alt)))
                                    ]
                                })
                                this.$store.commit('SET_PANORAMAPOPUP', false)
                                this.$store.commit('SET_MONITORPOPUP', false)
                                this.$store.commit('SET_DETAILSPOPUP', true)
                            })
                            )
                            this.viewer.flyToPosition(
                                new this.DC.Position(Number(e.wgs84Position.lng), Number(e.wgs84Position.lat), 300, Number(0), Number(-90), Number(0))
                                new this.DC.Position(
                                    Number(e.wgs84Position.lng),
                                    Number(e.wgs84Position.lat),
                                    300,
                                    Number(0),
                                    Number(-90),
                                    Number(0)
                                )
                            )
                        }
                    })
                    document.querySelector('.dc-zoom-controller').children[1].onclick = function () {
                    document.querySelector(
                        '.dc-zoom-controller'
                    ).children[1].onclick = function () {
                        if (that.dimensionValue == '真三维') {
                            that.viewer.camera.setView({
                                // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                                // fromDegrees()方法,将经纬度和高程转换为世界坐标
                                destination: that.DC.Namespace.Cesium.Cartesian3.fromDegrees(114.04062292, 27.62666834, 220.0),
                                destination:
                                    that.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                                        114.04062292,
                                        27.62666834,
                                        220.0
                                    ),
                                orientation: {
                                    // 指向
                                    heading: that.DC.Namespace.Cesium.Math.toRadians(-9),
                                    heading:
                                        that.DC.Namespace.Cesium.Math.toRadians(
                                            -9
                                        ),
                                    // 视角
                                    pitch: that.DC.Namespace.Cesium.Math.toRadians(-34.54),
                                    pitch: that.DC.Namespace.Cesium.Math.toRadians(
                                        -34.54
                                    ),
                                    roll: 0.0
                                }
                            })
@@ -505,58 +760,357 @@
                            that.viewer.camera.setView({
                                // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                                // fromDegrees()方法,将经纬度和高程转换为世界坐标
                                destination: that.DC.Namespace.Cesium.Cartesian3.fromDegrees(114.039779, 27.629696, 500.0),
                                destination:
                                    that.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                                        114.04001675,
                                        27.62935375,
                                        400.0
                                    ),
                                orientation: {
                                    // 指向
                                    heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
                                    heading:
                                        that.DC.Namespace.Cesium.Math.toRadians(
                                            0,
                                            0
                                        ),
                                    // 视角
                                    pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
                                    pitch: that.DC.Namespace.Cesium.Math.toRadians(
                                        -90
                                    ),
                                    roll: 0.0
                                }
                            })
                        }
                    }
                    that.viewer.on(that.DC.SceneEventType.CAMERA_CHANGED, () => {
                        if (that.dimensionValue != undefined && that.dimensionValue != '真三维') {
                            const height = Math.ceil(that.viewer.camera.positionCartographic.height)
                    document.querySelector(
                        '.dc-zoom-controller'
                    ).children[2].onclick = function () {
                        if (
                            that.dimensionValue != undefined &&
                            that.dimensionValue != '真三维'
                        ) {
                            const height = Math.ceil(
                                that.viewer.camera.positionCartographic.height
                            )
                            that.viewer.camera.setView({
                                orientation: {
                                    // 指向
                                    heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
                                    // 视角
                                    pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
                                    roll: 0.0
                                }
                            })
                            if (height < 200) {
                            if (height <= 250) {
                                that.viewer.camera.setView({
                                    destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(that.viewer.camera.positionCartographic.longitude, that.viewer.camera.positionCartographic.latitude, 200),
                                    destination:
                                        that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                            that.viewer.camera
                                                .positionCartographic.longitude,
                                            that.viewer.camera
                                                .positionCartographic.latitude,
                                            280
                                        ),
                                    orientation: {
                                        // 指向
                                        heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
                                        heading:
                                            that.DC.Namespace.Cesium.Math.toRadians(
                                                0,
                                                0
                                            ),
                                        // 视角
                                        pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
                                        pitch: that.DC.Namespace.Cesium.Math.toRadians(
                                            -90
                                        ),
                                        roll: 0.0
                                    }
                                })
                            };
                            if (height > 1000) {
                            }
                            if (height > 250 && height <= 310) {
                                that.viewer.camera.setView({
                                    destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(that.viewer.camera.positionCartographic.longitude, that.viewer.camera.positionCartographic.latitude, 1000),
                                    destination:
                                        that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                            that.viewer.camera
                                                .positionCartographic.longitude,
                                            that.viewer.camera
                                                .positionCartographic.latitude,
                                            340
                                        ),
                                    orientation: {
                                        // 指向
                                        heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
                                        heading:
                                            that.DC.Namespace.Cesium.Math.toRadians(
                                                0,
                                                0
                                            ),
                                        // 视角
                                        pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
                                        pitch: that.DC.Namespace.Cesium.Math.toRadians(
                                            -90
                                        ),
                                        roll: 0.0
                                    }
                                })
                            }
                            if (height > 310 && height < 370) {
                                that.viewer.camera.setView({
                                    destination:
                                        that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                            that.viewer.camera
                                                .positionCartographic.longitude,
                                            that.viewer.camera
                                                .positionCartographic.latitude,
                                            400
                                        ),
                                    orientation: {
                                        // 指向
                                        heading:
                                            that.DC.Namespace.Cesium.Math.toRadians(
                                                0,
                                                0
                                            ),
                                        // 视角
                                        pitch: that.DC.Namespace.Cesium.Math.toRadians(
                                            -90
                                        ),
                                        roll: 0.0
                                    }
                                })
                            }
                        }
                    })
                    }
                    document.querySelector(
                        '.dc-zoom-controller'
                    ).children[0].onclick = function () {
                        if (
                            that.dimensionValue != undefined &&
                            that.dimensionValue != '真三维'
                        ) {
                            const height = Math.ceil(
                                that.viewer.camera.positionCartographic.height
                            )
                            if (height > 370) {
                                that.viewer.camera.setView({
                                    destination:
                                        that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                            that.viewer.camera
                                                .positionCartographic.longitude,
                                            that.viewer.camera
                                                .positionCartographic.latitude,
                                            340
                                        ),
                                    orientation: {
                                        // 指向
                                        heading:
                                            that.DC.Namespace.Cesium.Math.toRadians(
                                                0,
                                                0
                                            ),
                                        // 视角
                                        pitch: that.DC.Namespace.Cesium.Math.toRadians(
                                            -90
                                        ),
                                        roll: 0.0
                                    }
                                })
                                return
                            }
                            if (height > 310) {
                                that.viewer.camera.setView({
                                    destination:
                                        that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                            that.viewer.camera
                                                .positionCartographic.longitude,
                                            that.viewer.camera
                                                .positionCartographic.latitude,
                                            280
                                        ),
                                    orientation: {
                                        // 指向
                                        heading:
                                            that.DC.Namespace.Cesium.Math.toRadians(
                                                0,
                                                0
                                            ),
                                        // 视角
                                        pitch: that.DC.Namespace.Cesium.Math.toRadians(
                                            -90
                                        ),
                                        roll: 0.0
                                    }
                                })
                                return
                            }
                            if (height > 250) {
                                that.viewer.camera.setView({
                                    destination:
                                        that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                            that.viewer.camera
                                                .positionCartographic.longitude,
                                            that.viewer.camera
                                                .positionCartographic.latitude,
                                            220
                                        ),
                                    orientation: {
                                        // 指向
                                        heading:
                                            that.DC.Namespace.Cesium.Math.toRadians(
                                                0,
                                                0
                                            ),
                                        // 视角
                                        pitch: that.DC.Namespace.Cesium.Math.toRadians(
                                            -90
                                        ),
                                        roll: 0.0
                                    }
                                })
                            }
                        }
                    }
                    that.viewer.on(
                        that.DC.SceneEventType.CAMERA_CHANGED,
                        () => {
                            if (
                                that.dimensionValue != undefined &&
                                that.dimensionValue != '真三维'
                            ) {
                                const height = Math.ceil(
                                    that.viewer.camera.positionCartographic
                                        .height
                                )
                                that.viewer.camera.setView({
                                    orientation: {
                                        // 指向
                                        heading:
                                            that.DC.Namespace.Cesium.Math.toRadians(
                                                0,
                                                0
                                            ),
                                        // 视角
                                        pitch: that.DC.Namespace.Cesium.Math.toRadians(
                                            -90
                                        ),
                                        roll: 0.0
                                    }
                                })
                                if (height <= 250) {
                                    that.viewer.camera.setView({
                                        destination:
                                            that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                                that.viewer.camera
                                                    .positionCartographic
                                                    .longitude,
                                                that.viewer.camera
                                                    .positionCartographic
                                                    .latitude,
                                                220
                                            ),
                                        orientation: {
                                            // 指向
                                            heading:
                                                that.DC.Namespace.Cesium.Math.toRadians(
                                                    0,
                                                    0
                                                ),
                                            // 视角
                                            pitch: that.DC.Namespace.Cesium.Math.toRadians(
                                                -90
                                            ),
                                            roll: 0.0
                                        }
                                    })
                                }
                                if (height > 250 && height <= 310) {
                                    that.viewer.camera.setView({
                                        destination:
                                            that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                                that.viewer.camera
                                                    .positionCartographic
                                                    .longitude,
                                                that.viewer.camera
                                                    .positionCartographic
                                                    .latitude,
                                                280
                                            ),
                                        orientation: {
                                            // 指向
                                            heading:
                                                that.DC.Namespace.Cesium.Math.toRadians(
                                                    0,
                                                    0
                                                ),
                                            // 视角
                                            pitch: that.DC.Namespace.Cesium.Math.toRadians(
                                                -90
                                            ),
                                            roll: 0.0
                                        }
                                    })
                                }
                                if (height > 310 && height <= 370) {
                                    that.viewer.camera.setView({
                                        destination:
                                            that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                                that.viewer.camera
                                                    .positionCartographic
                                                    .longitude,
                                                that.viewer.camera
                                                    .positionCartographic
                                                    .latitude,
                                                340
                                            ),
                                        orientation: {
                                            // 指向
                                            heading:
                                                that.DC.Namespace.Cesium.Math.toRadians(
                                                    0,
                                                    0
                                                ),
                                            // 视角
                                            pitch: that.DC.Namespace.Cesium.Math.toRadians(
                                                -90
                                            ),
                                            roll: 0.0
                                        }
                                    })
                                }
                                if (height > 370) {
                                    that.viewer.camera.setView({
                                        destination:
                                            that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                                that.viewer.camera
                                                    .positionCartographic
                                                    .longitude,
                                                that.viewer.camera
                                                    .positionCartographic
                                                    .latitude,
                                                400
                                            ),
                                        orientation: {
                                            // 指向
                                            heading:
                                                that.DC.Namespace.Cesium.Math.toRadians(
                                                    0,
                                                    0
                                                ),
                                            // 视角
                                            pitch: that.DC.Namespace.Cesium.Math.toRadians(
                                                -90
                                            ),
                                            roll: 0.0
                                        }
                                    })
                                }
                            }
                        }
                    )
                }
            }
        }
@@ -598,14 +1152,20 @@
                // 最小
                that.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 1.0
                // 最大
                that.viewer.scene.screenSpaceCameraController.maximumZoomDistance = Number.POSITIVE_INFINITY
                that.viewer.scene.screenSpaceCameraController.maximumZoomDistance =
                    Number.POSITIVE_INFINITY
                // 视角旋转
                that.viewer.scene.screenSpaceCameraController.enableTilt = true
                that.viewer.camera.setView({
                    // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                    // fromDegrees()方法,将经纬度和高程转换为世界坐标
                    destination: that.DC.Namespace.Cesium.Cartesian3.fromDegrees(114.04062292, 27.62666834, 220.0),
                    destination:
                        that.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                            114.04062292,
                            27.62666834,
                            220.0
                        ),
                    orientation: {
                        // 指向
                        heading: that.DC.Namespace.Cesium.Math.toRadians(-9),
@@ -626,25 +1186,33 @@
                //     url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/PingXiang25DMapQP/MapServer'
                // })
                var provider = new that.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                    url: '/wp/{z}/{x}/{y}.png',
                    fileExtension: 'png'
                })
                var provider =
                    new that.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                        url: '/wp/{z}/{x}/{y}.png',
                        fileExtension: 'png'
                    })
                var baseProvider = new that.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                    url: '/base/{z}/{x}/{y}.png',
                    fileExtension: 'png'
                })
                var baseProvider =
                    new that.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                        url: '/base/{z}/{x}/{y}.png',
                        fileExtension: 'png'
                    })
                // that.baseLayer = that.viewer.imageryLayers.addImageryProvider(baseProvider)
                that.newLayer = that.viewer.imageryLayers.addImageryProvider(provider)
                that.newLayer =
                    that.viewer.imageryLayers.addImageryProvider(provider)
                // that.wallLayer.show = true
                that.viewer.camera.setView({
                    // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                    // fromDegrees()方法,将经纬度和高程转换为世界坐标
                    destination: that.DC.Namespace.Cesium.Cartesian3.fromDegrees(114.039779, 27.629696, 500.0),
                    destination:
                        that.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                            114.04001675,
                            27.62935375,
                            400.0
                        ),
                    orientation: {
                        // 指向
                        heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
@@ -656,13 +1224,12 @@
                // 最小
                that.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 200
                // 最大
                that.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 1000
                that.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 400
                // 视角旋转
                that.viewer.scene.screenSpaceCameraController.enableTilt = false
            }
        }
    }
}
</script>
src/pcLayout/index.vue
@@ -67,6 +67,7 @@
                        <el-menu-item index="/pcLayout/default/tool/download">地图下载</el-menu-item>
                        <!-- <el-menu-item index="/pcLayout/default/tool/sign">地图标记</el-menu-item> -->
                        <el-menu-item index="/pcLayout/default/tool/ranging">地图测距</el-menu-item>
                        <el-menu-item index="/pcLayout/default/tool/area">地图测面</el-menu-item>
                    </el-submenu>
                </el-menu>
src/pcviews/tool/area.vue
New file
@@ -0,0 +1,75 @@
/*
 * @Author: Morpheus
 * @Name: 地图测面
 * @Date: 2021-11-13 16:04:27
 * @Last Modified by: mikey.zhaopeng
 * @Last Modified time: 2022-02-08 16:21:37
 */
<template>
    <div class="tool-ranging">
        <div class="header"
             @mousedown="move"
             :class="{'move': moveFlag}">
            <div class="title">
                <img class="icon deblurring"
                     src="/img/icon/dtcj.png"
                     alt="">
                <span>
                    地图测面
                </span>
            </div>
            <img class="close"
                 src="/img/navicon/close.png"
                 alt=""
                 @click="closeModel">
        </div>
        <div class="content">
            <el-button type="primary"
                       size="mini"
                       @click.stop="calcDistance">
                开始
            </el-button>
            <el-button type="danger"
                       size="mini"
                       @click.stop="deactivate">
                清除
            </el-button>
        </div>
    </div>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
    computed: {
        ...mapGetters([
            'viewer'
        ])
    },
    created () {
    },
    methods: {
        calcDistance () {
            this.viewer.measure.areaSurface()
        },
        deactivate () {
            this.viewer.measure.deactivate()
        },
        closeModel () {
            this.$store.dispatch('delVisitedViews', this.$route)
            this.$router.push('/pcLayout/default')
        }
    },
    destroyed () {
    }
}
</script>
<style>
</style>
src/pcviews/tool/ranging.vue
@@ -2,8 +2,8 @@
 * @Author: Morpheus
 * @Name: 地图测距
 * @Date: 2021-11-13 16:04:27
 * @Last Modified by: Morpheus
 * @Last Modified time: 2022-01-26 11:24:56
 * @Last Modified by: mikey.zhaopeng
 * @Last Modified time: 2022-02-08 16:21:37
 */
<template>
@@ -54,7 +54,7 @@
    },
    methods: {
        calcDistance () {
            this.viewer.measure.distance()
            this.viewer.measure.distanceSurface()
        },
        deactivate () {
src/router/page/index.js
@@ -1,8 +1,8 @@
/*
 * @Author: Morpheus
 * @Date: 2021-04-30 14:12:09
 * @Last Modified by: Morpheus
 * @Last Modified time: 2022-01-05 14:04:28
 * @Last Modified by: mikey.zhaopeng
 * @Last Modified time: 2022-02-08 16:17:12
 */
import Vue from 'vue'
@@ -283,6 +283,13 @@
                            meta: {
                                title: '地图测距'
                            }
                        },
                        {
                            path: 'area',
                            component: resolve => require(['../../pcviews/tool/area.vue'], resolve),
                            meta: {
                                title: '地图测面'
                            }
                        }
                    ]
                }