From 26385d2c91d763259eb1ef55c3255e5ca01717a5 Mon Sep 17 00:00:00 2001 From: ZhAkps <46207005+ZhAkps@users.noreply.github.com> Date: 星期二, 06 二月 2024 18:18:08 +0800 Subject: [PATCH] Merge branch 'master' of http://106.120.22.35:48888/r/PM20221203225_MobileWeb --- src/components/viewer2.vue | 65 - /dev/null | 2331 ------------------------------------------------------ src/components/poplayer/poplayer2.vue | 99 +- src/components/leftMenu/sousuo2.vue | 6 src/utils/map2.js | 37 src/utils/store2.js | 15 6 files changed, 94 insertions(+), 2,459 deletions(-) diff --git a/src/components/leftMenu/sousuo2.vue b/src/components/leftMenu/sousuo2.vue index f8d90fe..591fa3f 100644 --- a/src/components/leftMenu/sousuo2.vue +++ b/src/components/leftMenu/sousuo2.vue @@ -217,6 +217,12 @@ // 閫�鍑烘悳绱㈢晫闈� cancless() { this.ssjm = false; + if (window.pointArr && window.pointArr.length > 0) { + window.pointArr.forEach(item => { + window.map.removeLayer(item) + }) + window.pointArr = [] + } }, getArea() { let height = Viewer.container.offsetHeight; diff --git a/src/components/poplayer/main2.vue b/src/components/poplayer/main2.vue deleted file mode 100644 index df2b759..0000000 --- a/src/components/poplayer/main2.vue +++ /dev/null @@ -1,27 +0,0 @@ -<template> - <div v-if="state.show"> - <poplayer :list="state.list" /> - </div> -</template> - -<script> -import poplayer from "./poplayer2.vue"; -import store from "@/utils/store2"; -export default { - name: "Main", - components: { - poplayer, - }, - data() { - return { - state: store.Poplayer, - }; - }, - mounted() { - console.log('popuplayer mounted'); - }, -}; -</script> - -<style scoped> -</style> diff --git a/src/components/poplayer/poplayer2.vue b/src/components/poplayer/poplayer2.vue index 822120e..036906c 100644 --- a/src/components/poplayer/poplayer2.vue +++ b/src/components/poplayer/poplayer2.vue @@ -1,15 +1,17 @@ <template> - <div style="z-index: 100000000"> - <div class="Poplayer"> - <div class="close" @click.stop="closehandle"></div> - <div class="title">鐐逛綅璇︽儏</div> - <div class="content"> - <div class="con-item" v-for="(item, index) in KEY" :key="index"> - <span class="name">{{ index }}锛�</span> - <span class="value">{{ state.list[item] }}</span> + <div class="landAdmin" v-if="state.show"> + <transition name="el-zoom-in-bottom"> + <div class="Poplayer"> + <div class="close" @click.stop="closehandle"></div> + <div class="title">鐐逛綅璇︽儏</div> + <div class="content"> + <div class="con-item" v-for="(item, index) in KEY" :key="index"> + <span class="name">{{ index }}锛�</span> + <span class="value">{{ state.info[item] }}</span> + </div> </div> </div> - </div> + </transition> </div> </template> @@ -17,67 +19,68 @@ import store from "@/utils/store2"; import keys from "@/utils/poiKeys"; export default { - name: "Main", components: {}, - props: { - keys: { - type: Object, - }, - list: { - type: Object, - }, - }, data() { return { - state: store.Poplayer, + state: store.dwInfo, KEY: {}, }; }, - computed: {}, mounted() { if (this.list) { - this.state.list = this.list; + this.state.info = this.list; } - this.KEY = keys[this.state.list.POITYPE]; + this.KEY = keys[this.state.info.POITYPE]; }, watch: { - "state.list": function (val) { - console.log('state.list'); + "state.info": function (val) { + console.log("state.info"); this.KEY = keys[val.POITYPE]; - console.log(this.state.list); - console.log(this.list1); - console.log(this.KEY); + }, + "state.show": function (val) { + console.log("state.show"); + this.showlandInfo = val; }, }, methods: { closehandle() { - // if (window.pickFeature && window.pickFeature.primitive) { - // window.pickFeature.primitive.image = window.imgUrl; - // window.pickFeature = null; - // } - store.setPoplayerListAction({}); - // divPoint3 && divPoint3.deleteObject(); - store.setPoplayerShowAction(false); + store.setdwInfo({}); + store.setdwShow(false) if (window.tdglLine) { window.map.removeLayer(window.tdglLine); window.tdglLine = null; + } + if (window.pointArr && window.pointArr.length > 0) { + window.pointArr.forEach(item => { + window.map.removeLayer(item) + }) + window.pointArr = [] } }, }, }; </script> - <style scoped> +.landAdmin { + width: 100%; + position: absolute; + bottom: 0px; + align-items: center; + /* background: white; */ + z-index: 1000; +} + .Poplayer { /* min-width: 350px; */ - width: 80vw; - /* min-height: 180px; */ + min-height: 180px; background-repeat: no-repeat; background-size: 100% 100%; background-image: url("./img/bg.png"); + background-color: #0b2c3f; + + border-radius: 10px; z-index: 999; color: #fff; - font-family: SourceHanSansSC-R; /* padding: 20px; */ padding: 10px 5px 10px 5px; box-sizing: border-box; @@ -122,21 +125,25 @@ .con-item { width: 90%; - overflow: hidden; + /* overflow: hidden; */ + margin-left: 5%; margin-bottom: 7px; - margin-left: 25px; - margin-right: 20px; - word-break: break-all; + /* margin-right: 20px; */ + display: flex; + align-items: center; + justify-content: center; } .name { - /* min-width: 100px; */ - float: left; + width: 30%; + /* float: left; */ } .value { - max-width: 400px; - float: left; + width: 70%; + /* max-width: 400px; */ + /* float: left; */ color: aqua; } </style> + diff --git a/src/components/viewer2.vue b/src/components/viewer2.vue index fa11b76..65aad7c 100644 --- a/src/components/viewer2.vue +++ b/src/components/viewer2.vue @@ -78,7 +78,7 @@ import layerTreePanel from "./sideMenu/layerTreePanel/main2.vue"; import history from "./poplayer/history.vue"; import landAdminInfo from "./poplayer/landAdmin2.vue"; -import poplayer from "./poplayer/main2.vue"; +import mainPoplayer from "./poplayer/poplayer2.vue"; import sliderAlpha from "./sideMenu/sliderAlpha/main2.vue"; import Axios from "axios"; @@ -114,7 +114,7 @@ "my-history": history, "my-land-admin-info": landAdminInfo, "my-slider": sliderAlpha, - "my-poplayer": poplayer + "my-poplayer":mainPoplayer }, data() { return { @@ -448,65 +448,4 @@ width: 30px; } -#ponitPanel { - /* display: none; */ - width: 80vw; - background-repeat: no-repeat; - background-size: 100% 100%; - background-image: url("./poplayer/img/bg.png"); - z-index: 999; - color: #fff; - font-family: SourceHanSansSC-R; - padding: 10px 5px 10px 5px; - font-size: 16px; - pointer-events: all; -} - -.title { - width: 100%; - text-align: center; - font-size: 20px; - font-weight: 700; - letter-spacing: 4px; - padding-left: 26px; -} - - -#ponitPanel-close { - pointer-events: all; - width: 28px; - height: 28px; - background-repeat: no-repeat; - background-size: 100% 100%; - background-image: url("./poplayer/img/close.png"); - margin-top: 8px; - margin-right: 5px; - float: right; - cursor: pointer; -} - -#ponitPanel-content { - width: 100%; - margin: auto; -} - -.ponitPanel-item { - width: 90%; - overflow: hidden; - margin-bottom: 7px; - margin-left: 25px; - margin-right: 20px; - word-break: break-all; -} - -.ponitPanel-name { - /* min-width: 100px; */ - float: left; -} - -.ponitPanel-value { - max-width: 400px; - float: left; - color: aqua; -} </style> diff --git a/src/utils/map2 copy.js b/src/utils/map2 copy.js deleted file mode 100644 index 89f6cf8..0000000 --- a/src/utils/map2 copy.js +++ /dev/null @@ -1,2331 +0,0 @@ -// import { Feature } from "ol"; -// import VectorLayer from "ol/layer/Vector"; -// import VectorSource from "ol/source/Vector"; -// import { Style, Icon, Fill, Stroke, Text, Circle as CircleStyle } from "ol/style"; -// import { Point, LineString } from "ol/geom"; -// import Overlay from 'ol/Overlay.js'; -// import { unByKey } from "ol/Observable.js"; //绉婚櫎浜嬩欢 -import Vue from 'vue'; -import axios from "axios"; -import _GLOBAL from '@/assets/GLOBAL2'; -import poiLayer from '@/components/poplayer/main'; -import store from "@/utils/store2"; -import { Message } from 'element-ui'; -let tdglLine, qiyexinxi, qysl, ydbm, ydlx, cyfx, crzt, ydmj, crnx, crnf, rjl, jzxg, jzmd; -let objdata; -var clickEvent; - -window.tdglLine = tdglLine -let PoiLayerConstructor = Vue.extend(poiLayer); -/**鏍稿績鍖� */ -export function loadHXQ() { - let urls = window.gisBaseUrl + "/gisserver/wmsserver/YZ_BJ60"; - window.HXQ = sgworld.Creator.createImageryProvider('hxqgisserver', "wms", { - url: urls, - layers: '', - parameters: { - format: "image/png", - transparent: true, - } - }, "0", undefined, true, function () { - Viewer.camera.flyTo({ - destination: Cesium.Cartesian3.fromDegrees(116.52556, 39.71046, 34189.97), - orientation: {//璁剧疆鐩告満鐨凥eading锛孭itch锛孯oll锛屽弬鐓т笂鍥� - heading: Cesium.Math.toRadians(360.0), - pitch: Cesium.Math.toRadians(-90.0), - roll: 0.0 - }, - duration: 3 - }); - }); -} -/**缁忓紑鍖� */ -export function loadJKQ() { - let urls = window.gisBaseUrl + "/gisserver/wmsserver/YZ_BJ"; - window.JKQ = sgworld.Creator.createImageryProvider('jkqgisserver', "wms", { - url: urls, - layers: '', - parameters: { - format: "image/png", - transparent: true, - } - }, "0", undefined, true, function () { - Viewer.camera.flyTo({ - destination: Cesium.Cartesian3.fromDegrees(116.52902, 39.67853, 59383.65), - orientation: {//璁剧疆鐩告満鐨凥eading锛孭itch锛孯oll锛屽弬鐓т笂鍥� - heading: Cesium.Math.toRadians(360.0), - pitch: Cesium.Math.toRadians(-90.0), - roll: 0.0 - }, - duration: 3 - }); - }); - -} -/**涔¢晣 */ -export function loadXZ() { - let urls = window.gisBaseUrl + "/gisserver/wmsserver/xiangzhen"; - window.XZ = sgworld.Creator.createImageryProvider('xzgisserver', "wms", { - url: urls, - layers: '', - parameters: { - format: "image/png", - transparent: true, - } - }, "0", undefined, true, function () { - Viewer.camera.flyTo({ - destination: Cesium.Cartesian3.fromDegrees(116.55718, 39.65440, 53149.25), - orientation: {//璁剧疆鐩告満鐨凥eading锛孭itch锛孯oll锛屽弬鐓т笂鍥� - heading: Cesium.Math.toRadians(360.0), - pitch: Cesium.Math.toRadians(-90.0), - roll: 0.0 - }, - duration: 3 - }); - }); - -} -/**绐ㄤ簳 */ -export function loadManhole() { - window.clusterLayer && window.clusterLayer.clear(); - axios - .get(window.gisBaseUrl + '/gisserver/wfsserver/yinjing?version=1.3.0&request=GetFeature&format=json&typename=yz浜曟暟鎹�') - .then(res => { - // let manholeList = JSON.parse(res.data); - store.setLayerPanelShow(false); - res.data.features.forEach((item, index) => { - window.clusterLayer.add( - new SmartEarth.Degrees(item.geometry.coordinates[0], item.geometry.coordinates[1], 15), - { - name: `YINJ-${item.properties.ID}-${item.properties['浜曞悕绉�']}-${item.properties['浜曟繁']}-${item.properties['浜曠被鍨�']}-${item.properties['浜曠紪鍙�']}-${item.properties['浣嶇疆']}-${item.properties['鏍囨澶囨敞']}-${item.properties['琛屾斂鍖虹紪鐮�']}-${item.geometry.coordinates[0]}-${item.geometry.coordinates[1]}`, - image: SmartEarthRootUrl + 'Workers/image/mark.png', - scale: 0.5 - } - ) - }); - - Viewer.camera.flyTo({ - destination: Cesium.Cartesian3.fromDegrees(116.54555, 39.74727, 20565.49), - orientation: {//璁剧疆鐩告満鐨凥eading锛孭itch锛孯oll锛屽弬鐓т笂鍥� - heading: Cesium.Math.toRadians(360.0), - pitch: Cesium.Math.toRadians(-90.0), - roll: 0.0 - }, - duration: 3 - }); - }) - // let url = window.gisBaseUrl + '/gisserver/wfsserver/yinjing'; - // let sgwfs = new SmartEarth.WFSTool(Viewer); - // sgwfs.CreateWfs('point', { - // urls: url, - // layer: 'yz浜曟暟鎹�', - // text: '[浜曞悕绉癩', - // image: SmartEarthRootUrl + 'Workers/image/mark.png', - // //offsetX: 20, - // offsetY: -40, - // color: '#de3', - // disableDepthTestDistance: Infinity - // }) -} -/**浼佷笟 */ -export function loadEnterprise() { - new Cesium.GeoJsonDataSource.load( - window.gisBaseUrl + '/gisserver/wfsserver/qiyelianqiye?version=1.3.0&request=GetFeature&format=json&typename=浼佷笟閾句紒涓�' - ) - // axios.get(window.gisBaseUrl + '/gisserver/wfsserver/qiyelianqiye?version=1.3.0&request=GetFeature&format=json&typename=浼佷笟閾句紒涓�') - .then(dataSource => { - console.log(dataSource); - store.qiyeJsonInfo = dataSource - }) - .catch((err) => { - console.log(err); - }); -} -// export function loadEnterprise() { -// window.clusterLayer && window.clusterLayer.clear(); -// axios -// .get(window.gisBaseUrl + '/gisserver/wfsserver/qiyelianqiye?version=1.3.0&request=GetFeature&format=json&typename=浼佷笟閾句紒涓�') -// .then(res => { -// // let manholeList = JSON.parse(res.data); -// store.setLayerPanelShow(false); -// res.data.features.forEach((item, index) => { -// window.clusterLayer.add( -// new SmartEarth.Degrees(item.geometry.coordinates[0], item.geometry.coordinates[1], 15), -// { -// name: `QY&${item.properties.ID}&${item.properties['QYMC']}&${item.properties['DZ']}&${item.properties['BZDZ']}&${item.properties['XYDM']}&${item.geometry.coordinates[0]}&${item.geometry.coordinates[1]}`, -// image: SmartEarthRootUrl + 'Workers/image/mark.png', -// scale: 0.5 -// } -// ) -// }); - -// Viewer.camera.flyTo({ -// destination: Cesium.Cartesian3.fromDegrees(116.54555, 39.74727, 20565.49), -// orientation: {//璁剧疆鐩告満鐨凥eading锛孭itch锛孯oll锛屽弬鐓т笂鍥� -// heading: Cesium.Math.toRadians(360.0), -// pitch: Cesium.Math.toRadians(-90.0), -// roll: 0.0 -// }, -// duration: 3 -// }); -// }) -// // let url = window.gisBaseUrl + '/gisserver/wfsserver/yinjing'; -// // let sgwfs = new SmartEarth.WFSTool(Viewer); -// // sgwfs.CreateWfs('point', { -// // urls: url, -// // layer: 'yz浜曟暟鎹�', -// // text: '[浜曞悕绉癩', -// // image: SmartEarthRootUrl + 'Workers/image/mark.png', -// // //offsetX: 20, -// // offsetY: -40, -// // color: '#de3', -// // disableDepthTestDistance: Infinity -// // }) -// } -/**鎽勫儚澶� */ -export function loadCamera() { - window.clusterLayer && window.clusterLayer.clear(); - axios - .get(window.gisBaseUrl + '/gisserver/wfsserver/YZ_SPJK_NEW_wfs?version=1.3.0&request=GetFeature&format=json&typename=鎽勫儚澶�0423') - .then(res => { - store.setLayerPanelShow(false); - res.data.features.forEach((item, index) => { - window.clusterLayer.add( - new SmartEarth.Degrees(item.geometry.coordinates[0], item.geometry.coordinates[1], 15), - { - name: `SPJK-${item.properties['IP鍦板潃']}-${item.properties['JK鍐呯爜']}-${item.properties['JK鍖哄煙']}-${item.properties['JK鍚嶇О']}-${item.properties['JK绫诲瀷']}-${item.properties['JK缂栧彿']}`, - image: SmartEarthRootUrl + 'Workers/image/mark1.png', - scale: 1 - } - ) - }); - Viewer.camera.flyTo({ - destination: Cesium.Cartesian3.fromDegrees(116.51463, 39.73972, 19586.80), - orientation: {//璁剧疆鐩告満鐨凥eading锛孭itch锛孯oll锛屽弬鐓т笂鍥� - heading: Cesium.Math.toRadians(360.0), - pitch: Cesium.Math.toRadians(-90.0), - roll: 0.0 - }, - duration: 3 - }); - }) - // let url = window.gisBaseUrl + '/gisserver/wfsserver/YZ_SPJK_NEW_wfs'; - // let sgwfs2 = new SmartEarth.WFSTool(Viewer); - // sgwfs2.CreateWfs('point', { - // urls: url, - // layer: '鎽勫儚澶�0423', - // text: '[JK鍚嶇О]', - // image: SmartEarthRootUrl + 'Workers/image/mark.png', - // //offsetX: 20, - // offsetY: -40, - // color: '#de3', - // disableDepthTestDistance: Infinity - // }) -} -/**娓呴櫎鐭㈤噺鍦板浘 */ -export function clearMap() { - window.HXQ && window.HXQ.deleteObject(); - window.JKQ && window.JKQ.deleteObject(); - window.XZ && window.XZ.deleteObject(); -} -// 宸﹀嚮浜嬩欢 -window.divPoint3 = null; -window.instance = null; -window.pickFeature = null; -window.imgUrl = null; -window.scale = null; -window.clickPOI = null -function read(wkt) { - var regExes = { - typeStr: /^\s*(\w+)\s*\(\s*(.*)\s*\)\s*$/, - emptyTypeStr: /^\s*(\w+)\s*EMPTY\s*$/, - spaces: /\s+/, - parenComma: /\)\s*,\s*\(/, - doubleParenComma: /\)\s*\)\s*,\s*\(\s*\(/, // can't use {2} here - trimParens: /^\s*\(?(.*?)\)?\s*$/, - }; - /** - * Object with properties corresponding to the geometry types. Property values - * are functions that do the actual parsing. - * @private - */ - var parse$1 = { - /** - * Return point geometry given a point WKT fragment. - * - * @param {String} str A WKT fragment representing the point. - * @return {Point} A point geometry. - * @private - */ - point: function point(str) { - if (str === undefined) { - return []; - } - - var coords = str.trim().split(regExes.spaces); - return [Number.parseFloat(coords[0]), Number.parseFloat(coords[1])]; - }, - - /** - * Return a multipoint geometry given a multipoint WKT fragment. - * - * @param {String} str A WKT fragment representing the multipoint. - * @return {Point} A multipoint feature. - * @private - */ - multipoint: function multipoint(str) { - var this$1 = this; - - if (str === undefined) { - return []; - } - - var point; - var points = str.trim().split(","); - var components = []; - for (var i = 0, len = points.length; i < len; ++i) { - point = points[i].replace(regExes.trimParens, "$1"); - components.push(parse$1.point(point)); - } - return components; - }, - - /** - * Return a linestring geometry given a linestring WKT fragment. - * - * @param {String} str A WKT fragment representing the linestring. - * @return {LineString} A linestring geometry. - * @private - */ - linestring: function linestring(str) { - if (str === undefined) { - return []; - } - - var points = str.trim().split(","); - var components = []; - var coords; - for (var i = 0, len = points.length; i < len; ++i) { - coords = points[i].trim().split(regExes.spaces); - components.push([ - Number.parseFloat(coords[0]), - Number.parseFloat(coords[1]), - ]); - } - return components; - }, - - /** - * Return a linearring geometry given a linearring WKT fragment. - * - * @param {String} str A WKT fragment representing the linearring. - * @return {LinearRing} A linearring geometry. - * @private - */ - linearring: function linearring(str) { - if (str === undefined) { - return []; - } - - var points = str.trim().split(","); - var components = []; - var coords; - for (var i = 0, len = points.length; i < len; ++i) { - coords = points[i].trim().split(regExes.spaces); - components.push([ - Number.parseFloat(coords[0]), - Number.parseFloat(coords[1]), - ]); - } - return components; - }, - - /** - * Return a multilinestring geometry given a multilinestring WKT fragment. - * - * @param {String} str A WKT fragment representing the multilinestring. - * @return {MultiLineString} A multilinestring geometry. - * @private - */ - multilinestring: function multilinestring(str) { - var this$1 = this; - - if (str === undefined) { - return []; - } - - var line; - var lines = str.trim().split(regExes.parenComma); - var components = []; - for (var i = 0, len = lines.length; i < len; ++i) { - line = lines[i].replace(regExes.trimParens, "$1"); - components.push(parse$1.linestring(line)); - } - return components; - }, - - /** - * Return a polygon geometry given a polygon WKT fragment. - * - * @param {String} str A WKT fragment representing the polygon. - * @return {Polygon} A polygon geometry. - * @private - */ - polygon: function polygon(str) { - var this$1 = this; - - if (str === undefined) { - return []; - } - - var ring, linestring, linearring; - var rings = str.trim().split(regExes.parenComma); - var shell; - var holes = []; - //for (var i = 0, len = rings.length; i < len; ++i) { - ring = rings[0].replace(regExes.trimParens, "$1"); - linestring = ring; - //} - return linestring; - }, - - /** - * Return a multipolygon geometry given a multipolygon WKT fragment. - * - * @param {String} str A WKT fragment representing the multipolygon. - * @return {MultiPolygon} A multipolygon geometry. - * @private - */ - multipolygon: function multipolygon(str) { - var this$1 = this; - - if (str === undefined) { - return []; - } - - var polygon; - var polygons = str.trim().split(regExes.doubleParenComma); - var components = []; - for (var i = 0, len = polygons.length; i < len; ++i) { - polygon = polygons[i].replace(regExes.trimParens, "$1"); - components.push(parse$1.polygon(polygon)); - } - return components; - }, - }; - - var geometry, type, str; - wkt = wkt.replace(/[\n\r]/g, " "); - var matches = regExes.typeStr.exec(wkt); - if (wkt.search("EMPTY") !== -1) { - matches = regExes.emptyTypeStr.exec(wkt); - matches[2] = undefined; - } - if (matches) { - type = matches[1].toLowerCase(); - str = matches[2]; - if (parse$1[type]) { - geometry = parse$1[type].apply(this, [str]); - } - } - - if (geometry === undefined) { - throw new Error("Could not parse WKT " + wkt); - } - - return geometry; -} -export function leftClick() { - try { - // 鐐瑰嚮浜嬩欢 - let handler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); - // let nPickFeature; - // 榧犳爣鐐瑰嚮浜嬩欢 - handler.setInputAction(event => { - window.clickPOI = sgworld.Navigate.getMouseDegrees(event); - // console.log(window.clickPOI); - if (window.clickPOI) { - // 闅愯棌搴曢儴鍥惧眰闈㈢増 - store.setLayerPanelShow(false); - // 闅愯棌鍙充笂瑙掕彍鍗曢潰鏉� - store.setMenuListShow(false); - // 闅愯棌搴曢儴婕父闈㈡澘 - store.setRoamPanelShow(false); - - } - // 鍦熷湴绠$悊 - if (store.tdglInfo.flag) { - axios - .get( - // "http://10.10.4.115:8022/geowinmap_xncs/ds?r=0.9158559377752831&serviceproviderid=map.vectorserviceprovider&serviceid=queryfeature&featcls=225%25E8%258C%2583%25E5%259B%25B4%25E5%2588%2586%25E5%258C%25BA%25E8%25A7%2584%25E5%2588%2592.geojson&lng=" + - window.gisBaseUrl + "yzxncsApi/geowinmap_xncs/ds?r=0.9158559377752831&serviceproviderid=map.vectorserviceprovider&serviceid=queryfeature&featcls=225%25E8%258C%2583%25E5%259B%25B4%25E5%2588%2586%25E5%258C%25BA%25E8%25A7%2584%25E5%2588%2592.geojson&lng=" + - window.clickPOI.lon + - "&lat=" + - window.clickPOI.lat + - "&geom=true&requesttype=json" - ).then(response => { - let center = { lon: 0, lat: 0 }; - let polygon = read(response.data.geometry); - if (polygon.length > 0) { - var geometry = []; - let points = polygon[0].split(","); - for (let i = 0; i < points.length; i++) { - let point = points[i].replace(/^\s+|\s+$/g, "").split(" "); - center.lon += parseFloat(point[0]) / points.length; - center.lat += parseFloat(point[1]) / points.length; - geometry.push({ - x: parseFloat(point[0]), - y: parseFloat(point[1]), - z: 0, - }); - } - if (window.tdglLine) { - sgworld.Creator.DeleteObject(window.tdglLine); - window.tdglLine = null; - } - window.tdglLine = sgworld.Creator.createPolyline( - geometry, - "#ff0000", - 1, - 0, - "绾�" - ); - if (center.lon != 0 && center.lat != 0) { - Viewer.camera.flyTo({ - destination: Cesium.Cartesian3.fromDegrees( - center.lon, - center.lat, - 1000 - ), - duration: 1.0, - }); - } - } - if (center.lon != 0 && center.lat != 0) { - axios - .get( - // "http://10.10.4.115:8022//poisearch/guihuacon/getInfo?ydbm=" + - window.gisBaseUrl + "yzxncsApi/poisearch/guihuacon/getInfo?ydbm=" + - response.data.NO - ) - .then( - info => { - let data = info.data.data; - if (data.yongdishuju === null) { - objdata = { - POITYPE: "NOTDGL", - zwxx: "鏆傛棤淇℃伅", - lon: window.clickPOI.lon, - lat: window.clickPOI.lat, - } - } else { - qiyexinxi = info.data.data.qiyexinxi; - qysl = data.qiyexinxi.length; - if (qysl > 0) { - ydbm = data.qiyexinxi[0]["鍦板潡缂栧彿"]; - } else { - ydbm = data.churangxinxi["ydbh"]; - } - try { - ydlx = data.yongdishuju["ydlxmc"]; - } catch (e) { } - try { - cyfx = data.yongdishuju["cyfx"]; - } catch (e) { } - try { - // this.crzt = response.data["ZT"]; - switch (response.data["ZT"]) { - case 3: - crzt = "宸插嚭璁�"; - break; - case 4: - crzt = "鏈嚭璁�"; - break; - } - } catch (e) { } - try { - ydmj = parseFloat( - "" + data.yongdishuju["ydmj"] - ).toFixed(0); - } catch (e) { } - try { - crnx = data.churangxinxi["crnx"]; - } catch (e) { } - try { - crnf = data.churangxinxi["crnf"]; - } catch (e) { } - try { - rjl = data.yongdishuju["rjl"]; - } catch (e) { } - try { - jzxg = data.yongdishuju["jzxg"]; - } catch (e) { } - try { - jzmd = data.yongdishuju["jzmd"]; - } catch (e) { } - objdata = { - POITYPE: "TDGL", - ydbm, - ydlx, - cyfx, - crzt, - ydmj, - ydbm, - crnx, - crnf, - rjl, - jzxg, - jzmd, - lon: window.clickPOI.lon, - lat: window.clickPOI.lat, - } - } - - store.setTdglShow(false); - store.setTdlgInfo({}); - store.setTdglShow(true); - store.setTdlgInfo(objdata); - - // divPoint3 && divPoint3.deleteObject(); - // store.setPoplayerShowAction(false); - // store.setPoplayerListAction({}); - // store.setPoplayerShowAction(true); - - // store.setPoplayerListAction(objdata); - // if (window.instance) { - // window.instance.$destroy(); - // } - // window.instance = new PoiLayerConstructor({ - // data: { - // list: objdata - // } - // }); - // window.instance.$mount(); - // divPoint3 = window.sgworld.Creator.createDivPoint('', { - // lon: objdata.lon, - // lat: objdata.lat, - // height: 5 - // }, { - // type: "custom", - // offset: ["c", 20], - // description: window.instance.$el, - // near: 0, - // far: 100000 - // }); - } - ); - } - }) - } - let nPickFeature = sgworld.Viewer.scene.pick(event.position); - // console.log(nPickFeature); - // if (nPickFeature == undefined) { - // window.flyPoint && Viewer.entities.remove(window.flyPoint); - // window.flyPoint = undefined; - // } - // console.log(event.position);//灞忓箷浣嶇疆 - if (!nPickFeature || !nPickFeature.id) { - return - } else if (nPickFeature.primitive instanceof Cesium.Billboard) { - let cartographic = - window.Viewer.scene.globe.ellipsoid.cartesianToCartographic( - nPickFeature.primitive.position - ); - let lon = Cesium.Math.toDegrees(cartographic.longitude); - let lat = Cesium.Math.toDegrees(cartographic.latitude); - let p = sgworld.Navigate.getDegrees(); - let flyHeight - if (p.height > 2000) { - flyHeight = p.height / 1.8 - } else if (p.height > 500) { - flyHeight = 500 - } else { - flyHeight = p.height - } - // console.log(p); - Viewer.camera.flyTo({ - destination: Cesium.Cartesian3.fromDegrees( - window.clickPOI.lon, - window.clickPOI.lat, - flyHeight - ), - duration: 1.0, - }); - - if (nPickFeature.id.length > 0) { - return; - } - // 閲嶇疆鍥炬爣 - if (window.pickFeature && window.pickFeature.primitive) { - window.pickFeature.primitive.image = imgUrl; - window.pickFeature.primitive.scale = scale; - window.pickFeature = null; - } - // 澶囦唤鎷惧彇鐨勫璞� - window.pickFeature = nPickFeature; - imgUrl = nPickFeature.primitive.image; - scale = nPickFeature.primitive.scale; - nPickFeature.primitive.scale = 1; - nPickFeature.primitive.image = - window.SmartEarthRootUrl + "Workers/image/point.png"; - //鐐瑰嚮寮规(閮ㄤ欢銆佷紒涓氥�佺洃鎺�) - if (nPickFeature.id.tag || nPickFeature.id.show) { - let properties = nPickFeature.id.properties; - let propertyNames = nPickFeature.id.properties.propertyNames; - if (propertyNames.indexOf("鐩戞帶鍚�") !== -1) { - // objdata = { - // POITYPE: "SPJK", - // name: properties["JK鍚嶇О"]._value, - // type: properties["JK绫诲瀷"]._value, - // function: properties["鍔熻兘"]._value, - // area: properties["鎵�鍦ㄥ尯"]._value, - // number: properties["JK缂栧彿"]._value, - // code: properties["JK鍐呯爜"]._value, - // lon: lon, - // lat: lat, - // } - Message({ - message: '杩炴帴鐘舵�佹煡璇腑', - type: 'info', - offset: 60, - center: true, - duration: 1000, - }); - layerOpen(properties["JK鍚嶇О"]._value, { - width: "100%", - height: "40%", - // offset: [offsetTop + "px", "380px"], - url: "../../static/video/video.html?code=" + properties["JK鍐呯爜"]._value, - fn: { - success: (layero, index) => { - SmartEarthPopupData.layerContainer = layero; - }, - end: () => { - - }, - cancel: () => { - // 閲嶇疆鍥炬爣 - if (window.pickFeature && window.pickFeature.primitive) { - window.pickFeature.primitive.image = imgUrl; - window.pickFeature.primitive.scale = scale; - window.pickFeature = null; - } - sgworld.drawObj && - sgworld.drawObj.end && - sgworld.drawObj.end("cancel"); - }, - }, - }); - return - } else if (propertyNames.indexOf("閮ㄤ欢鍚嶇О") !== -1) { - objdata = { - // 鐐逛綅绫诲瀷锛堜腑鑻辨枃閰嶇疆琛╬oiKeys.js) - POITYPE: "CSBJ", - // 灞曠ず瀛楁 - name: properties["閮ㄤ欢鍚嶇О"]._value, - address: properties["瀹夎鍦板潃"]._value, - code: properties["閮ㄤ欢缂栫爜"]._value, - type: properties["閮ㄤ欢绫诲瀷"]._value, - // 寮规缁忕含搴� - lon: lon, - lat: lat, - } - } else if (propertyNames.indexOf("浜曠紪鍙�") !== -1) { - objdata = { - POITYPE: "YINJ", - name: properties["浜曞悕绉�"]._value, - depth: properties["浜曟繁"]._value, - type: properties["浜曠被鍨�"]._value, - location: properties["浣嶇疆"]._value, - code: properties["浜曠紪鍙�"]._value, - lon: lon, - lat: lat, - } - } else if (propertyNames.indexOf("QYMC") !== -1) { - objdata = { - POITYPE: "QY", - QYMC: properties["QYMC"]._value, - XYDM: properties["XYDM"]._value, - BZDZ: properties["BZDZ"]._value, - DZ: properties["DZ"]._value, - lon: lon, - lat: lat, - } - } else if (propertyNames.includes("id")) { - objdata = { - POITYPE: "POINT", - name: properties["_name"]._value, - address: properties["_address"]._value, - lat: properties["_lat"]._value, - lon: properties["_lng"]._value, - } - } - divPoint3 && divPoint3.deleteObject(); - store.setPoplayerShowAction(false); - store.setPoplayerListAction({}); - store.setPoplayerShowAction(true); - // let arr = nPickFeature.id.name.split('&'); - // console.log(arr); - // let objdata = { - // POITYPE: "QY", - // QYMC: arr[2], - // DZ: arr[3], - // BZDZ: arr[4], - // XYDM: arr[5], - // lon: arr[6], - // lat: arr[7], - // } - store.setPoplayerListAction(objdata); - if (window.instance) { - window.instance.$destroy(); - } - window.instance = new PoiLayerConstructor({ - data: { - list: objdata - } - }); - window.instance.$mount(); - divPoint3 = window.sgworld.Creator.createDivPoint('', { - lon: objdata.lon, - lat: objdata.lat, - height: 5 - }, { - type: "custom", - offset: ["c", 20], - description: window.instance.$el, - near: 0, - far: 100000 - }); - return; - } - // - } - // if (nPickFeature.id && nPickFeature.id.name.indexOf('YINJ') != -1) { - // divPoint3 && divPoint3.deleteObject(); - // store.setPoplayerShowAction(false); - // store.setPoplayerListAction({}); - // store.setPoplayerShowAction(true); - // let arr = nPickFeature.id.name.split('-'); - // let objdata = { - // POITYPE: "YINJ", - // name: arr[2], - // depth: arr[3], - // type: arr[4], - // code: arr[5], - // location: arr[6], - // text: arr[7], - // areaCode: arr[8], - // lon: arr[9], - // lat: arr[10] - // } - // store.setPoplayerListAction(objdata); - // if (window.instance) { - // window.instance.$destroy(); - // } - // window.instance = new PoiLayerConstructor({ - // data: { - // list: objdata - // } - // }); - // window.instance.$mount(); - // divPoint3 = window.sgworld.Creator.createDivPoint('', { - // lon: objdata.lon, - // lat: objdata.lat, - // height: 5 - // }, { - // type: "custom", - // offset: ["c", 20], - // description: window.instance.$el, - // near: 0, - // far: 100000 - // }); - // return; - // } - // else if (nPickFeature.id && nPickFeature.id.name.indexOf('QY') != -1) { - // divPoint3 && divPoint3.deleteObject(); - // store.setPoplayerShowAction(false); - // store.setPoplayerListAction({}); - // store.setPoplayerShowAction(true); - // let arr = nPickFeature.id.name.split('&'); - // // console.log(arr); - // let objdata = { - // POITYPE: "QY", - // QYMC: arr[2], - // DZ: arr[3], - // BZDZ: arr[4], - // XYDM: arr[5], - // lon: arr[6], - // lat: arr[7], - // } - // store.setPoplayerListAction(objdata); - // if (window.instance) { - // window.instance.$destroy(); - // } - // window.instance = new PoiLayerConstructor({ - // data: { - // list: objdata - // } - // }); - // window.instance.$mount(); - // divPoint3 = window.sgworld.Creator.createDivPoint('', { - // lon: objdata.lon, - // lat: objdata.lat, - // height: 5 - // }, { - // type: "custom", - // offset: ["c", 20], - // description: window.instance.$el, - // near: 0, - // far: 100000 - // }); - // return; - // } - else { - // return; - } - }, Cesium.ScreenSpaceEventType.LEFT_CLICK); - - } catch (e) { } -} - -//鍔犺浇涓夌淮鍥惧眰 -export function loadLayer(treeNode) { - console.log('loadLayer', treeNode); - let layer; - switch (treeNode.sourceType) { - case "tms": - layer = sgworld.Creator.createImageryProvider( - treeNode.name, - "tms", - { - id: treeNode.id, - url: treeNode.urls, - fileExtension: treeNode.img || "png", - enablePickFeatures: false, - alpha: treeNode.alpha, - }, - "0", - undefined, - true, - "" - ); - return layer; - break; - case "local-map": - // 娣诲姞鏈湴鍦板浘 - if (treeNode.tms) { - layer = sgworld.Creator.createImageryProvider( - treeNode.name, - "tms", - { - id: treeNode.id, - url: treeNode.urls, - fileExtension: treeNode.img || "png", - enablePickFeatures: false, - level: treeNode.Level, - minimumLevel: treeNode.minimumLevel, - maximumLevel: treeNode.maximumLevel, - minificationFilter: Cesium.TextureMinificationFilter.NEAREST_MIPMAP_LINEAR, - magnificationFilter: Cesium.TextureMinificationFilter.NEAREST_MIPMAP_LINEAR, - tilingScheme: - treeNode.tileType === "Geo" - ? new Cesium.GeographicTilingScheme() - : new Cesium.WebMercatorTilingScheme(), - alpha: treeNode.alpha, - }, - "0", - treeNode.zIndex, - true, - "" - ); - } else { - layer = sgworld.Creator.createUrlTemplateImageryProvider( - treeNode.name, - { - id: treeNode.id, - url: `${treeNode.urls}/${treeNode.tile || "{z}/{x}/{y}"}.${treeNode.img || "png" - }`, - enablePickFeatures: false, - level: treeNode.Level, - minimumLevel: treeNode.minimumLevel, - maximumLevel: treeNode.maximumLevel, - tilingScheme: - treeNode.tileType === "Geo" - ? new Cesium.GeographicTilingScheme() - : new Cesium.WebMercatorTilingScheme(), - alpha: treeNode.alpha, - }, - "0", - treeNode.zIndex, - true, - "" - ); - } - break; - case "kml": - // 娣诲姞kml鏁版嵁 - layer = sgworld.Creator.addKmlLayer( - treeNode.name, - { - id: treeNode.id, - url: treeNode.urls, - }, - true - ); - break; - case "google": - // 娣诲姞璋锋瓕鍦板浘 - layer = sgworld.Creator.createUrlTemplateImageryProvider( - treeNode.name, - { - id: treeNode.id, - url: treeNode.urls, - enablePickFeatures: false, - level: treeNode.Level, - minimumLevel: treeNode.minimumLevel, - maximumLevel: treeNode.maximumLevel, - alpha: treeNode.alpha, - }, - "0", - treeNode.zIndex, - true, - "" - ); - break; - case "arcgis": - // arcgis鍦板浘 - layer = sgworld.Creator.createArcGisImageryLayer( - treeNode.name, - { - id: treeNode.id, - url: treeNode.urls, - enablePickFeatures: false, - level: treeNode.Level, - usePreCachedTilesIfAvailable: treeNode.GCJ02 ? false : true, // 鏄惁浣跨敤鏈嶅姟鐨勫唴缃殑鍒囩墖鏂规锛屽亸绉荤籂姝i渶瑕佷娇鐢ㄥ涓嬭嚜瀹氫箟鐨勬柟妗� - tilingScheme: treeNode.GCJ02 - ? sgworld.Core.getOffsetTilingScheme() - : undefined, // 鍋忕Щ绾犳 - minimumLevel: treeNode.minimumLevel, - maximumLevel: treeNode.maximumLevel, - alpha: treeNode.alpha, - }, - "0", - treeNode.zIndex, - true, - "" - ); - return layer; - break; - case "mapbox": - // mapbox鍦板浘 - layer = sgworld.Creator.createImageryProvider( - treeNode.name, - "MapBox", - { - id: treeNode.id, - name: treeNode.name, - level: treeNode.Level, - enablePickFeatures: false, - mapId: treeNode.mapId, - minimumLevel: treeNode.minimumLevel, - maximumLevel: treeNode.maximumLevel, - alpha: treeNode.alpha, - accessToken: - treeNode.token || - "pk.eyJ1IjoibWFyc2dpcyIsImEiOiJja2Fod2xlanIwNjJzMnhvMXBkMnNqcjVpIn0.WnxikCaN2KV_zn9tLZO77A", - }, - "0", - treeNode.zIndex, - true, - "" - ); - break; - case "tdmap": - // 澶╁湴鍥� - layer = sgworld.Creator.createWebMapTileServerImageLayer( - treeNode.name, - { - id: treeNode.id, - url: treeNode.urls, - level: treeNode.Level, - minimumLevel: treeNode.minimumLevel, - maximumLevel: 18, - style: treeNode.style, - layer: treeNode.layer, - format: treeNode.format, - enablePickFeatures: false, - tileMatrixSetID: "tiff", - show: true, - subdomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"], - alpha: treeNode.alpha, - }, - "0", - treeNode.zIndex, - true, - "" - ); - return layer; - break; - - case "yzsate": - layer = sgworld.Creator.createWebMapTileServerImageLayer( - treeNode.name, - { - id: treeNode.id, - url: treeNode.urls, - layer: treeNode.layer, - enablePickFeatures: false, - show: true, - tileMatrixSetID: treeNode.ttileMatrixSetId - ? treeNode.ttileMatrixSetId - : "Sate_2019", - tilingScheme: new Cesium.WebMercatorTilingScheme({ - rectangleSouthwestInMeters: new Cesium.Cartesian2(0, -229396.5), - rectangleNortheastInMeters: new Cesium.Cartesian2( - 917580, - 688193.5 - ), - //rectangleSouthwestInMeters:new Cesium.Cartesian2(0,0) , - // rectangleNortheastInMeters:new Cesium.Cartesian2(20037508.3427892, 20037508.3427892), - numberOfLevelZeroTilesX: 4, - numberOfLevelZeroTilesY: 4, - projection: new Cesium.GeographicProjection(), - }), - }, - pID, - undefined, - treeNode.checked, - "" - ); - treeNode.id = layer.treeobj.id; - break; - case "yzmap": - layer = sgworld.Creator.createWebMapTileServerImageLayer( - treeNode.name, - { - id: treeNode.id, - url: treeNode.urls, - layer: treeNode.layer, - enablePickFeatures: false, - show: true, - }, - pID, - undefined, - treeNode.checked, - "" - ); - treeNode.id = layer.treeobj.id; - break; - - case "yztile": - layer = new YZWMS(treeNode); - sgworld._Viewer.imageryLayers.addImageryProvider(layer); - break; - case "tdt_label": - // 澶╁湴鍥句笁缁存敞璁� - layer = sgworld.Creator.GeoWTFS({ - token: treeNode.token || "c53eb074c3fcba5ac86103d4d711bbe8", - url: treeNode.urls, - subdomains: ["0", "1", "2", "3", "4", "5", "6", "7"], - }); - break; - case "txmap": - // 鑵捐鍦板浘 - layer = sgworld.Creator.createUrlTemplateImageryProvider( - treeNode.name, - { - id: treeNode.id, - url: treeNode.urls, - level: treeNode.Level, - enablePickFeatures: false, - minimumLevel: treeNode.minimumLevel, - maximumLevel: 18, - alpha: treeNode.alpha, - tilingScheme: sgworld.Core.getOffsetTilingScheme(), // 鍋忕Щ绾犳 - customTags: { - sx: (_imageryProvider, x) => { - return x >> 4; - }, - sy: (_imageryProvider, _x, y, level) => { - return ((1 << level) - y) >> 4; - }, - }, - }, - "0", - treeNode.zIndex, - true, - "" - ); - return layer; - break; - case "gdmap": - // 楂樺痉鍦板浘 - layer = sgworld.Creator.createUrlTemplateImageryProvider( - treeNode.name, - { - id: treeNode.id, - url: treeNode.urls, - enablePickFeatures: false, - level: treeNode.Level, - minimumLevel: treeNode.minimumLevel, - maximumLevel: 18, - tilingScheme: sgworld.Core.getOffsetTilingScheme(), // 鍋忕Щ绾犳 - alpha: treeNode.alpha, - }, - "0", - treeNode.zIndex, - true, - "" - ); - return layer; - break; - case "bdmap": - // 鐧惧害鍦板浘 - layer = sgworld.Creator.createImageryProvider( - treeNode.name, - "BaiduMap", - { - id: treeNode.id, - level: treeNode.Level, - enablePickFeatures: false, - style: treeNode.style, - minimumLevel: treeNode.minimumLevel, - maximumLevel: treeNode.maximumLevel, - alpha: treeNode.alpha, - }, - "0", - treeNode.zIndex, - true, - "" - ); - break; - case "cesiumblack": - // cesiumIon榛戝鍦板浘 - layer = sgworld.Creator.createImageryProvider( - treeNode.name, - "cesiumBlack", - { - id: treeNode.id, - url: treeNode.urls, - flipXY: true, - enablePickFeatures: false, - level: treeNode.Level, - minimumLevel: treeNode.minimumLevel, - maximumLevel: treeNode.maximumLevel, - alpha: treeNode.alpha, - }, - "0", - treeNode.zIndex, - true, - "" - ); - break; - case "osm": - // osm鍦板浘 - layer = sgworld.Creator.createImageryProvider( - treeNode.name, - "OpenStreetMap", - { - id: treeNode.id, - url: treeNode.urls, - enablePickFeatures: false, - level: treeNode.Level, - minimumLevel: treeNode.minimumLevel, - maximumLevel: treeNode.maximumLevel, - alpha: treeNode.alpha, - }, - "0", - treeNode.zIndex, - true, - "" - ); - break; - case "wmts": - // wmts褰卞儚 - layer = sgworld.Creator.createWebMapTileServerImageLayer( - treeNode.name, - { - id: treeNode.id, - url: treeNode.urls, - level: treeNode.Level, - style: treeNode.style, - layer: treeNode.layer, - enablePickFeatures: false, - format: treeNode.format, - tileMatrixSetID: treeNode.srs, - tilingScheme: - treeNode.tileType === "Geo" - ? new Cesium.GeographicTilingScheme() - : new Cesium.WebMercatorTilingScheme(), - show: true, - minimumLevel: treeNode.minimumLevel, - maximumLevel: treeNode.maximumLevel, - alpha: treeNode.alpha, - }, - "0", - treeNode.zIndex, - true, - "" - ); - return layer; - break; - case "gis_wmts": - // gisserver wmst褰卞儚 - layer = sgworld.Creator.createUrlTemplateImageryProvider( - treeNode.name, - { - id: treeNode.id, - url: Cesium.buildModuleUrl( - treeNode.urls + "/{z}/{x}/{reverseY}.png" - ), - enablePickFeatures: false, - level: treeNode.Level, - minimumLevel: treeNode.minimumLevel, - maximumLevel: treeNode.maximumLevel, - alpha: treeNode.alpha, - }, - "0", - treeNode.zIndex, - true, - "" - ); - break; - case "wmts_zj": - // 琛屽垪鍙峰樊涓ゅ�嶇殑wmts - var geotil = new Cesium.GeographicTilingScheme({ - rectangle: Cesium.Rectangle.MAX_VALUE, - }); - if (treeNode.addLevel && treeNode.addLevel === 2) { - geotil.positionToTileXY = function (position, level, result) { - level > 0 && level++; - var rectangle = this._rectangle; - if (!Cesium.Rectangle.contains(rectangle, position)) { - // outside the bounds of the tiling scheme - return undefined; - } - - var xTiles = this.getNumberOfXTilesAtLevel(level); - var yTiles = this.getNumberOfYTilesAtLevel(level); - - var xTileWidth = rectangle.width / xTiles; - var yTileHeight = rectangle.height / yTiles; - - var longitude = position.longitude; - if (rectangle.east < rectangle.west) { - longitude += Cesium.Math.TWO_PI; - } - - var xTileCoordinate = - ((longitude - rectangle.west) / xTileWidth) | 0; - if (xTileCoordinate >= xTiles) { - xTileCoordinate = xTiles - 1; - } - - var yTileCoordinate = - ((rectangle.north - position.latitude) / yTileHeight) | 0; - if (yTileCoordinate >= yTiles) { - yTileCoordinate = yTiles - 1; - } - - if (!Cesium.defined(result)) { - return new Cesium.Cartesian2(xTileCoordinate, yTileCoordinate); - } - - result.x = xTileCoordinate; - result.y = yTileCoordinate; - return result; - }; - geotil.tileXYToRectangle = function (x, y, level, result) { - level > 0 && level++; - var rectangle = this._rectangle; - - var xTiles = this.getNumberOfXTilesAtLevel(level); - var yTiles = this.getNumberOfYTilesAtLevel(level); - - var xTileWidth = rectangle.width / xTiles; - var west = x * xTileWidth + rectangle.west; - var east = (x + 1) * xTileWidth + rectangle.west; - - var yTileHeight = rectangle.height / yTiles; - var north = rectangle.north - y * yTileHeight; - var south = rectangle.north - (y + 1) * yTileHeight; - - if (!Cesium.defined(result)) { - result = new Cesium.Rectangle(west, south, east, north); - } - - result.west = west; - result.south = south; - result.east = east; - result.north = north; - return result; - }; - } - layer = sgworld.Creator.createWebMapTileServerImageLayer( - treeNode.name, - { - id: treeNode.id, - url: treeNode.urls, - layer: treeNode.layer, - level: treeNode.Level, - minimumLevel: treeNode.minimumLevel, - maximumLevel: treeNode.maximumLevel, - style: "default", - tileMatrixSetID: "esritilematirx", - format: "image/png", - tilingScheme: geotil, - addLevel: treeNode.addLevel || 1, //灞傜骇鍔犱竴 - enablePickFeatures: false, - show: true, - alpha: treeNode.alpha, - }, - "0", - treeNode.zIndex, - true, - "" - ); - break; - case "wms": - case "wmsc": - // wms鏁版嵁 - var parameters = { - service: "WMS", - format: "image/png", - transparent: true, - }; - if (treeNode.removeNullValue) { - if (treeNode.nullvalue) { - treeNode.nullvalue = treeNode.nullvalue.replace("rgb(", ""); - treeNode.nullvalue = treeNode.nullvalue.replace(")", ""); - } - parameters.nullvalue = sgworld.Core.defaultValue( - treeNode.nullvalue, - "0,0,0" - ); - parameters.nulltolerance = sgworld.Core.defaultValue( - treeNode.nulltolerance, - 0 - ); - } - treeNode.token && (treeNode.urls += "?token=" + treeNode.token); - if (treeNode.sourceType === "wmsc") { - layer = sgworld.Creator.createCacheImageryProvider( - treeNode.name, - { - id: treeNode.id, - url: treeNode.urls || "", - layers: treeNode.layer || "", - level: treeNode.Level, - enablePickFeatures: false, - cacheUrl: treeNode.cacheUrl || treeNode.urls, - fileExtension: treeNode.fileExtension, - cacheMaxLevel: treeNode.cacheMaxLevel || 16, - alpha: treeNode.alpha, - }, - "0", - treeNode.zIndex, - treeNode.checked, - "" - ); - } else { - layer = sgworld.Creator.createImageryProvider( - treeNode.name, - "wms", - { - id: treeNode.id, - url: treeNode.urls, - layers: treeNode.layer || "", - level: treeNode.Level, - minimumLevel: treeNode.minimumLevel, - maximumLevel: treeNode.maximumLevel, - enablePickFeatures: false, - parameters: parameters, - alpha: treeNode.alpha, - }, - "0", - treeNode.zIndex, - true, - "" - ); - } - break; - case "wmse": - layer = sgworld.Creator.createImageryProvider( - treeNode.name, - "wms", - { - id: treeNode.id, - url: treeNode.urls, - level: treeNode.Level, - minimumLevel: treeNode.minimumLevel, - maximumLevel: treeNode.maximumLevel, - enablePickFeatures: false, - - layers: treeNode.layer || "", - alpha: treeNode.alpha, - parameters: { - format: "image/png", - transparent: true, - }, - }, - "0", - undefined, - true, - "" - ); - break; - case "wfs": - // wfs鏁版嵁 - layer = sgwfs.CreateWfs(treeNode.class, treeNode); - break; - case "geojson": - if (treeNode.class === "point") { - treeNode.disableDepthTestDistance === "Infinity" && - (treeNode.disableDepthTestDistance = Number.POSITIVE_INFINITY); - - de = { - id: treeNode.id, - fillColor: sgworld.Core.defaultValue(treeNode.color, "#ffffff"), - color: sgworld.Core.defaultValue(treeNode.imageColor, undefined), - outlineColor: sgworld.Core.defaultValue( - treeNode.outlineColor, - "#ffffff" - ), - backgroundColor: sgworld.Core.defaultValue( - treeNode.backgroundColor, - "#ffffff" - ), - heightReference: sgworld.Core.defaultValue( - treeNode.heightReference, - 0 - ), - pointHeight: sgworld.Core.defaultValue( - treeNode.pointHeight, - undefined - ), - near: sgworld.Core.defaultValue(treeNode.near, 0), - far: sgworld.Core.defaultValue(treeNode.far, 99999999999), - bold: treeNode.bold, - italic: treeNode.italic, - showBackground: treeNode.showBackground, - outlineWidth: sgworld.Core.defaultValue(treeNode.outlineWidth, 1), - text: treeNode.text, - image: treeNode.image, - font_size: treeNode.size, - font_family: sgworld.Core.defaultValue( - treeNode.font_family, - "寰蒋闆呴粦" - ), - disableDepthTestDistance: sgworld.Core.defaultValue( - treeNode.disableDepthTestDistance, - undefined - ), - labelData: treeNode.labelData, - imageData: treeNode.imageData, - }; - - if ( - treeNode.text && - treeNode.image && - !treeNode.labelData && - !treeNode.imageData - ) { - de.labelData = { - horizontalOrigin: Cesium.HorizontalOrigin.LEFT, - pixelOffset: new Cesium.Cartesian2(20, 0), - }; - de.imageData = { - horizontalOrigin: Cesium.HorizontalOrigin.CENTER, - pixelOffset: new Cesium.Cartesian2(0, 0), - }; - } - layer = sgworld.Creator.createLabelPointGeoJsonFeatureLayer( - treeNode.name, - treeNode.urls, - de, - "0", - treeNode.checked - ); - } else if (treeNode.class === "polyline") { - de = { - id: treeNode.id, - layertype: "polylinelayer", - material: sgworld.Core.defaultValue(treeNode.color, "#ffffff"), - outlineColor: sgworld.Core.defaultValue( - treeNode.outlineColor, - "#ffffff" - ), - outlineWidth: sgworld.Core.defaultValue(treeNode.outlineWidth, 0), - height: sgworld.Core.defaultValue(treeNode.height, undefined), - width: sgworld.Core.defaultValue(treeNode.width, 2), - clampToGround: sgworld.Core.defaultValue( - treeNode.clampToGround, - true - ), - classificationType: treeNode.classificationType, - dash: sgworld.Core.defaultValue(treeNode.dash, false), - dashLength: sgworld.Core.defaultValue(treeNode.dashLength, 20), - gapColor: sgworld.Core.defaultValue( - treeNode.gapColor, - "rgba(0,0,0,0)" - ), - near: sgworld.Core.defaultValue(treeNode.near, 0), - far: sgworld.Core.defaultValue(treeNode.far, Infinity), - }; - - layer = sgworld.Creator.createPolylineGeoJsonFeatureLayer( - treeNode.name, - treeNode.urls, - de, - "0", - treeNode.checked - ); - } else if (treeNode.class === "polylineVolume") { - de = { - id: treeNode.id, - material: sgworld.Core.defaultValue(treeNode.color, "#ff0000"), - slttype: "0", - number: "4", - exradius: "1", - inradius: "1", - orth_width: "2", - orth_height: "2", - radius: sgworld.Core.defaultValue(treeNode.radius, 5), - cornerType: "0", - heightReference: "0", - height: sgworld.Core.defaultValue(treeNode.lineHeight, 0), - near: "0", - far: "99999999999", - radiusScale: treeNode.radiusScale, - connect: true, - }; - layer = sgworld.Creator.createpolylineVolumeGeojsonPrimitiveLayer( - treeNode.name, - treeNode.urls, - de, - "0", - true, - function (data) { - if (treeNode.flow) { - let lines = data.entities.values; - lines.forEach((line) => { - line.polylineVolume.material = - sgworld.Core.getTrailLinkMaterial( - sgworld.Core.defaultValue(treeNode.color, "#ff0000"), - "../static/images/smoke.png", - 9000 - ); - }); - } - } - ); - } else if (treeNode.class === "model") { - de = { - id: treeNode.id, - collect: 0, - uri: sgworld.Core.defaultValue(treeNode.model, ""), - file: "", - color: sgworld.Core.defaultValue(treeNode.color, "#ffffff"), - scale: sgworld.Core.defaultValue(treeNode.scale, 1), - heightReference: 0, - height: sgworld.Core.defaultValue(treeNode.height, 0), - near: "0", - far: "99999999999", - }; - layer = sgworld.Creator.createModelPointGeoJsonFeatureLayer( - treeNode.name, - treeNode.urls, - de, - "0", - true - ); - } else if (treeNode.class === "polygon") { - treeNode.disableDepthTestDistance === "Infinity" && - (treeNode.disableDepthTestDistance = Number.POSITIVE_INFINITY); - - de = { - id: treeNode.id, - material: sgworld.Core.defaultValue(treeNode.color, "#ff0000"), - height: sgworld.Core.defaultValue(treeNode.height, 0), - outlineColor: sgworld.Core.defaultValue( - treeNode.outlineColor, - "#ff0000" - ), - extrudedHeight: sgworld.Core.defaultValue( - treeNode.extrudedHeight, - 0 - ), - outlineWidth: sgworld.Core.defaultValue(treeNode.outlineWidth, 0), - outline: sgworld.Core.defaultValue(treeNode.outline, true), - clampToGround: sgworld.Core.defaultValue( - treeNode.clampToGround, - treeNode.extrudedHeight === undefined && - treeNode.height === undefined - ), - classificationType: treeNode.classificationType, - near: sgworld.Core.defaultValue(treeNode.near, 0), - far: sgworld.Core.defaultValue(treeNode.far, Infinity), - - text: treeNode.text, - font: sgworld.Core.defaultValue(treeNode.font, "寰蒋闆呴粦"), - labelNear: treeNode.labelNear, - labelFar: treeNode.labelFar, - fontSize: sgworld.Core.defaultValue(treeNode.size, "18px"), - italic: treeNode.italic, - bold: treeNode.bold, - pixelOffset: new Cesium.Cartesian2( - sgworld.Core.defaultValue(treeNode.offsetX, 0), - sgworld.Core.defaultValue(treeNode.offsetY, 0) - ), - labelOutlineWidth: 2, - disableDepthTestDistance: treeNode.disableDepthTestDistance, - - water: treeNode.water, - }; - layer = sgworld.Creator.createPolygonGeoJsonFeatureLayer( - treeNode.name, - treeNode.urls, - de, - "0", - treeNode.checked - ); - } - break; - case "pathLayer": - layer = sgworld.Creator.createPathLayer({ - id: treeNode.id, - url: treeNode.url, - color: treeNode.color || "#0033FF", //绾跨殑棰滆壊 - width: treeNode.width || 4.0, //绾跨殑瀹藉害 - pointColor: treeNode.pointColor || "#FFFFFF", //绉诲姩鐐圭殑棰滆壊 - speed: treeNode.speed || 5, - far: treeNode.far || 5000, - }); - break; - case "vector": { - let urls = { - url: treeNode.urls, - layer: treeNode.layer, - srs: treeNode.srs, - }; - if ( - treeNode.class === "point" || - treeNode.class === "label" || - treeNode.class === "image" - ) { - treeNode.disableDepthTestDistance === "Infinity" && - (treeNode.disableDepthTestDistance = Number.POSITIVE_INFINITY); - if (treeNode.style) { - // de = getVectorStyleFromSG(treeNode, treeNode.style); - } else { - de = { - id: treeNode.id, - level_min: sgworld.Core.defaultValue(treeNode.minimumLevel, 10), - level_max: sgworld.Core.defaultValue(treeNode.maximumLevel, 22), - fillColor: sgworld.Core.defaultValue(treeNode.color, "#ffffff"), - color: sgworld.Core.defaultValue( - treeNode.imageColor, - undefined - ), - outlineColor: sgworld.Core.defaultValue( - treeNode.outlineColor, - "#ffffff" - ), - backgroundColor: sgworld.Core.defaultValue( - treeNode.backgroundColor, - "#ffffff" - ), - heightReference: sgworld.Core.defaultValue( - treeNode.heightReference, - 0 - ), - pointHeight: sgworld.Core.defaultValue( - treeNode.pointHeight, - undefined - ), - near: sgworld.Core.defaultValue(treeNode.near, 0), - far: sgworld.Core.defaultValue(treeNode.far, 99999999999), - bold: treeNode.bold, - italic: treeNode.italic, - showBackground: treeNode.showBackground, - outlineWidth: sgworld.Core.defaultValue( - treeNode.outlineWidth, - 1 - ), - text: treeNode.text, - image: treeNode.image, - font_size: treeNode.size, - font_family: sgworld.Core.defaultValue( - treeNode.font_family, - "寰蒋闆呴粦" - ), - disableDepthTestDistance: sgworld.Core.defaultValue( - treeNode.disableDepthTestDistance, - undefined - ), - labelData: treeNode.labelData, - imageData: treeNode.imageData, - }; - } - - if ( - treeNode.text && - treeNode.image && - !treeNode.labelData && - !treeNode.imageData - ) { - de.labelData = { - horizontalOrigin: Cesium.HorizontalOrigin.LEFT, - pixelOffset: new Cesium.Cartesian2(20, 0), - }; - de.imageData = { - horizontalOrigin: Cesium.HorizontalOrigin.CENTER, - pixelOffset: new Cesium.Cartesian2(0, 0), - }; - } - urls.upperLevelLimit = de.level_max; - urls.lowerLevelLimit = de.level_min; - layer = sgworld.Creator.createLabelImageGeoJsonFeatureLayerProvider( - treeNode.name, - urls, - de, - "0", - treeNode.checked, - function () { } - ); - } else if (treeNode.class === "polylineVolume") { - de = { - id: treeNode.id, - level_min: sgworld.Core.defaultValue(treeNode.minimumLevel, 10), - level_max: sgworld.Core.defaultValue(treeNode.maximumLevel, 22), - material: sgworld.Core.defaultValue(treeNode.color, "#ff0000"), - slttype: "0", - number: "4", - exradius: "1", - inradius: "1", - orth_width: "2", - orth_height: "2", - radius: sgworld.Core.defaultValue(treeNode.radius, 0.5), - cornerType: "0", - heightReference: "0", - height: sgworld.Core.defaultValue(treeNode.height, 0), - near: sgworld.Core.defaultValue(treeNode.near, 0), - far: sgworld.Core.defaultValue(treeNode.far, 99999999999), - radiusScale: treeNode.radiusScale, - }; - urls.upperLevelLimit = de.level_max; - urls.lowerLevelLimit = de.level_min; - layer = sgworld.Creator.createVolumeGeoJsonFeatureLayerProvider( - treeNode.name, - urls, - de, - "0", - treeNode.checked, - function () { } - ); - } else if (treeNode.class === "polyline") { - de = { - id: treeNode.id, - layertype: "polylinelayer", - level_min: sgworld.Core.defaultValue(treeNode.minimumLevel, 10), - level_max: sgworld.Core.defaultValue(treeNode.maximumLevel, 22), - material: sgworld.Core.defaultValue(treeNode.color, "#ffffff"), - outlineColor: sgworld.Core.defaultValue( - treeNode.outlineColor, - "#ffffff" - ), - outlineWidth: sgworld.Core.defaultValue(treeNode.outlineWidth, 0), - height: sgworld.Core.defaultValue(treeNode.height, undefined), - width: sgworld.Core.defaultValue(treeNode.width, 2), - clampToGround: sgworld.Core.defaultValue( - treeNode.clampToGround, - true - ), - classificationType: treeNode.classificationType, - dash: sgworld.Core.defaultValue(treeNode.dash, false), - dashLength: sgworld.Core.defaultValue(treeNode.dashLength, 20), - gapColor: sgworld.Core.defaultValue( - treeNode.gapColor, - "rgba(0,0,0,0)" - ), - near: sgworld.Core.defaultValue(treeNode.near, 0), - far: sgworld.Core.defaultValue(treeNode.far, Infinity), - }; - urls.upperLevelLimit = de.level_max; - urls.lowerLevelLimit = de.level_min; - - layer = - sgworld.Creator.createPrimitivePolylineVectorGeoJsonFeatureLayerProvider( - treeNode.name, - urls, - de, - "0", - treeNode.checked, - function () { } - ); - } else if (treeNode.class === "polygon") { - de = { - id: treeNode.id, - layertype: "polygonlayer", - level_min: sgworld.Core.defaultValue(treeNode.minimumLevel, 10), - level_max: sgworld.Core.defaultValue(treeNode.maximumLevel, 22), - material: sgworld.Core.defaultValue(treeNode.color, "#ff0000"), - heightReference: "1", - height: sgworld.Core.defaultValue(treeNode.height, 0), - extrudedHeight: sgworld.Core.defaultValue( - treeNode.extrudedHeight, - 0 - ), - extrudedHeightReference: "1", - clampToGround: sgworld.Core.defaultValue( - treeNode.clampToGround, - false - ), - classificationType: treeNode.classificationType, - near: sgworld.Core.defaultValue(treeNode.near, 0), - far: sgworld.Core.defaultValue(treeNode.far, Infinity), - }; - urls.upperLevelLimit = de.level_max; - urls.lowerLevelLimit = de.level_min; - layer = - sgworld.Creator.createGeoJsonFeatureLayerProviderOptimization( - treeNode.name, - urls, - de, - "0", - treeNode.checked, - function () { } - ); - } else if (treeNode.class === "model") { - de = { - id: treeNode.id, - level_min: sgworld.Core.defaultValue(treeNode.minimumLevel, 10), - level_max: sgworld.Core.defaultValue(treeNode.maximumLevel, 22), - collect: 0, - uri: sgworld.Core.defaultValue(treeNode.model, ""), - file: "", - color: sgworld.Core.defaultValue(treeNode.color, "#ffffff"), - scale: sgworld.Core.defaultValue(treeNode.scale, 1), - heightReference: 0, - height: sgworld.Core.defaultValue(treeNode.height, 0), - near: "0", - far: "99999999999", - }; - //妯″瀷鐐� - urls.upperLevelLimit = de.level_max; - urls.lowerLevelLimit = de.level_min; - layer = sgworld.Creator.createModelGeoJsonFeatureLayerProvider( - treeNode.name, - urls, - de, - "0", - treeNode.checked, - function () { } - ); - } - layer && (treeNode.id = layer.treeobj.id); - break; - } - case "terrain": - layer = sgworld.Creator.createTerrain( - treeNode.name, - { - id: treeNode.id, - requestVertexNormals: true, - url: treeNode.urls, - }, - "0", - true, - "" - ); - break; - case "sgsterrain": - layer = sgworld.Creator.sfsterrainprovider( - treeNode.name, - { - id: treeNode.id, - layerName: treeNode.layer, - requestVertexNormals: true, - url: treeNode.urls || "", - token: treeNode.token, - cacheUrl: treeNode.cacheUrl, - cacheLevel: treeNode.cacheLevel, - }, - "0", - true, - "" - ); - break; - case "sgsterrain7.1": - layer = sgworld.Creator.sfsterrainprovider71( - treeNode.name, - { - id: treeNode.id, - layerName: treeNode.layer, - requestVertexNormals: true, - url: treeNode.urls, - token: treeNode.token, - cacheUrl: treeNode.cacheUrl, - cacheLevel: treeNode.cacheLevel, - }, - "0", - true, - "" - ); - break; - case "arcgisterrain": - layer = sgworld.Creator.createArcGISTerrain( - treeNode.name, - { - id: treeNode.id, - requestVertexNormals: true, - url: treeNode.urls, - }, - "0", - true, - "" - ); - break; - case "CesiumGlobeTerrain": - layer = sgworld.Creator.createCesiumTerrain( - treeNode.name, - { - id: treeNode.id, - requestVertexNormals: true, - }, - "0", - true, - "" - ); - break; - case "b3dm": - layer = sgworld.Creator.create3DTilesets( - treeNode.name, - treeNode.urls, - { - id: treeNode.id, - Level: treeNode.Level, - maximumScreenSpaceError: - treeNode.maximumScreenSpaceError && - parseInt(treeNode.maximumScreenSpaceError), - maximumMemoryUsage: - treeNode.maximumMemoryUsage && - parseInt(treeNode.maximumMemoryUsage), - geometricError: - treeNode.geometricError && parseInt(treeNode.geometricError), - }, - { - groundCenter: treeNode.Center, - groundheight: treeNode.modelHeight, - heading: treeNode.heading, - pitch: treeNode.pitch, - roll: treeNode.roll, - effects: treeNode.effects || false, - effectsMaxHeight: treeNode.effectsMaxHeight || 150, - colors: treeNode.alpha - ? "rgba(255,255,255," + treeNode.alpha + ")" - : treeNode.color || undefined, - }, - "0", - true - ); - return layer; - break; - case "s3m": - layer = sgworld.Creator.createS3MLayer( - treeNode.urls, - sgworld._Viewer.scene, - function () { } - ); - break; - case "gltf": - var position = [treeNode.lon, treeNode.lat, treeNode.height]; - layer = sgworld.Creator.createModel( - position, - treeNode.urls, - { - id: treeNode.id, - scale: treeNode.scale || 1, - heading: treeNode.heading, - pitch: treeNode.pitch, - roll: treeNode.roll, - }, - "0", - treeNode.name, - "" - ); - break; - case "SimpleGraphic": - treeNode.type = treeNode.class; - layer = sgworld.Creator.SimpleGraphic.addFeature(treeNode); - break; - case "videoPolygon": - layer = sgworld.Creator.addVideoPolygon(treeNode.positions, { - url: treeNode.url, - angle: treeNode.angle, - }); - break; - case "MilitaryPlotting": - if (!treeNode.feature.id) { - treeNode.feature.id = treeNode.id; - } - if (!treeNode.feature.name) { - treeNode.feature.name = treeNode.name; - } - layer = sgworld.Creator.MilitaryPlotting.addFeature(treeNode.feature); - break; - case "ParticleEffect": - layer = sgworld.Analysis.createParticleEffect( - treeNode.name, - treeNode.position, - { - translation: Cesium.Cartesian3.fromElements(0, 0, 0), //骞崇Щ - } - ); - layer.name = treeNode.name; - break; - case "FlowField": - layer = sgworld.Creator.createTrailLine( - treeNode.positions, - treeNode.style - ); - layer.boundingSphere = Cesium.BoundingSphere.fromPoints( - treeNode.positions - ); - - break; - case "MobileWall": - layer = sgworld.Creator.createTrailLineWall( - treeNode.LineInterpolation.positions, - treeNode.style - ); - layer.boundingSphere = Cesium.BoundingSphere.fromPoints( - treeNode.LineInterpolation.positions - ); - break; - case "link": - layer = sgworld.Creator.createLinkPro( - sgworld.Core.toDegrees(treeNode.posisitons[0]), - sgworld.Core.toDegrees(treeNode.posisitons[1]), - { - clampToGround: true, - } - ); - break; - case "DiffusionSource": - layer = sgworld.Analysis.createMultiCircleScan( - treeNode.position, - treeNode.maxRadius, - treeNode.maxRadius.color, - 3000, - true - ); - break; - case "RiskDiffusion": - case "CircularDiffusion": - layer = sgworld.Analysis.createCircleScan( - treeNode.position, - treeNode.maxRadius, - treeNode.color, - 3000, - true - ); - break; - case "FanDiffusion": - layer = sgworld.Analysis.createSectorScan( - treeNode.position, - treeNode.distance, - "#ff0000", - 60, - treeNode.angle, - true, - 4000, - true - ); - break; - case "RadarMask": - layer = sgworld.Creator.createRectangularSensor( - treeNode.position, - treeNode.cylinder - ); - break; - case "DynamicSatellite": - let dtwxzsData = sgworld.Creator.createConeRadar(treeNode.position, { - color: "#7b9ef7", - radius: 200000, - }); - let weixin = sgworld.Creator.createModel( - treeNode.position, - window.SmartEarthRootUrl + "Workers/Model/weixin.gltf", - { scale: 15 }, - "0", - "鍗槦" - ); - layer = { dtwxzsData, weixin }; - layer.sourceType = "DynamicSatellite"; - break; - case "excavate": - var position = [treeNode.lon, treeNode.lat, treeNode.height]; - layer = sgworld.Creator.createModel( - position, - treeNode.urls, - { - id: treeNode.id, - scale: treeNode.scale || 1, - }, - pID, - treeNode.name, - "" - ); - treeNode.id = layer.treeobj.id; - break; - } - return layer -} - -export function clearLayerByTypeId(type) { - if (_GLOBAL.layers[type]) { - _GLOBAL.layers[type].forEach(item => { - item && item.deleteObject() - }); - _GLOBAL.layers[type] = []; - } -} - -export function clearLayerByTypeIdArr(arr) { - if (arr.length) { - arr.forEach(item => { - clearLayerByTypeId(item); - }) - } -} - - -var pointArr = []; -//openlayer 鍒涘缓鐐逛綅 -export function createPointMarker(position, obj) { - let startFeature = new ol.Feature({ - geometry: new ol.geom.Point(position), - }); - startFeature.setProperties({ - desc: obj, - }); - - if(pointArr && pointArr.length > 0){ - pointArr.forEach(item=>{ - window.map.removeLayer(item); - }) - pointArr = [] - } - let MarkerLayer = new ol.layer.Vector({ - id: 'LocationPoint', - name: '鏍囪鐐�', - source: new ol.source.Vector({ - features: [startFeature], - }), - style: new ol.style.Style({ - image: new ol.style.Icon({ - src: require('@/assets/img/collection/scdw.png'), - anchorOrigin: "top-left", - anchorXUnits: "fraction", - anchorYUnits: "fraction", - offsetOrigin: "bottom-right", - scale: 0.6, - opacity: 1, - }) - }), - zIndex: 1099, - }) - pointArr.push(MarkerLayer) - return MarkerLayer; -} - -//openlayer 鍦板浘鐐瑰嚮浜嬩欢 -export function setClick(state) { - let container = document.getElementById('ponitPanel'); - let close = document.getElementById('ponitPanel-close'); - let content = document.getElementById('ponitPanel-content'); - - let overlay = new ol.Overlay({ - element: container, - autoPan: { - animation: { - duration: 250, - }, - }, - }); - window.map.addOverlay(overlay); - - // let _clickCallback = callback; - function handleClick(e) { - window.map.forEachFeatureAtPixel(e.pixel, function (feature) { - // console.log(feature, '111111') - if (feature && feature.values_.desc) { - ponitPanel.style.display = 'block' - let obj = feature.values_.desc - // content.innerHTML = ` - // <div class="ponitPanel-item"> - // <span>鍚嶇О锛�</span> - // <span>${obj.name}</span> - // </div> - // <div class="ponitPanel-item"> - // <span>鍦板潃锛�</span> - // <span>${obj.address}</span> - // </div>` - - setTimeout(() => { - overlay.setPosition(e.coordinate); - }, 0) - - // close.addEventListener("click", function () { - // overlay.setPosition(undefined); - // }); - - - // store.setPoplayerShowAction(true); - // store.setPoplayerListAction(objdata); - // if (window.instance) { - // window.instance.$destroy(); - // } - // window.instance = new PoiLayerConstructor({ - // data: { - // list: objdata - // } - // }); - // window.instance.$mount(); - } - }); - } - if (state) { - clickEvent = window.map.on('click', handleClick); - } else { - ol.Observable.unByKey(clickEvent) - clickEvent = null - } -} - - -export function flyToPoint(posisitons) { - // let zoom = window.map.getView().getZoom(); - // if (zoom >= 16) { - // zoom = 12 - // } - // let duration = 2000; - window.map.getView().animate({ - center: posisitons, - zoom: 12, - duration: 1500 - }) - // window.map.getView().animate( - // //鍔ㄧ敾寮�濮嬫椂 - // { - // zoom: zoom > 16 ? zoom - 0.01 : zoom + 0.01, - // duration: duration / 2, - // }, - // //鍔ㄧ敾缁撴潫鏃� - // { - // zoom: zoom >= 16 ? 16 : zoom + 4, - // duration: duration / 2, - // } - // ); -} \ No newline at end of file diff --git a/src/utils/map2.js b/src/utils/map2.js index 2fc2edd..9d08ec4 100644 --- a/src/utils/map2.js +++ b/src/utils/map2.js @@ -2203,6 +2203,7 @@ //openlayer 鍒涘缓鐐逛綅 +window.pointArr = []; export function createPointMarker(position, obj) { let startFeature = new ol.Feature({ geometry: new ol.geom.Point(position), @@ -2210,6 +2211,12 @@ startFeature.setProperties({ desc: obj, }); + if (window.pointArr && window.pointArr.length > 0) { + window.pointArr.forEach(item => { + window.map.removeLayer(item) + }) + window.pointArr = [] + } let MarkerLayer = new ol.layer.Vector({ id: 'LocationPoint', name: '鏍囪鐐�', @@ -2229,22 +2236,12 @@ }), zIndex: 1099, }) + window.pointArr.push(MarkerLayer) return MarkerLayer; } //openlayer 鍦板浘鐐瑰嚮浜嬩欢 export function setClick(state) { - console.log('setClick'); - let ponitPanel = document.getElementById('ponitPanel'); - let overlay = new ol.Overlay({ - element: ponitPanel, - autoPan: { - animation: { - duration: 250, - }, - }, - }); - window.map.addOverlay(overlay); function handleClick(e) { console.log(e.coordinate); // 鍦熷湴绠$悊 @@ -2365,7 +2362,6 @@ return; } - window.map.forEachFeatureAtPixel(e.pixel, function (feature) { if (feature && feature.values_.desc) { let obj = feature.values_.desc @@ -2376,15 +2372,18 @@ lon: obj.lng, lat: obj.lat } - console.log('objdata'); + overlay.setPosition(e.coordinate); store.setPoplayerShowAction(true); store.setPoplayerListAction(objdata); - window.instance = new PoiLayerConstructor({ - data: { - list1: objdata - } - }); - window.instance.$mount(); + // if (window.instance) { + // window.instance.$destroy(); + // } + // window.instance = new PoiLayerConstructor({ + // data: { + // list: objdata + // } + // }); + // window.instance.$mount(); } }); } diff --git a/src/utils/store2.js b/src/utils/store2.js index b5fcfde..b563186 100644 --- a/src/utils/store2.js +++ b/src/utils/store2.js @@ -150,6 +150,21 @@ setTdlgInfo(val) { this.tdglInfo.info = val; }, + //鐐逛綅 + dwInfo: { + flag: false, + show: false, + info: {} + }, + setdwFlag(val) { + this.dwInfo.flag = val; + }, + setdwShow(val) { + this.dwInfo.show = val; + }, + setdwInfo(val) { + this.dwInfo.info = val; + }, /** * 鍘嗗彶褰卞儚 */ -- Gitblit v1.9.3