¶Ô±ÈÐÂÎļþ |
| | |
| | | // 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: {//è®¾ç½®ç¸æºçHeadingï¼Pitchï¼Rollï¼åç
§ä¸å¾ |
| | | 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: {//è®¾ç½®ç¸æºçHeadingï¼Pitchï¼Rollï¼åç
§ä¸å¾ |
| | | 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: {//è®¾ç½®ç¸æºçHeadingï¼Pitchï¼Rollï¼åç
§ä¸å¾ |
| | | 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: {//è®¾ç½®ç¸æºçHeadingï¼Pitchï¼Rollï¼åç
§ä¸å¾ |
| | | 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: {//è®¾ç½®ç¸æºçHeadingï¼Pitchï¼Rollï¼åç
§ä¸å¾ |
| | | // 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: {//è®¾ç½®ç¸æºçHeadingï¼Pitchï¼Rollï¼åç
§ä¸å¾ |
| | | 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 = { |
| | | // ç¹ä½ç±»åï¼ä¸è±æé
置表poiKeys.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, // æ¯å¦ä½¿ç¨æå¡çå
ç½®çåçæ¹æ¡ï¼åç§»çº æ£éè¦ä½¿ç¨å¦ä¸èªå®ä¹çæ¹æ¡ |
| | | 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, |
| | | // } |
| | | // ); |
| | | } |