From d863798273f28d2789ba96bfc39378bd61224a83 Mon Sep 17 00:00:00 2001
From: BianLzhaoMin <11485688+bianliangzhaomin123@user.noreply.gitee.com>
Date: Tue, 8 Jul 2025 18:11:22 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9C=B0=E5=9B=BE=E6=A8=A1?=
=?UTF-8?q?=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../js/synthesisQuery/config/config.json | 1378 +++++++++++++++++
.../js/synthesisQuery/digitalSignage-new.js | 1377 ++++++++++++++++
.../pages/synthesisQuery/digitalSignage.html | 21 +-
3 files changed, 2774 insertions(+), 2 deletions(-)
create mode 100644 src/main/resources/static/js/synthesisQuery/config/config.json
create mode 100644 src/main/resources/static/js/synthesisQuery/digitalSignage-new.js
diff --git a/src/main/resources/static/js/synthesisQuery/config/config.json b/src/main/resources/static/js/synthesisQuery/config/config.json
new file mode 100644
index 0000000..f9bf6d4
--- /dev/null
+++ b/src/main/resources/static/js/synthesisQuery/config/config.json
@@ -0,0 +1,1378 @@
+{
+ "scene": {
+ "center": {
+ "lat": 31.686288,
+ "lng": 117.229619,
+ "alt": 11333.9,
+ "heading": 359.2,
+ "pitch": -39.5
+ },
+ "scene3DOnly": false,
+ "shadows": false,
+ "removeDblClick": true,
+ "sceneMode": 3,
+ "showSun": true,
+ "showMoon": true,
+ "showSkyBox": true,
+ "showSkyAtmosphere": true,
+ "fog": true,
+ "fxaa": true,
+ "requestRenderMode": false,
+ "globe": {
+ "depthTestAgainstTerrain": false,
+ "baseColor": "#546a53",
+ "showGroundAtmosphere": true,
+ "enableLighting": false
+ },
+ "cameraController": {
+ "zoomFactor": 3.0,
+ "minimumZoomDistance": 1,
+ "maximumZoomDistance": 50000000,
+ "enableRotate": true,
+ "enableTranslate": true,
+ "enableTilt": true,
+ "enableZoom": true,
+ "enableCollisionDetection": true,
+ "minimumCollisionTerrainHeight": 15000
+ }
+ },
+ "control": {
+ "homeButton": true,
+ "baseLayerPicker": true,
+ "sceneModePicker": true,
+ "vrButton": false,
+ "fullscreenButton": true,
+ "navigationHelpButton": true,
+ "animation": false,
+ "timeline": false,
+ "infoBox": false,
+ "geocoder": false,
+ "selectionIndicator": false,
+
+ "contextmenu": { "hasDefault": true },
+ "mouseDownView": true,
+ "zoom": { "insertIndex": 1 },
+ "compass": { "bottom": "toolbar", "right": "5px" },
+ "distanceLegend": { "right": "10px", "bottom": "2px" },
+ "locationBar": {
+ "fps": true,
+ "crs": "CGCS2000_GK_Zone_3",
+ "crsDecimal": 0,
+ "template": "
经度:{lng}
纬度:{lat}
横{crsx} 纵{crsy}
海拔:{alt}米
层级:{level}
方向:{heading}°
俯仰角:{pitch}°
视高:{cameraHeight}米
"
+ }
+ },
+ "templateValues": {
+ "dataServer": "//data.mars3d.cn",
+ "gltfServerUrl": "//data.mars3d.cn/gltf"
+ },
+ "terrain": {
+ "url": "//data.mars3d.cn/terrain",
+ "show": true
+ },
+ "basemaps": [
+ { "id": 10, "name": "地图底图", "type": "group" },
+ {
+ "id": 2021,
+ "pid": 10,
+ "name": "天地图影像",
+ "icon": "img/basemaps/tdt_img.png",
+ "type": "group",
+ "layers": [
+ { "name": "底图", "type": "tdt", "layer": "img_d" },
+ { "name": "注记", "type": "tdt", "layer": "img_z" }
+ ],
+ "show": true
+ },
+ {
+ "pid": 10,
+ "name": "天地图电子",
+ "icon": "img/basemaps/tdt_vec.png",
+ "type": "group",
+ "layers": [
+ { "name": "底图", "type": "tdt", "layer": "vec_d" },
+ { "name": "注记", "type": "tdt", "layer": "vec_z" }
+ ]
+ },
+ {
+ "pid": 10,
+ "name": "高德影像",
+ "type": "group",
+ "icon": "img/basemaps/gaode_img.png",
+ "layers": [
+ { "name": "底图", "type": "gaode", "layer": "img_d" },
+ { "name": "注记", "type": "gaode", "layer": "img_z" }
+ ]
+ },
+ {
+ "pid": 10,
+ "name": "高德电子",
+ "type": "gaode",
+ "icon": "img/basemaps/gaode_vec.png",
+ "layer": "vec"
+ },
+ {
+ "pid": 10,
+ "name": "百度影像",
+ "type": "group",
+ "icon": "img/basemaps/bd-img.png",
+ "layers": [
+ { "name": "底图", "type": "baidu", "layer": "img_d" },
+ { "name": "注记", "type": "baidu", "layer": "img_z" }
+ ]
+ },
+ {
+ "pid": 10,
+ "name": "百度电子",
+ "icon": "img/basemaps/bd-vec.png",
+ "type": "baidu",
+ "layer": "vec"
+ },
+ {
+ "pid": 10,
+ "name": "腾讯影像",
+ "icon": "img/basemaps/tencent_img.png",
+ "type": "group",
+ "layers": [
+ { "name": "底图", "type": "tencent", "layer": "img_d" },
+ { "name": "注记", "type": "tencent", "layer": "img_z" }
+ ]
+ },
+ {
+ "pid": 10,
+ "name": "腾讯电子",
+ "icon": "img/basemaps/tencent_vec.png",
+ "type": "tencent",
+ "layer": "vec"
+ },
+ {
+ "pid": 10,
+ "name": "ArcGIS影像",
+ "icon": "img/basemaps/esriWorldImagery.png",
+ "type": "xyz",
+ "url": "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",
+ "enablePickFeatures": false
+ },
+ {
+ "pid": 10,
+ "name": "微软影像",
+ "icon": "img/basemaps/bingAerial.png",
+ "type": "bing",
+ "layer": "Aerial"
+ },
+ {
+ "id": 2017,
+ "pid": 10,
+ "name": "蓝色底图",
+ "icon": "/img/basemaps/bd-c-midnight.png",
+ "type": "gaode",
+ "layer": "vec",
+ "chinaCRS": "GCJ02",
+ "invertColor": true,
+ "filterColor": "#4e70a6",
+ "brightness": 0.6,
+ "contrast": 1.8,
+ "gamma": 0.3,
+ "hue": 1,
+ "saturation": 0
+ },
+ {
+ "pid": 10,
+ "name": "黑色底图",
+ "icon": "/img/basemaps/bd-c-dark.png",
+ "type": "gaode",
+ "layer": "vec",
+ "chinaCRS": "GCJ02",
+ "invertColor": true,
+ "filterColor": "#909090",
+ "brightness": 0.6,
+ "contrast": 1.8,
+ "gamma": 0.3,
+ "hue": 1,
+ "saturation": 0
+ },
+ {
+ "pid": 10,
+ "name": "离线影像地图 (供参考)",
+ "icon": "/img/basemaps/google_img.png",
+ "type": "xyz",
+ "url": "{dataServer}/tile/img/{z}/{x}/{y}.jpg",
+ "chinaCRS": "GCJ02",
+ "maximumLevel": 13
+ },
+ {
+ "pid": 10,
+ "name": "单张图片 (本地离线)",
+ "icon": "img/basemaps/offline.png",
+ "type": "image",
+ "url": "//data.mars3d.cn/file/img/world/world.jpg"
+ }
+ ],
+ "layers": [
+ { "id": 50, "name": "辅助图层", "type": "group" },
+ { "pid": 50, "type": "graticule", "name": "经纬网" },
+ {
+ "pid": 50,
+ "name": "行政区划界线",
+ "type": "tdt",
+ "url": "https://t{s}.tianditu.gov.cn/DataServer?T=ibo_w&x={x}&y={y}&l={z}",
+ "maximumLevel": 10,
+ "mapSplit": false
+ },
+ {
+ "pid": 50,
+ "name": "高德实时路况",
+ "type": "gaode",
+ "layer": "time",
+ "minimumTerrainLevel": 4,
+ "minimumLevel": 4,
+ "proxy": "//server.mars3d.cn/proxy/",
+ "mapSplit": false
+ },
+ {
+ "pid": 50,
+ "name": "百度实时路况",
+ "type": "baidu",
+ "layer": "time",
+ "mapSplit": false
+ },
+
+ { "id": 60, "name": "地形", "type": "group" },
+ {
+ "pid": 60,
+ "type": "terrain",
+ "name": "Cesium地形",
+ "terrain": { "type": "ion" },
+ "radio": true
+ },
+ {
+ "pid": 60,
+ "type": "terrain",
+ "name": "Mars3D地形",
+ "terrain": { "type": "xyz", "url": "{dataServer}/terrain" },
+ "radio": true
+ },
+ {
+ "pid": 60,
+ "type": "terrain",
+ "name": "ArcGIS地形",
+ "terrain": {
+ "type": "arcgis",
+ "url": "https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer"
+ },
+ "radio": true
+ },
+ {
+ "pid": 60,
+ "type": "terrain",
+ "name": "无地形",
+ "terrain": { "type": "none" },
+ "radio": true
+ },
+
+ { "id": 40, "name": "栅格数据", "type": "group" },
+ { "id": 4020, "pid": 40, "name": "OGC WMS服务", "type": "group" },
+ {
+ "pid": 4020,
+ "name": "教育设施点",
+ "type": "wms",
+ "url": "//server.mars3d.cn/geoserver/mars/wms",
+ "layers": "mars:hfjy",
+ "crs": "EPSG:4326",
+ "parameters": { "transparent": "true", "format": "image/png" },
+ "popup": "名称:{项目名称}
类型:{设施类型}
面积:{用地面积}亩
位置:{具体位置}",
+ "mapSplit": false,
+ "show": false,
+ "flyTo": true
+ },
+ {
+ "pid": 4020,
+ "name": "道路线",
+ "type": "wms",
+ "url": "//server.mars3d.cn/geoserver/mars/wms",
+ "layers": "mars:hfdl",
+ "crs": "EPSG:4326",
+ "parameters": { "transparent": "true", "format": "image/png" },
+ "center": {
+ "lat": 31.743214,
+ "lng": 117.277097,
+ "alt": 47197.7,
+ "heading": 0.3,
+ "pitch": -78.8
+ },
+ "popup": "all",
+ "mapSplit": false,
+ "show": false,
+ "flyTo": true
+ },
+ {
+ "pid": 4020,
+ "name": "建筑物面",
+ "type": "wms",
+ "url": "//server.mars3d.cn/geoserver/mars/wms",
+ "layers": "mars:hfjzw",
+ "crs": "EPSG:4326",
+ "parameters": { "transparent": "true", "format": "image/png" },
+ "highlight": {
+ "showTime": 5000,
+ "fill": true,
+ "color": "#2deaf7",
+ "opacity": 0.6,
+ "outline": true,
+ "outlineWidth": 3,
+ "outlineColor": "#e000d9",
+ "outlineOpacity": 1.0,
+ "clampToGround": true
+ },
+ "center": {
+ "lat": 31.79513,
+ "lng": 117.236172,
+ "alt": 3784.6,
+ "heading": 0.7,
+ "pitch": -42.2
+ },
+ "popup": "all",
+ "show": false,
+ "flyTo": true
+ },
+ {
+ "pid": 4020,
+ "name": "规划面",
+ "type": "wms",
+ "url": "//server.mars3d.cn/geoserver/mars/wms",
+ "layers": "mars:hfgh",
+ "crs": "EPSG:4326",
+ "parameters": { "transparent": "true", "format": "image/png" },
+ "center": {
+ "lat": 31.743214,
+ "lng": 117.277097,
+ "alt": 47197.7,
+ "heading": 0.3,
+ "pitch": -78.8
+ },
+ "popup": "all",
+ "show": false,
+ "flyTo": true
+ },
+ { "id": 4030, "pid": 40, "name": "ArcGIS 瓦片", "type": "group" },
+ {
+ "pid": 4030,
+ "name": "合肥规划图",
+ "type": "arcgis_cache",
+ "url": "{dataServer}/arcgis_cache/hfgh/_alllayers/{z}/{y}/{x}.png",
+ "minimumLevel": 1,
+ "maximumLevel": 17,
+ "minimumTerrainLevel": 1,
+ "maximumTerrainLevel": 17,
+ "rectangle": {
+ "xmin": 116.846,
+ "xmax": 117.642,
+ "ymin": 31.533,
+ "ymax": 32.185
+ }
+ },
+ { "id": 4010, "pid": 40, "name": "ArcGIS Dynamic", "type": "group" },
+ {
+ "id": 401085,
+ "pid": 4010,
+ "type": "arcgis",
+ "name": "主要道路",
+ "url": "//server.mars3d.cn/arcgis/rest/services/mars/hefei/MapServer",
+ "layers": "24",
+ "highlight": {
+ "type": "polyline",
+ "color": "#2deaf7",
+ "width": 4,
+ "clampToGround": true
+ },
+ "center": {
+ "lat": 31.814176,
+ "lng": 117.225362,
+ "alt": 5105.3,
+ "heading": 359.2,
+ "pitch": -83.1
+ },
+ "popup": "all",
+ "onWidget": "layer-picture-heatmap",
+ "mapSplit": false
+ },
+ {
+ "id": 401086,
+ "pid": 4010,
+ "type": "arcgis",
+ "name": "建筑物",
+ "url": "//server.mars3d.cn/arcgis/rest/services/mars/hefei/MapServer",
+ "layers": "35,36,37,39",
+ "highlight": {
+ "fill": true,
+ "color": "#2deaf7",
+ "opacity": 0.6,
+ "outline": true,
+ "outlineWidth": 3,
+ "outlineColor": "#e000d9",
+ "outlineOpacity": 1.0,
+ "clampToGround": true
+ },
+ "center": {
+ "lat": 31.816951,
+ "lng": 117.22898,
+ "alt": 2916.7,
+ "heading": 0.3,
+ "pitch": -78.8
+ },
+ "popup": "名称:{NAME}
层数:{floor}",
+ "onWidget": "layer-picture-heatmap"
+ },
+ {
+ "id": 401087,
+ "pid": 4010,
+ "type": "arcgis",
+ "name": "规划",
+ "url": "//server.mars3d.cn/arcgis/rest/services/mars/guihua/MapServer",
+ "highlight": {
+ "showTime": 5000,
+ "fill": true,
+ "color": "#2deaf7",
+ "opacity": 0.6,
+ "outline": true,
+ "outlineWidth": 3,
+ "outlineColor": "#e000d9",
+ "outlineOpacity": 1.0,
+ "clampToGround": true
+ },
+ "center": {
+ "lat": 31.816951,
+ "lng": 117.22898,
+ "alt": 2916.7,
+ "heading": 0.3,
+ "pitch": -78.8
+ },
+ "popup": [
+ { "field": "用地名称", "name": "名称" },
+ { "field": "用地编号", "name": "编号" },
+ { "field": "规划用地", "name": "规划" },
+ {
+ "type": "html",
+ "html": "数据仅供参考
"
+ }
+ ],
+ "popupNoTitle": true,
+ "onWidget": "layer-picture-guihua"
+ },
+ { "id": 30, "name": "矢量数据", "type": "group" },
+ { "id": 3030, "pid": 30, "name": "GeoJSON数据", "type": "group" },
+ {
+ "id": 303011,
+ "pid": 3030,
+ "type": "geojson",
+ "name": "平台标绘",
+ "url": "{dataServer}/file/geojson/mars3d-draw.json",
+ "popup": "{type}{name}",
+ "show": false,
+ "flyTo": true
+ },
+ {
+ "pid": 3030,
+ "type": "geojson",
+ "name": "用地规划",
+ "url": "{dataServer}/file/geojson/guihua.json",
+ "symbol": {
+ "styleOptions": {
+ "opacity": 0.6,
+ "color": "#0000FF",
+ "width": 3,
+ "clampToGround": true
+ },
+ "styleField": "类型",
+ "styleFieldOptions": {
+ "一类居住用地": { "color": "#FFDF7F" },
+ "二类居住用地": { "color": "#FFFF00" },
+ "社区服务用地": { "color": "#FF6A38" },
+ "幼托用地": { "color": "#FF6A38" },
+ "商住混合用地": { "color": "#FF850A" },
+ "行政办公用地": { "color": "#FF00FF" },
+ "文化设施用地": { "color": "#FF00FF" },
+ "小学用地": { "color": "#FF7FFF" },
+ "初中用地": { "color": "#FF7FFF" },
+ "体育场用地": { "color": "#00A57C" },
+ "医院用地": { "color": "#A5527C" },
+ "社会福利用地": { "color": "#FF7F9F" },
+ "商业用地": { "color": "#FF0000" },
+ "商务用地": { "color": "#7F0000" },
+ "营业网点用地": { "color": "#FF7F7F" },
+ "一类工业用地": { "color": "#A57C52" },
+ "社会停车场用地": { "color": "#C0C0C0" },
+ "通信用地": { "color": "#007CA5" },
+ "排水用地": { "color": "#00BFFF" },
+ "公园绿地": { "color": "#00FF00" },
+ "防护绿地": { "color": "#007F00" },
+ "河流水域": { "color": "#7FFFFF" },
+ "配建停车场": { "color": "#ffffff" },
+ "道路用地": { "color": "#ffffff" }
+ }
+ },
+ "popup": "{类型}",
+ "show": false,
+ "flyTo": true
+ },
+ {
+ "pid": 3030,
+ "type": "geojson",
+ "name": "建筑物面",
+ "url": "{dataServer}/file/geojson/buildings-demo.json",
+ "symbol": {
+ "styleOptions": {
+ "color": "#0d3685",
+ "outlineColor": "#0d3685",
+ "opacity": 0.8
+ }
+ },
+ "buildings": { "cloumn": "floors", "height": "flo_height" },
+ "popup": "all",
+ "flyTo": true,
+ "flyToOptions": { "minHeight": 2000 }
+ },
+ {
+ "pid": 3030,
+ "type": "geojson",
+ "name": "安徽各市",
+ "url": "{dataServer}/file/geojson/areas/340000_full.json",
+ "symbol": {
+ "type": "polygon",
+ "styleOptions": {
+ "materialType": "PolyGradient",
+ "materialOptions": {
+ "color": "rgb(15,176,255)",
+ "opacity": 0.7,
+ "alphaPower": 1.3
+ },
+ "label": {
+ "text": "{name}",
+ "opacity": 1,
+ "font_size": 25,
+ "color": "#ffffff",
+ "outline": true,
+ "outlineColor": "#000000",
+ "outlineWidth": 3,
+ "scaleByDistance": true,
+ "scaleByDistance_far": 2743804,
+ "scaleByDistance_farValue": 0.3,
+ "scaleByDistance_near": 10000,
+ "scaleByDistance_nearValue": 1,
+ "distanceDisplayCondition": true,
+ "distanceDisplayCondition_far": 2743804,
+ "distanceDisplayCondition_near": 0
+ }
+ }
+ },
+ "popup": "{name}",
+ "show": false,
+ "flyTo": true
+ },
+ {
+ "pid": 3030,
+ "type": "geojson",
+ "name": "中国省界",
+ "url": "{dataServer}/file/geojson/areas/100000_full.json",
+ "symbol": {
+ "type": "polylineP",
+ "styleOptions": {
+ "color": "#ffffff",
+ "width": 2,
+ "opacity": 0.8,
+ "label": {
+ "text": "{name}",
+ "position": "center",
+ "font_size": 30,
+ "color": "#ffffff",
+ "outline": true,
+ "outlineColor": "#000000",
+ "scaleByDistance": true,
+ "scaleByDistance_far": 60000000,
+ "scaleByDistance_farValue": 0.2,
+ "scaleByDistance_near": 1000000,
+ "scaleByDistance_nearValue": 1,
+ "distanceDisplayCondition": true,
+ "distanceDisplayCondition_far": 12000000,
+ "distanceDisplayCondition_near": 0
+ }
+ }
+ },
+ "show": false,
+ "flyTo": true
+ },
+ {
+ "pid": 3030,
+ "type": "geojson",
+ "name": "西藏垭口",
+ "url": "{dataServer}/file/geojson/xizangyakou.json",
+ "symbol": {
+ "styleOptions": {
+ "image": "//data.mars3d.cn/img/marker/mark-red.png",
+ "scaleByDistance": true,
+ "scaleByDistance_far": 5000000,
+ "scaleByDistance_farValue": 0.5,
+ "scaleByDistance_near": 1000,
+ "scaleByDistance_nearValue": 1,
+ "verticalOrigin": 1,
+ "horizontalOrigin": 0,
+ "clampToGround": true,
+ "label": {
+ "text": "{NAME}",
+ "font_size": 25,
+ "color": "#ffff00",
+ "font_family": "微软雅黑",
+ "outline": true,
+ "outlineColor": "#000000",
+ "pixelOffsetY": -40,
+ "scaleByDistance": true,
+ "scaleByDistance_far": 1000000,
+ "scaleByDistance_farValue": 0.5,
+ "scaleByDistance_near": 1000,
+ "scaleByDistance_nearValue": 1,
+ "distanceDisplayCondition": true,
+ "distanceDisplayCondition_far": 1000000,
+ "distanceDisplayCondition_near": 0,
+ "visibleDepth": true
+ }
+ }
+ },
+ "popup": [
+ { "field": "NAME", "name": "名称" },
+ {
+ "type": "details",
+ "callback": "showPopupDetails",
+ "field": "图片",
+ "className": "mars3d-popup-btn-custom"
+ }
+ ],
+ "show": false,
+ "flyTo": true
+ },
+ {
+ "pid": 3030,
+ "type": "geojson",
+ "name": "体育设施点",
+ "url": "{dataServer}/file/geojson/hfty-point.json",
+ "symbol": {
+ "styleOptions": {
+ "image": "//data.mars3d.cn/img/marker/mark-red.png",
+ "scale": 1,
+ "scaleByDistance": true,
+ "scaleByDistance_far": 20000,
+ "scaleByDistance_farValue": 0.5,
+ "scaleByDistance_near": 1000,
+ "scaleByDistance_nearValue": 1,
+ "verticalOrigin": 1,
+ "horizontalOrigin": 0,
+ "clampToGround": true,
+ "label": {
+ "text": "{项目名称}",
+ "font_size": 25,
+ "color": "#ffffff",
+ "outline": true,
+ "outlineColor": "#000000",
+ "pixelOffsetY": -25,
+ "scaleByDistance": true,
+ "scaleByDistance_far": 80000,
+ "scaleByDistance_farValue": 0.5,
+ "scaleByDistance_near": 1000,
+ "scaleByDistance_nearValue": 1,
+ "distanceDisplayCondition": true,
+ "distanceDisplayCondition_far": 80000,
+ "distanceDisplayCondition_near": 0
+ }
+ }
+ },
+ "popup": [
+ { "field": "项目名称", "name": "项目名称" },
+ { "field": "建设性质", "name": "建设性质" },
+ { "field": "设施级别", "name": "设施级别" },
+ { "field": "所属区县", "name": "所属区县" },
+ { "field": "建筑内容及", "name": "建筑内容" },
+ { "field": "新增用地(", "name": "新增用地" },
+ { "field": "开工", "name": "开工" },
+ { "field": "总投资(万", "name": "总投资" },
+ { "field": "资金来源", "name": "资金来源" },
+ { "field": "初步选址", "name": "初步选址" },
+ { "field": "设施类型", "name": "设施类型" },
+ { "field": "设施等级", "name": "设施等级" },
+ { "field": "所在区县", "name": "所在区县" },
+ { "field": "具体位置", "name": "具体位置" },
+ { "field": "建设内容(", "name": "建设内容" },
+ {
+ "field": "用地面积(",
+ "name": "用地面积",
+ "format": "mars3d.MeasureUtil.formatArea"
+ },
+ { "field": "设施规模(", "name": "设施规模" },
+ { "field": "举办者类型", "name": "举办者类型" },
+ { "field": "开工时间", "name": "开工时间" },
+ { "field": "总投资额(", "name": "总投资额", "unit": "亿元" },
+ { "field": "项目推进主", "name": "项目推进主体" },
+ { "field": "项目进度", "name": "项目进度" },
+ { "field": "项目来源", "name": "项目来源" },
+ { "field": "备注", "name": "备注" }
+ ],
+ "show": false,
+ "flyTo": true
+ },
+ { "id": 3070, "pid": 30, "name": "GeoServer WFS", "type": "group" },
+ {
+ "pid": 3070,
+ "type": "wfs",
+ "name": "建筑物面",
+ "url": "//server.mars3d.cn/geoserver/mars/ows",
+ "layer": "mars:hfjzw",
+ "parameters": { "maxFeatures": 500 },
+ "minimumLevel": 15,
+ "symbol": {
+ "type": "polygonP",
+ "styleOptions": {
+ "color": "#00469c",
+ "outline": false,
+ "opacity": 1
+ }
+ },
+ "buildings": { "cloumn": "floor" },
+ "center": {
+ "lat": 31.818396,
+ "lng": 117.229083,
+ "alt": 2554.4,
+ "heading": 359.2,
+ "pitch": -83.1
+ },
+ "popup": "名称:{NAME}
层数:{floor}"
+ },
+ {
+ "pid": 3070,
+ "name": "教育设施点",
+ "type": "wfs",
+ "url": "//server.mars3d.cn/geoserver/mars/ows",
+ "layer": "mars:hfjy",
+ "parameters": { "maxFeatures": 500 },
+ "minimumLevel": 13,
+ "symbol": {
+ "type": "billboardP",
+ "styleOptions": {
+ "image": "//data.mars3d.cn/img/marker/mark-red.png",
+ "scaleByDistance": true,
+ "scaleByDistance_far": 20000,
+ "scaleByDistance_farValue": 0.6,
+ "scaleByDistance_near": 1000,
+ "scaleByDistance_nearValue": 1,
+ "clampToGround": true,
+ "label": {
+ "text": "{项目名称}",
+ "font_size": 15,
+ "color": "#ffffff",
+ "outline": true,
+ "outlineColor": "#000000",
+ "pixelOffsetY": -30,
+ "distanceDisplayCondition": true,
+ "distanceDisplayCondition_far": 2000,
+ "distanceDisplayCondition_near": 0
+ }
+ }
+ },
+ "center": {
+ "lat": 31.812256,
+ "lng": 117.229873,
+ "alt": 4683.91,
+ "heading": 357.4,
+ "pitch": -65.4
+ },
+ "popup": "all"
+ },
+ { "id": 3010, "pid": 30, "name": "ArcGIS WFS", "type": "group" },
+ {
+ "pid": 3010,
+ "type": "arcgis_wfs",
+ "name": "兴趣点",
+ "url": "//server.mars3d.cn/arcgis/rest/services/mars/hefei/MapServer/1",
+ "where": " 1=1 ",
+ "minimumLevel": 15,
+ "center": {
+ "lat": 31.818396,
+ "lng": 117.229083,
+ "alt": 2554.4,
+ "heading": 359.2,
+ "pitch": -83.1
+ },
+ "symbol": {
+ "type": "billboardP",
+ "styleOptions": {
+ "image": "//data.mars3d.cn/img/marker/mark-blue.png",
+ "scaleByDistance": true,
+ "scaleByDistance_far": 20000,
+ "scaleByDistance_farValue": 0.6,
+ "scaleByDistance_near": 1000,
+ "scaleByDistance_nearValue": 1,
+ "clampToGround": true,
+ "label": {
+ "text": "{NAME}",
+ "font_size": 15,
+ "color": "#ffffff",
+ "outline": true,
+ "outlineColor": "#000000",
+ "pixelOffsetY": -30,
+ "distanceDisplayCondition": true,
+ "distanceDisplayCondition_far": 3000,
+ "distanceDisplayCondition_near": 0
+ }
+ },
+ "styleField": "address",
+ "styleFieldOptions": {
+ "AB03": {
+ "image": "//data.mars3d.cn/img/marker/mark-red.png"
+ },
+ "A980": {
+ "image": "//data.mars3d.cn/img/marker/mark-blue.png"
+ },
+ "A900": {
+ "image": "//data.mars3d.cn/img/marker/mark-green.png"
+ }
+ }
+ },
+ "popup": "名称:{NAME}
地址:{address}",
+ "show": false
+ },
+ {
+ "pid": 3010,
+ "type": "arcgis_wfs",
+ "name": "道路",
+ "url": "//server.mars3d.cn/arcgis/rest/services/mars/hefei/MapServer/28",
+ "minimumLevel": 14,
+ "symbol": {
+ "type": "polylineP",
+ "styleOptions": {
+ "color": "#3388ff",
+ "width": 3,
+ "clampToGround": true
+ },
+ "styleField": "NAME",
+ "styleFieldOptions": {
+ "祁门路": { "color": "#8744c0", "width": 3 },
+ "东流路": { "color": "#f7ba2a", "width": 3 },
+ "翡翠路": { "color": "#20a0ff", "width": 3 },
+ "岳西路": { "color": "#50bfff", "width": 3 }
+ }
+ },
+ "popup": "名称:{NAME}",
+ "center": {
+ "lat": 31.814176,
+ "lng": 117.225362,
+ "alt": 5105.3,
+ "heading": 359.2,
+ "pitch": -83.1
+ }
+ },
+ {
+ "pid": 3010,
+ "type": "arcgis_wfs",
+ "name": "建筑物面",
+ "url": "//server.mars3d.cn/arcgis/rest/services/mars/hefei/MapServer/37",
+ "minimumLevel": 15,
+ "symbol": {
+ "styleOptions": {
+ "color": "#0d3685",
+ "outlineColor": "#0d3685",
+ "opacity": 0.8
+ }
+ },
+ "buildings": { "cloumn": "floor" },
+ "debuggerTileInfo": false,
+ "center": {
+ "lat": 31.816951,
+ "lng": 117.22898,
+ "alt": 1916.7,
+ "heading": 0.3,
+ "pitch": -78.8
+ },
+ "popup": "名称:{NAME}
层数:{floor}"
+ },
+ { "id": 3060, "pid": 30, "name": "CZML数据", "type": "group" },
+ {
+ "id": 306010,
+ "pid": 3060,
+ "type": "czml",
+ "name": "汽车",
+ "url": "{dataServer}/file/czml/car.czml",
+ "center": {
+ "lat": 40.894745,
+ "lng": 121.920252,
+ "alt": 904,
+ "heading": 64,
+ "pitch": -67
+ },
+ "onWidget": "control-clock",
+ "radio": true,
+ "flyTo": true
+ },
+ {
+ "id": 306011,
+ "pid": 3060,
+ "type": "czml",
+ "name": "卫星轨道",
+ "url": "{dataServer}/file/czml/satellite-simple.czml",
+ "popup": "all",
+ "onWidget": "control-clock",
+ "radio": true,
+ "flyTo": true
+ },
+ { "id": 3050, "pid": 30, "name": "KML数据", "type": "group" },
+ {
+ "pid": 3050,
+ "type": "kml",
+ "name": "海上安全警告",
+ "url": "{dataServer}/file/kml/NAVWARN.kmz",
+ "popup": "all"
+ },
+ {
+ "pid": 3050,
+ "type": "kml",
+ "name": "国境线",
+ "url": "{dataServer}/file/kml/countryboundary.kml",
+ "symbol": { "styleOptions": { "color": "#FED976", "width": 2 } }
+ },
+ {
+ "pid": 3050,
+ "type": "kml",
+ "name": "省界线",
+ "url": "{dataServer}/file/kml/province.kml",
+ "symbol": { "styleOptions": { "color": "#00FF00", "width": 2 } }
+ },
+ { "id": 20, "name": "三维模型", "type": "group" },
+ { "id": 2010, "pid": 20, "name": "gltf模型", "type": "group" },
+ {
+ "pid": 2010,
+ "type": "graphic",
+ "name": "风力发电机",
+ "data": [
+ {
+ "type": "modelP",
+ "position": [117.219071, 31.828783, 39.87],
+ "style": {
+ "url": "//data.mars3d.cn/gltf/mars/fengche.gltf",
+ "scale": 50,
+ "heading": -93
+ }
+ }
+ ],
+ "popup": "示例信息,这是一个风力发电机",
+ "center": {
+ "lat": 31.821083,
+ "lng": 117.21832,
+ "alt": 832.64,
+ "heading": 2.3,
+ "pitch": -39.2
+ }
+ },
+ {
+ "pid": 2010,
+ "type": "graphic",
+ "name": "警车",
+ "data": [
+ {
+ "type": "modelP",
+ "position": [117.217458, 31.815349, 35.03],
+ "style": {
+ "url": "//data.mars3d.cn/gltf/mars/jingche/jingche.gltf",
+ "scale": 2,
+ "heading": -95,
+ "clampToGround": true
+ }
+ }
+ ],
+ "center": {
+ "lat": 31.815363,
+ "lng": 117.215958,
+ "alt": 107.35,
+ "heading": 90.7,
+ "pitch": -26.1
+ }
+ },
+ { "id": 2040, "pid": 20, "name": "城市白模", "type": "group" },
+ {
+ "id": 204011,
+ "pid": 2040,
+ "type": "3dtiles",
+ "name": "合肥市区",
+ "url": "{dataServer}/3dtiles/jzw-hefei/tileset.json",
+ "maximumScreenSpaceError": 1,
+ "maximumMemoryUsage": 1024,
+ "marsJzwStyle": true,
+ "highlight": { "type": "click", "color": "#FFFF00" },
+ "popup": [
+ { "field": "objectid", "name": "编号" },
+ { "field": "name", "name": "名称" },
+ { "field": "height", "name": "楼高", "unit": "米" }
+ ],
+ "center": {
+ "lat": 31.786281,
+ "lng": 117.223716,
+ "alt": 3718,
+ "heading": 2,
+ "pitch": -45
+ }
+ },
+ {
+ "id": 204012,
+ "pid": 2040,
+ "type": "3dtiles",
+ "name": "上海市区",
+ "url": "{dataServer}/3dtiles/jzw-shanghai/tileset.json",
+ "maximumScreenSpaceError": 4,
+ "maximumMemoryUsage": 1024,
+ "style": {
+ "color": {
+ "conditions": [
+ ["${floor} >= 200", "rgba(45, 0, 75, 0.5)"],
+ ["${floor} >= 100", "rgb(170, 162, 204)"],
+ ["${floor} >= 50", "rgb(224, 226, 238)"],
+ ["${floor} >= 25", "rgb(252, 230, 200)"],
+ ["${floor} >= 10", "rgb(248, 176, 87)"],
+ ["${floor} >= 5", "rgb(198, 106, 11)"],
+ ["true", "rgb(127, 59, 8)"]
+ ]
+ }
+ },
+ "highlight": { "type": "click", "color": "#FFFF00" },
+ "popup": [
+ { "field": "name", "name": "名称" },
+ { "field": "floor", "name": "楼层" }
+ ],
+ "center": {
+ "lat": 31.257341,
+ "lng": 121.466139,
+ "alt": 2170.8,
+ "heading": 122.2,
+ "pitch": -31.8
+ }
+ },
+
+ { "id": 2050, "pid": 20, "name": "点云", "type": "group" },
+ {
+ "id": 202016,
+ "pid": 2050,
+ "type": "3dtiles",
+ "name": "高压线塔杆",
+ "url": "//data.mars3d.cn/3dtiles/pnts-ganta/tileset.json",
+ "maximumScreenSpaceError": 1,
+ "position": { "alt": 31 },
+ "style": {
+ "color": {
+ "conditions": [
+ [
+ "(${Classification} >= 4) && (${Classification} < 5) ",
+ "color('#DC143C')"
+ ],
+ [
+ "(${Classification} >= 7) && (${Classification} < 8) ",
+ "color('#7B68EE')"
+ ],
+ [
+ "(${Classification} >= 16) && (${Classification} < 17) ",
+ "color('#00CED1')"
+ ],
+ [
+ "(${Classification} >= 17) && (${Classification} < 18) ",
+ "color('#3CB371')"
+ ],
+ [
+ "(${Classification} >= 18) && (${Classification} < 19) ",
+ "color('#FFFF00')"
+ ],
+ [
+ "(${Classification} >= 19) && (${Classification} < 20) ",
+ "color('#FFA500')"
+ ],
+ [
+ "(${Classification} >= 20) && (${Classification} < 21) ",
+ "color('#FF6347')"
+ ]
+ ]
+ }
+ },
+ "hasOpacity": false,
+ "center": {
+ "lat": 31.504746,
+ "lng": 118.264278,
+ "alt": 580,
+ "heading": 29,
+ "pitch": -49
+ }
+ },
+ { "id": 2060, "pid": 20, "name": "BIM模型", "type": "group" },
+ {
+ "id": 20601121,
+ "pid": 2060,
+ "type": "3dtiles",
+ "name": "大学教学楼",
+ "url": "{dataServer}/3dtiles/bim-daxue/tileset.json",
+ "position": { "lng": 117.251229, "lat": 31.844015, "alt": 31.2 },
+ "highlight": { "type": "click", "color": "#FFFF00" },
+ "popup": "all",
+ "scenetree": "scenetree.json",
+ "center": {
+ "lat": 31.842516,
+ "lng": 117.25107,
+ "alt": 145,
+ "heading": 8,
+ "pitch": -39
+ }
+ },
+ {
+ "pid": 2060,
+ "type": "3dtiles",
+ "name": "轻轨地铁站",
+ "url": "{dataServer}/3dtiles/bim-ditiezhan/tileset.json",
+ "position": { "lng": 117.203994, "lat": 31.857999, "alt": 28.9 },
+ "rotation": { "z": 168.1 },
+ "highlight": { "type": "click", "color": "#00FF00" },
+ "popup": "all",
+ "scenetree": "scenetree.json",
+ "center": {
+ "lat": 31.856125,
+ "lng": 117.204513,
+ "alt": 155,
+ "heading": 350,
+ "pitch": -31
+ }
+ },
+ {
+ "id": 206012,
+ "pid": 2060,
+ "type": "3dtiles",
+ "name": "桥梁",
+ "url": "{dataServer}/3dtiles/bim-qiaoliang/tileset.json",
+ "position": { "lng": 117.096906, "lat": 31.851564, "alt": 45 },
+ "rotation": { "z": 17.5 },
+ "maximumScreenSpaceError": 16,
+ "maximumMemoryUsage": 1024,
+ "skipLevelOfDetail": true,
+ "loadSiblings": true,
+ "cullRequestsWhileMoving": true,
+ "cullRequestsWhileMovingMultiplier": 10,
+ "preferLeaves": true,
+ "progressiveResolutionHeightFraction": 0.5,
+ "dynamicScreenSpaceError": true,
+ "preloadWhenHidden": true,
+ "center": {
+ "lat": 31.849357,
+ "lng": 117.099194,
+ "alt": 306.2,
+ "heading": 327.1,
+ "pitch": -30.9
+ },
+ "scenetree": "scenetree.json",
+ "highlight": { "type": "click", "color": "#00FF00" },
+ "popup": "all"
+ },
+ { "id": 2020, "pid": 20, "name": "人工建模", "type": "group" },
+ {
+ "id": 202013,
+ "pid": 2020,
+ "type": "3dtiles",
+ "name": "地下管网",
+ "url": "{dataServer}/3dtiles/max-piping/tileset.json",
+ "position": { "lng": 117.215457, "lat": 31.843363, "alt": -3.6 },
+ "rotation": { "z": 336.7 },
+ "maximumScreenSpaceError": 2,
+ "maximumMemoryUsage": 1024,
+ "highlight": { "type": "click", "color": "#00FF00" },
+ "popup": "all",
+ "center": {
+ "lat": 31.838821,
+ "lng": 117.216402,
+ "alt": 461,
+ "heading": 0,
+ "pitch": -46
+ },
+ "msg": "演示数据,地下数据拖动时会在地面漂移"
+ },
+ {
+ "id": 202012,
+ "pid": 2020,
+ "type": "3dtiles",
+ "name": "石化工厂",
+ "url": "{dataServer}/3dtiles/max-shihua/tileset.json",
+ "position": { "lng": 117.077158, "lat": 31.659116, "alt": 24.6 },
+ "maximumScreenSpaceError": 1,
+ "maximumMemoryUsage": 1024,
+ "highlight": { "type": "click", "color": "#00FF00" },
+ "popup": "all",
+ "scenetree": "scenetree.json",
+ "center": {
+ "lat": 31.654916,
+ "lng": 117.08278,
+ "alt": 279,
+ "heading": 316,
+ "pitch": -29
+ }
+ },
+ {
+ "id": 202030,
+ "pid": 2020,
+ "name": "水利闸门",
+ "type": "group",
+ "center": {
+ "lat": 29.794301,
+ "lng": 121.47998,
+ "alt": 262,
+ "heading": 191,
+ "pitch": -35
+ }
+ },
+ {
+ "pid": 202030,
+ "name": "闸门",
+ "type": "graphic",
+ "data": [
+ {
+ "type": "modelP",
+ "position": [121.479813, 29.791278, 16],
+ "style": {
+ "url": "//data.mars3d.cn/gltf/mars/zhamen.glb",
+ "heading": 105
+ }
+ }
+ ],
+ "center": {
+ "lat": 29.791607,
+ "lng": 121.479925,
+ "alt": 27,
+ "heading": 198,
+ "pitch": -18
+ }
+ },
+ {
+ "id": 202011,
+ "pid": 202030,
+ "type": "3dtiles",
+ "name": "整体",
+ "url": "{dataServer}/3dtiles/max-fsdzm/tileset.json",
+ "position": { "alt": 15.2 },
+ "maximumScreenSpaceError": 1,
+ "maximumMemoryUsage": 1024,
+ "center": {
+ "lat": 29.792675,
+ "lng": 121.480207,
+ "alt": 190.8,
+ "heading": 196.1,
+ "pitch": -49
+ }
+ },
+ { "id": 2030, "pid": 20, "name": "倾斜摄影", "type": "group" },
+ {
+ "id": 203014,
+ "pid": 2030,
+ "type": "3dtiles",
+ "name": "县城社区",
+ "url": "{dataServer}/3dtiles/qx-shequ/tileset.json",
+ "position": { "alt": 11.5 },
+ "maximumScreenSpaceError": 2,
+ "maximumMemoryUsage": 2048,
+ "dynamicScreenSpaceError": true,
+ "cullWithChildrenBounds": false,
+ "center": {
+ "lat": 28.440864,
+ "lng": 119.486477,
+ "alt": 588.23,
+ "heading": 268.6,
+ "pitch": -37.8
+ },
+ "show": false,
+ "flyTo": false
+ },
+ {
+ "id": 203015,
+ "pid": 2030,
+ "name": "合肥天鹅湖",
+ "type": "3dtiles",
+ "url": "{dataServer}/3dtiles/qx-teh/tileset.json",
+ "position": { "lng": 117.218434, "lat": 31.81807, "alt": 163 },
+ "maximumScreenSpaceError": 16,
+ "maximumMemoryUsage": 1024,
+ "dynamicScreenSpaceError": true,
+ "cullWithChildrenBounds": false,
+ "skipLevelOfDetail": true,
+ "preferLeaves": true,
+ "center": {
+ "lat": 31.795308,
+ "lng": 117.21948,
+ "alt": 1820,
+ "heading": 0,
+ "pitch": -39
+ }
+ },
+ {
+ "pid": 2030,
+ "type": "3dtiles",
+ "name": "大雁塔",
+ "url": "{dataServer}/3dtiles/qx-dyt/tileset.json",
+ "position": { "alt": -27 },
+ "maximumScreenSpaceError": 1,
+ "maximumMemoryUsage": 1024,
+ "center": {
+ "lat": 34.215516,
+ "lng": 108.960251,
+ "alt": 834,
+ "heading": 4,
+ "pitch": -48
+ },
+ "flat": {
+ "enabled": true,
+ "flatHeight": 420
+ },
+ "flyTo": false,
+ "show": false
+ },
+ {
+ "id": 203013,
+ "pid": 2030,
+ "type": "geojson",
+ "name": "文庙-单体化",
+ "url": " {dataServer}/file/geojson/dth-wm.json",
+ "symbol": {
+ "type": "polygonP",
+ "styleOptions": {
+ "color": "rgba(255, 255, 255, 0.01)",
+ "clampToGround": true,
+ "classification": true,
+ "buffer": 1,
+ "highlight": {
+ "color": "rgba(255,255,0,0.5)"
+ }
+ }
+ },
+ "popup": [
+ { "field": "name", "name": "房屋名称" },
+ { "field": "jznf", "name": "建造年份" },
+ { "field": "ssdw", "name": "所属单位" },
+ { "field": "remark", "name": "备注信息" }
+ ]
+ },
+ {
+ "id": 203012,
+ "pid": 2030,
+ "type": "3dtiles",
+ "name": "文庙",
+ "url": "{dataServer}/3dtiles/qx-simiao/tileset.json",
+ "position": { "alt": 80.6 },
+ "maximumScreenSpaceError": 2,
+ "maximumMemoryUsage": 2048,
+ "dynamicScreenSpaceError": true,
+ "cullWithChildrenBounds": false,
+ "skipLevelOfDetail": true,
+ "preferLeaves": true,
+ "center": {
+ "lat": 33.589536,
+ "lng": 119.032216,
+ "alt": 145.08,
+ "heading": 3.1,
+ "pitch": -22.9
+ }
+ },
+ { "id": 99, "name": "数据图层", "type": "group" }
+ ]
+}
diff --git a/src/main/resources/static/js/synthesisQuery/digitalSignage-new.js b/src/main/resources/static/js/synthesisQuery/digitalSignage-new.js
new file mode 100644
index 0000000..40f27f5
--- /dev/null
+++ b/src/main/resources/static/js/synthesisQuery/digitalSignage-new.js
@@ -0,0 +1,1377 @@
+let map = null; // 地图实例
+let treeData = []; // 组织机构树数据
+let nodeId = ""; // 当前选中的节点ID
+let cablewayList = []; // 索道列表
+let towerList = []; // 塔列表
+let crossingList = []; // 跨越列表
+let crossingListNew = []; // 跨越列表
+let highwayList = []; // 公路列表
+let aThousandFieldsList = []; // 千张场地
+let intLng = 116.254; // 初始经度
+let intLat = 39.965; // 初始纬度
+let isMap = true; // 是否是地图模式
+let projectOverview = ""; // 工程概况
+let projectTitle = ""; // 项目名称
+let centerTitle = ""; // 中间标题
+// 图例数据
+const legendData = [
+ {
+ name: "协调完成",
+ value: 0,
+ // icon: "../../img/digitalSignage/icon_three.png",
+ icon: "../../img/digitalSignage/icon_three_new.png",
+ },
+ {
+ name: "基础开挖",
+ value: 0,
+ // icon: "../../img/digitalSignage/icon_two.png",
+ icon: "../../img/digitalSignage/icon_two_new.png",
+ },
+ {
+ name: "基础开挖完成",
+ value: 0,
+ // icon: "../../img/digitalSignage/icon_five.png",
+ icon: "../../img/digitalSignage/icon_five_new.png",
+ },
+ {
+ name: "基础浇筑",
+ value: 0,
+ // icon: "../../img/digitalSignage/icon_seven.png",
+ icon: "../../img/digitalSignage/icon_seven_new.png",
+ },
+ {
+ name: "基础浇筑完成",
+ value: 0,
+ // icon: "../../img/digitalSignage/icon_four.png",
+ icon: "../../img/digitalSignage/icon_four_new.png",
+ },
+ {
+ name: "铁塔组立",
+ value: 0,
+ // icon: "../../img/digitalSignage/icon_six.png",
+ icon: "../../img/digitalSignage/zt_orange.png",
+ },
+ {
+ name: "铁塔组立完成",
+ value: 0,
+ icon: "../../img/digitalSignage/zt_red.png",
+ },
+ {
+ name: "架线施工",
+ value: 0,
+ icon: "../../img/digitalSignage/line_y.png",
+ },
+ // {
+ // name: "架线施工完成",
+ // value: 0,
+ // icon: "../../img/digitalSignage/zt_purple.png",
+ // },
+ {
+ name: "架线施工完成",
+ value: 0,
+ icon: "../../img/digitalSignage/line_r.png",
+ },
+ {
+ name: "附件安装完成",
+ value: 0,
+ icon: "../../img/digitalSignage/zt_green.png",
+ },
+ {
+ name: "未 开 始",
+ value: 0,
+ icon: "../../img/digitalSignage/icon_one_new.png",
+ },
+ {
+ name: "索道运输",
+ value: 0,
+ icon: "../../img/digitalSignage/sd.png",
+ },
+ // {
+ // name: "项 目 部",
+ // value: 0,
+ // icon: "../../img/digitalSignage/project.png",
+ // },
+];
+
+// 地图配置项
+const config = {
+ polyline: {
+ strokeWeight: 3, // 线条宽度
+ strokeOpacity: 0.9, // 透明度
+ strokeStyle: "dashed", // solid(实线)或dashed(虚线)
+ enableEditing: false, // 是否可编辑
+ enableClicking: true, // 是否可点击
+ },
+};
+
+// 获取位置信息
+function getLocationInfo(id) {
+ const params = {
+ encryptedData: encryptCBC(JSON.stringify({ id })),
+ };
+ ajaxRequest(
+ dataUrl + "/backstage/digitalSignage/getTowersInfo",
+ "POST",
+ params,
+ true,
+ function () {},
+ function (result) {
+ console.log(result, "获取位置信息---");
+ const { data } = result;
+
+ crossingList = [];
+ crossingListNew = [];
+ cablewayList = [];
+ towerList = [];
+
+ if (data.cablewaTransVos.length > 0) {
+ cablewayList = data.cablewaTransVos;
+ } else {
+ cablewayList = [];
+ }
+ if (data.towerInfoVos.length > 0) {
+ towerList = data.towerInfoVos;
+ } else {
+ towerList = [];
+ }
+ if (data.spanInfoVos.length > 0) {
+ crossingList = data.spanInfoVos;
+ } else {
+ crossingList = [];
+ crossingListNew = [];
+ }
+
+ if (data.highwayList.length > 0) {
+ highwayList = data.highwayList;
+ } else {
+ highwayList = [];
+ }
+
+ if (data.aThousandFieldsList.length > 0) {
+ aThousandFieldsList = data.aThousandFieldsList;
+ } else {
+ aThousandFieldsList = [];
+ }
+
+ // 处理一下交叉信息
+ if (crossingList && crossingList.length > 0) {
+ crossingList.forEach((item) => {
+ if (item.lonAndLat && item.lonAndLat.indexOf(",") > -1) {
+ const lonAndLatList = item.lonAndLat.split(",");
+ lonAndLatList.forEach((lonAndLat, index) => {
+ const lonAndLatItem = lonAndLat.split("@");
+ crossingListNew.push({
+ baiduLon: lonAndLatItem[0],
+ baiduLat: lonAndLatItem[1],
+ ...item,
+ });
+ });
+ }
+ });
+ }
+ initMap();
+ },
+ function (xhr) {
+ error(xhr);
+ }
+ );
+}
+
+// 百度地图初始化
+function initMap() {
+ if (map) {
+ map.destroy();
+ map = null;
+ }
+ if (!mars3d.Util.webglreport()) {
+ mars3d.Util.webglerror();
+ }
+ let configUrl = "../../js/synthesisQuery/config/config.json";
+ mars3d.Util.fetchJson({ url: configUrl })
+ .then((data) => {
+ map = new mars3d.Map("map-box", data);
+ let graphicLayer = new mars3d.layer.GraphicLayer();
+ map.addLayer(graphicLayer);
+
+ addAllMapPoints(graphicLayer);
+ addMapLine(graphicLayer);
+ addMapAThousandFields(graphicLayer);
+ })
+ .catch(function (error) {
+ console.log("加载JSON出错", error);
+ haoutil.alert(error?.message, "出错了");
+ });
+}
+
+function addDemoGraphic3(graphicLayer, item, index, img, type) {
+ const isEven = index % 2 === 0;
+ const verticalOrigin = isEven
+ ? Cesium.VerticalOrigin.BOTTOM
+ : Cesium.VerticalOrigin.TOP;
+ const pixelOffsetY = isEven ? 40 : -40;
+
+ const billboard = new mars3d.graphic.BillboardEntity({
+ position: [item.baiduLon, item.baiduLat],
+ style: {
+ image: img,
+ width: 20,
+ height: 20,
+ clampToGround: true,
+ // 添加Label
+ label: {
+ text: item.towerName,
+ font_size: 12,
+ color: "#FFFFFF",
+ background: true,
+ backgroundColor: "#000000",
+ backgroundOpacity: 0.8,
+ pixelOffset: new Cesium.Cartesian2(0, pixelOffsetY),
+ verticalOrigin: verticalOrigin,
+ horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
+ outline: true,
+ outlineColor: "#000000",
+ outlineWidth: 2,
+ },
+ },
+ // 其他属性
+ attr: {
+ id: index,
+ name: item.towerName,
+ },
+ });
+
+ // 添加点击事件
+ billboard.on(mars3d.EventType.click, function (event) {
+ // console.log("点击了标点", event.graphic.attr);
+
+ if (type == 1) {
+ // 索道
+ } else {
+ // 杆塔
+ }
+ });
+
+ graphicLayer.addGraphic(billboard);
+}
+
+function connectPointsWithLine(graphicLayer, points) {
+ // 提取所有点的坐标数组
+ const positions = points.map((item) => [item.baiduLon, item.baiduLat]);
+
+ // 创建连线
+ const polyline = new mars3d.graphic.PolylineEntity({
+ positions: positions,
+ style: {
+ width: 2, // 线宽(像素)
+ color: "#FF0000", // 线颜色
+ clampToGround: true, // 是否贴地(山区建议设为true)
+ },
+ attr: { name: "高压线路" },
+ });
+ graphicLayer.addGraphic(polyline);
+}
+
+// 添加标点
+function addAllMapPoints(graphicLayer) {
+ const iconTypeList = {
+ // 1: "../../img/digitalSignage/icon_three.png",
+ 1: "../../img/digitalSignage/icon_three_new.png",
+ // 2: "../../img/digitalSignage/icon_two.png",
+ 2: "../../img/digitalSignage/icon_two_new.png",
+ // 3: "../../img/digitalSignage/icon_five.png",
+ 3: "../../img/digitalSignage/icon_five_new.png",
+ // 4: "../../img/digitalSignage/icon_seven.png",
+ // 4: "../../img/digitalSignage/icon_purple.png",
+ 4: "../../img/digitalSignage/icon_seven_new.png",
+ // 5: "../../img/digitalSignage/icon_four.png",
+ 5: "../../img/digitalSignage/icon_four_new.png",
+ // 6: "../../img/digitalSignage/icon_six.png",
+ 6: "../../img/digitalSignage/zt_orange.png",
+ 7: "../../img/digitalSignage/zt_red.png",
+ 8: "../../img/digitalSignage/zt_red.png", // 新增的工序
+ 9: "../../img/digitalSignage/zt_red.png",
+ 10: "../../img/digitalSignage/zt_green.png",
+ // 0: "../../img/digitalSignage/icon_one.png",
+ 0: "../../img/digitalSignage/icon_one_new.png",
+ 12: "../../img/digitalSignage/sd.png",
+ 20: "../../img/digitalSignage/project.png",
+ // 21: "../../img/digitalSignage/zt_white.png",
+ 21: "../../img/digitalSignage/zt_gary.png",
+ };
+
+ // 绘制索道标点
+ if (cablewayList && cablewayList.length > 0) {
+ cablewayList.forEach((pointData, index) => {
+ if (
+ pointData.cablewaTransPointVoList &&
+ pointData.cablewaTransPointVoList.length > 0
+ ) {
+ const billboard = new mars3d.graphic.BillboardEntity({
+ position: [
+ pointData.cablewaTransPointVoList[0].lng,
+ pointData.cablewaTransPointVoList[0].lat,
+ ],
+ style: {
+ image: iconTypeList[12],
+ width: 20,
+ height: 20,
+ clampToGround: true,
+ },
+ });
+
+ // 添加点击事件
+ billboard.on(mars3d.EventType.click, function (event) {
+ // console.log("点击了标点", event.graphic.attr);
+ const graphic = event.graphic;
+ const infoContent = `
+
+
+ 索道运输
+
+
+ 索道位置
+ ${pointData.towerName}
+
+
+ 索道长度
+ ${pointData.cablewayLength} KM
+
+
+ 最大载重
+ ${pointData.maxHeight} kg
+
+
+ 安全距离
+ ${pointData.safetyDistance} m
+
+
+ 最大坡度
+ ${pointData.maxSlope} °
+
+
+ 索道宽度
+ ${pointData.cablewayWidth} m
+
+
`;
+ // 创建自定义信息窗体
+ graphicLayer.bindPopup(infoContent, {
+ position: graphic.position,
+ });
+ });
+
+ graphicLayer.addGraphic(billboard);
+ }
+ });
+ }
+
+ // 绘制项目部
+ if (intLng && intLat) {
+ const billboard = new mars3d.graphic.BillboardEntity({
+ position: [intLng, intLat],
+ style: {
+ image: iconTypeList[20],
+ width: 20,
+ height: 20,
+ clampToGround: true,
+ },
+ });
+
+ // 添加点击事件
+ billboard.on(mars3d.EventType.click, function (event) {
+ // console.log("点击了标点", event.graphic.attr);
+ const graphic = event.graphic;
+ const infoContent = `
+
+
+ ${projectTitle}
+
+ `;
+ // 创建自定义信息窗体
+ graphicLayer.bindPopup(infoContent, {
+ position: graphic.position,
+ });
+ });
+
+ graphicLayer.addGraphic(billboard);
+ }
+
+ // 绘制杆塔
+ if (towerList && towerList.length > 0) {
+ towerList.forEach((pointData, index) => {
+ const isEven = index % 2 === 0;
+ const verticalOrigin = isEven
+ ? Cesium.VerticalOrigin.BOTTOM
+ : Cesium.VerticalOrigin.TOP;
+ const pixelOffsetY = isEven ? 40 : -40;
+
+ const iconUrl = iconTypeList[parseInt(pointData.towerProgress)];
+ const billboard = new mars3d.graphic.BillboardEntity({
+ position: [pointData.baiduLon, pointData.baiduLat],
+ style: {
+ image: iconUrl,
+ width: 20,
+ height: 20,
+ clampToGround: true,
+ // 添加Label
+ label: {
+ text: pointData.towerName,
+ font_size: 10,
+ color: "#FFFFFF",
+ background: true,
+ backgroundColor: "#000000",
+ backgroundOpacity: 1.0,
+ pixelOffset: new Cesium.Cartesian2(0, pixelOffsetY),
+ verticalOrigin: verticalOrigin,
+ horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
+ outline: true,
+ outlineColor: "#FFFFFF",
+ outlineWidth: 1,
+ },
+ },
+ // 其他属性
+ attr: {
+ id: index,
+ name: pointData.towerName,
+ },
+ });
+
+ // 添加点击事件
+ billboard.on(mars3d.EventType.click, function (event) {
+ // console.log("点击了标点", event.graphic.attr);
+ const graphic = event.graphic;
+ let infoContent = `
+
+
${pointData.towerName}
+
+ 协调完成
+ ${pointData.time1 || "/"}
+
+
+ 基础开挖
+ ${pointData.time2 || "/"}
+
+
+ 基础开挖完成
+ ${pointData.time3 || "/"}
+
+
+ 基础浇筑
+ ${pointData.time4 || "/"}
+
+
+ 基础浇筑完成
+ ${pointData.time5 || "/"}
+
+
+ 铁塔组立
+ ${pointData.time6 || "/"}
+
+
+ 铁塔组立完成
+ ${pointData.time7 || "/"}
+
+
+ 架线施工
+ ${pointData.time8 || "/"}
+
+
+ 架线施工完成
+ ${pointData.time9 || "/"}
+
+
+ 附件安装完成
+ ${pointData.time10 || "/"}
+
+
`;
+ // 创建自定义信息窗体
+ graphicLayer.bindPopup(infoContent, {
+ position: graphic.position,
+ });
+ });
+
+ graphicLayer.addGraphic(billboard);
+ });
+ }
+
+ // 绘制交叉跨越
+ if (crossingListNew.length > 0) {
+ crossingListNew.forEach((pointData, index) => {
+ const billboard = new mars3d.graphic.BillboardEntity({
+ position: [pointData.baiduLon, pointData.baiduLat],
+ style: {
+ image: iconTypeList[21],
+ width: 20,
+ height: 20,
+ clampToGround: true,
+ },
+ });
+
+ // 添加点击事件
+ billboard.on(mars3d.EventType.click, function (event) {
+ // console.log("点击了标点", event.graphic.attr);
+
+ console.log(event, "pointData点击了----");
+ const graphic = event.graphic;
+ const infoContent = `
+
+
+
+ ${pointData.towerInfoVo.towerName}
+
+
+ 协调完成
+ ${
+ pointData.towerInfoVo.time1 || "/"
+ }
+
+
+ 基础开挖
+
+ ${pointData.towerInfoVo.time2 || "/"}
+
+
+
+ 基础开挖完成
+
+ ${pointData.towerInfoVo.time3 || "/"}
+
+
+
+ 基础浇筑
+
+ ${pointData.towerInfoVo.time4 || "/"}
+
+
+
+ 基础浇筑完成
+
+ ${pointData.towerInfoVo.time5 || "/"}
+
+
+
+ 铁塔组立
+
+ ${pointData.towerInfoVo.time6 || "/"}
+
+
+
+ 铁塔组立完成
+
+ ${pointData.towerInfoVo.time7 || "/"}
+
+
+
+ 架线施工
+
+ ${pointData.towerInfoVo.time8 || "/"}
+
+
+
+ 架线施工完成
+
+ ${pointData.towerInfoVo.time9 || "/"}
+
+
+
+ 附件安装完成
+
+ ${pointData.towerInfoVo.time10 || "/"}
+
+
+
+
+
+ 交叉跨越信息 ( ${pointData.spanTowerName} )
+
+
+ 上层线路
+ ${pointData.upperLine}
+
+
+ 下层线路
+ ${pointData.lowerLine}
+
+
+ 交叉角度
+ ${pointData.intersectionAngle} °
+
+
+ 垂直距离
+ ${pointData.verticalDistance} m
+
+
+ 安全裕度
+ ${pointData.safetyMargin} °
+
+
+
`;
+ // 创建自定义信息窗体
+ graphicLayer.bindPopup(infoContent, {
+ position: graphic.position,
+ });
+ });
+
+ graphicLayer.addGraphic(billboard);
+ });
+ }
+}
+
+// 连线
+function connectPointsWithLine(graphicLayer, points) {
+ // 提取所有点的坐标数组
+ const positions = points.map((item) => [item.lng, item.lat]);
+ // 创建连线
+ const polyline = new mars3d.graphic.PolylineEntity({
+ positions: positions,
+ style: {
+ width: 2, // 线宽(像素)
+ color: "#FF0000", // 线颜色
+ clampToGround: true, // 是否贴地(山区建议设为true)
+ },
+ attr: { name: "高压线路" },
+ });
+ graphicLayer.addGraphic(polyline);
+}
+
+function clearAllOverlays() {
+ map.clearOverlays();
+ // 清除可能遗留的自定义覆盖物
+ const customOverlays = document.querySelectorAll(".BMap_customOverlay");
+ customOverlays.forEach((overlay) => overlay.remove());
+}
+
+function calculateBounds(points) {
+ console.log(points, "points999");
+ var lngs = points.map((p) => p.lng);
+ var lats = points.map((p) => p.lat);
+ var minLng = Math.min(...lngs);
+ var maxLng = Math.max(...lngs);
+ var minLat = Math.min(...lats);
+ var maxLat = Math.max(...lats);
+ return new BMapGL.Bounds(
+ new BMapGL.Point(minLng, minLat),
+ new BMapGL.Point(maxLng, maxLat)
+ );
+}
+
+// 添加标点折线(智能绘制虚实线)
+function addMapLine(graphicLayer) {
+ // 存储所有线段
+ const segments = [];
+ // 绘制杆塔线
+ if (towerList.length > 0) {
+ for (let i = 0; i < towerList.length - 1; i++) {
+ const startPoint = towerList[i];
+ const endPoint = towerList[i + 1];
+
+ let lineColor = "";
+ let lineMaterial = null; // 用于存储线材质
+
+ // 判断条件部分保持不变
+ if (
+ startPoint.towerProgress === 8 &&
+ endPoint.towerProgress === 8
+ ) {
+ lineColor = "#FFFF00";
+ lineMaterial = new Cesium.ColorMaterialProperty({
+ // 实线
+ color: Cesium.Color.fromCssColorString(lineColor),
+ });
+ } else if (
+ endPoint.existSpan === 1 &&
+ startPoint.existSpan === 1 &&
+ startPoint.towerProgress != 9 &&
+ endPoint.towerProgress != 9 &&
+ startPoint.towerProgress != 8 &&
+ endPoint.towerProgress != 8 &&
+ startPoint.towerProgress != 10 &&
+ endPoint.towerProgress != 10
+ ) {
+ lineColor = "#d81e06";
+ lineMaterial = new Cesium.PolylineDashMaterialProperty({
+ // 虚线
+ color: Cesium.Color.fromCssColorString(lineColor),
+ dashLength: 16.0, // 可调整虚线长度
+ });
+ } else if (
+ (startPoint.towerProgress === 9 &&
+ endPoint.towerProgress === 9) ||
+ (startPoint.towerProgress === 10 &&
+ endPoint.towerProgress === 10)
+ ) {
+ lineColor = "#d81e06";
+ lineMaterial = new Cesium.ColorMaterialProperty({
+ // 实线
+ color: Cesium.Color.fromCssColorString(lineColor),
+ });
+ } else {
+ lineColor = "#fff";
+ lineMaterial = new Cesium.PolylineDashMaterialProperty({
+ // 虚线
+ color: Cesium.Color.fromCssColorString(lineColor),
+ dashLength: 16.0, // 可调整虚线长度
+ });
+ }
+
+ // 创建线段点数组
+ const positions = [
+ [startPoint.baiduLon, startPoint.baiduLat],
+ [endPoint.baiduLon, endPoint.baiduLat],
+ ];
+
+ const polyline = new mars3d.graphic.PolylineEntity({
+ positions: positions,
+ style: {
+ width: 2, // 线宽(像素)
+ material: lineMaterial, // 使用动态设置的材质
+ clampToGround: true, // 是否贴地(山区建议设为true)
+ },
+ });
+ graphicLayer.addGraphic(polyline);
+ }
+ }
+
+ // 绘制交叉线路
+ if (crossingListNew.length > 0) {
+ for (let i = 0; i < crossingListNew.length - 1; i++) {
+ const startPoint = crossingListNew[i];
+ const endPoint = crossingListNew[i + 1];
+
+ // 创建线段点数组
+ const positions = [
+ [startPoint.baiduLon, startPoint.baiduLat],
+ [endPoint.baiduLon, endPoint.baiduLat],
+ ];
+
+ const polyline = new mars3d.graphic.PolylineEntity({
+ positions: positions,
+ style: {
+ width: 2, // 线宽(像素)
+ color: "#800080", // 线颜色
+ clampToGround: true, // 是否贴地(山区建议设为true)
+ },
+ });
+ graphicLayer.addGraphic(polyline);
+ }
+ }
+
+ // 绘制索道线
+ if (cablewayList.length > 0) {
+ cablewayList.forEach((pointData) => {
+ if (
+ pointData.cablewaTransPointVoList &&
+ pointData.cablewaTransPointVoList.length > 0
+ ) {
+ for (
+ let j = 0;
+ j < pointData.cablewaTransPointVoList.length - 1;
+ j++
+ ) {
+ const startPoint = pointData.cablewaTransPointVoList[j];
+ const endPoint = pointData.cablewaTransPointVoList[j + 1];
+
+ // 创建线段点数组
+ const positions = [
+ [startPoint.lng, startPoint.lat],
+ [endPoint.lng, endPoint.lat],
+ ];
+
+ const polyline = new mars3d.graphic.PolylineEntity({
+ positions: positions,
+ style: {
+ width: 2, // 线宽(像素)
+ color: "#262fc9", // 线颜色
+ clampToGround: true, // 是否贴地(山区建议设为true)
+ },
+ });
+ graphicLayer.addGraphic(polyline);
+ }
+ }
+ });
+ }
+
+ // 绘制公路线
+ if (highwayList.length > 0) {
+ for (let i = 0; i < highwayList.length; i++) {
+ if (highwayList[i].cablewaTransPointVoList.length > 0) {
+ for (
+ let j = 0;
+ j < highwayList[i].cablewaTransPointVoList.length - 1;
+ j++
+ ) {
+ const startPoint =
+ highwayList[i].cablewaTransPointVoList[j];
+ const endPoint =
+ highwayList[i].cablewaTransPointVoList[j + 1];
+
+ // 创建线段点数组
+ const positions = [
+ [startPoint.lng, startPoint.lat],
+ [endPoint.lng, endPoint.lat],
+ ];
+
+ const polyline = new mars3d.graphic.PolylineEntity({
+ positions: positions,
+ style: {
+ width: 2, // 线宽(像素)
+ color: "#FFFF00", // 线颜色
+ clampToGround: true, // 是否贴地(山区建议设为true)
+ },
+ });
+ graphicLayer.addGraphic(polyline);
+ }
+ }
+ }
+ }
+
+ // 将所有线段添加到地图
+ segments.forEach((segment) => map.addOverlay(segment));
+}
+
+// 根据点类型获取线段颜色
+function getSegmentColor(startPoint, endPoint) {
+ // 如果两点类型相同,使用该类型对应颜色
+ if (startPoint.type === endPoint.type) {
+ switch (startPoint.type) {
+ case 1:
+ return "#3388ff"; // 类型1蓝色
+ case 2:
+ return "#ff9900"; // 类型2橙色
+ case 3:
+ return "#33cc33"; // 类型3绿色
+ default:
+ return config.polyline.strokeColor;
+ }
+ }
+ // 类型不同使用默认颜色
+ return config.polyline.strokeColor;
+}
+
+// 绘制千张场地区域图
+function addMapAThousandFields(graphicLayer) {
+ if (aThousandFieldsList.length > 0) {
+ aThousandFieldsList.forEach((item) => {
+ if (
+ item.cablewaTransPointVoList &&
+ item.cablewaTransPointVoList.length > 0
+ ) {
+ let points = [];
+ // 根据sort字段排序 防止点位顺序不一致
+ item.cablewaTransPointVoList.forEach((j) => {
+ points.push([j.lng, j.lat]);
+ });
+
+ if (points.length > 0) {
+ // // 2. 创建折线连接这些点位
+ // var polyline = new BMapGL.Polyline(points, {
+ // strokeColor: "#0C14CA", // 线颜色
+ // strokeWeight: 4, // 线宽
+ // strokeOpacity: 0.8, // 线透明度
+ // });
+ // map.addOverlay(polyline);
+
+ // // 绘制区域
+ // var polygon = new BMapGL.Polygon(points, {
+ // strokeColor: "#00FFFF", // 线颜色
+ // strokeWeight: 4, // 线宽
+ // strokeOpacity: 0.8, // 线透明度
+ // fillColor: "#00FFFF", // 填充颜色
+ // fillOpacity: 0.3, // 填充透明度
+ // });
+ // // polygonView = polygon;
+ // map.addOverlay(polygon);
+
+ const graphic = new mars3d.graphic.PolygonEntity({
+ positions: points,
+ style: {
+ color: "#00FFFF", // 区域填充颜色
+ opacity: 0.5, // 透明度(0-1)
+ outline: true, // 是否显示边框
+ outlineWidth: 2, // 边框宽度(像素)
+ outlineColor: "#00FFFF", // 边框颜色
+ },
+ attr: { remark: "示例区域" },
+ });
+ graphicLayer.addGraphic(graphic);
+ }
+ }
+ });
+ }
+}
+// 获取组织树数据
+function getOrgTreeData() {
+ ajaxRequest(
+ dataUrl + "/backstage/digitalSignage/getProTree",
+ "POST",
+ {},
+ true,
+ function () {},
+ function (result) {
+ console.log(result, "组织机构树数据获取成功---");
+
+ const { data } = result;
+
+ // 判断是否有工程 有的话取第一个
+ if (data && data.length > 0) {
+ setSpreadToNodes(data);
+ treeData = data;
+ // 获取第一个工程
+ if (
+ data[0].children &&
+ data[0].children.length > 0 &&
+ data[0].children[0].children &&
+ data[0].children[0].children.length > 0
+ ) {
+ nodeId = data[0].children[0].children[0].id;
+
+ if (
+ data[0].children[0].children[0].lon &&
+ data[0].children[0].children[0].lat
+ ) {
+ intLng = data[0].children[0].children[0].lon;
+ intLat = data[0].children[0].children[0].lat;
+ projectTitle = data[0].children[0].children[0].title;
+ }
+
+ if (treeData[0].children[0].children[0].title) {
+ projectTitle =
+ treeData[0].children[0].children[0].title;
+ $(".center-title-box").text(projectTitle + "作战图");
+ }
+
+ // getScrollData(nodeId);
+ $(".project-overview-content").text(
+ treeData[0].children[0].children[0].projectOverview ||
+ "暂无"
+ );
+ getLegendData(nodeId);
+ getLocationInfo(nodeId);
+ } else {
+ initMap();
+ }
+ }
+ },
+ function (xhr) {
+ error(xhr);
+ }
+ );
+}
+getOrgTreeData();
+// 递归
+function setSpreadToNodes(nodes, spreadValue = true) {
+ if (!nodes || !Array.isArray(nodes)) return;
+
+ nodes.forEach((node) => {
+ node.spread = spreadValue;
+
+ if (node.children && node.children.length > 0) {
+ setSpreadToNodes(node.children, spreadValue);
+ }
+ });
+}
+// 获取左上角滚动数据源
+function getScrollData(id) {
+ const scrollData = [
+ {
+ name: "跨线路",
+ location: "N11-N12999",
+ content: [
+ {
+ name: "垂直净度",
+ value: "9896",
+ },
+ {
+ name: "垂直净度",
+ value: "9896",
+ },
+ {
+ name: "垂直净度",
+ value: "9896",
+ },
+ ],
+ },
+ {
+ name: "跨越地点",
+ location: "N11-N12336",
+ content: [
+ {
+ name: "垂直净度",
+ value: "9896",
+ },
+ {
+ name: "垂直净度",
+ value: "9896",
+ },
+ {
+ name: "垂直净度",
+ value: "9896",
+ },
+ ],
+ },
+ {
+ name: "跨越地点",
+ location: "N11-N128885",
+ content: [
+ {
+ name: "垂直净度",
+ value: "9896",
+ },
+ {
+ name: "垂直净度",
+ value: "9896",
+ },
+ {
+ name: "垂直净度",
+ value: "9896",
+ },
+ ],
+ },
+ {
+ name: "跨越地点",
+ location: "N11-N128773",
+ content: [
+ {
+ name: "垂直净度",
+ value: "9896",
+ },
+ {
+ name: "垂直净度",
+ value: "9896",
+ },
+ {
+ name: "垂直净度",
+ value: "9896",
+ },
+ ],
+ },
+ ];
+ const params = {
+ encryptedData: encryptCBC(JSON.stringify({ id })),
+ };
+ ajaxRequest(
+ dataUrl + "/backstage/digitalSignage/getThreeSpans",
+ "POST",
+ params,
+ true,
+ function () {},
+ function (result) {
+ // console.log(result, "左上角滚动数据获取成功---");
+
+ const { data } = result;
+
+ let scrollBox = $(".content-wrapper");
+ let innerHtml = "";
+ if (data && data.length > 0) {
+ data.forEach((item) => {
+ let describeHtml = "";
+ if (item.spanType === "跨线路") {
+ describeHtml += `
+ 上层线路:${item.upperLine || "/"}
+ 下层线路: ${item.lowerLine || "/"}
+ 交叉角度: ${item.intersectionAngle || "/"}
+ 垂直距离: ${item.verticalDistance || "/"}
+ 安全裕度: ${item.safetyMargin || "/"}
+ `;
+ } else if (item.spanType === "跨公路") {
+ describeHtml += `
+ 垂直净距:${item.verticalClearDistance || "/"} m
+ 杆塔间距: ${item.towerSpacing || "/"} m
+ 公路宽度: ${item.highwayWidth || "/"} m
+ `;
+ } else if (item.spanType === "跨铁路") {
+ describeHtml += `
+ 垂直净距:${item.verticalClearDistance || "/"} m
+ 杆塔间距: ${item.towerSpacing || "/"} m
+ 交叉角度: ${item.intersectionAngle || "/"} °
+ `;
+ } else {
+ }
+
+ // 单行数据
+ innerHtml += `
+
+
${item.spanType}
+
+
+ ${item.towerName} - ${item.nextTowerName}
+
+
${describeHtml}
+
+ `;
+ });
+ $(".scroll-box").show();
+ scrollBox.html(innerHtml);
+ } else {
+ $(".scroll-box").hide();
+ }
+ },
+ function (xhr) {
+ error(xhr);
+ }
+ );
+}
+
+// 获取左下角图例数据源
+function getLegendData(id) {
+ const params = {
+ encryptedData: encryptCBC(JSON.stringify({ id })),
+ };
+
+ ajaxRequest(
+ dataUrl + "/backstage/digitalSignage/getTowerProgressNum",
+ "POST",
+ params,
+ true,
+ function () {},
+ function (result) {
+ const { data } = result;
+
+ if (data) {
+ Object.values(data).forEach((value, index) => {
+ legendData[index].value = value;
+ });
+ }
+
+ const legendBox = $(".legend-box");
+ let innerHtml = "";
+ legendData.forEach((item, index) => {
+ innerHtml += `
+
+

+
${item.name}
+
${item.value}
+
+ `;
+ });
+ legendBox.html(innerHtml);
+ },
+ function (xhr) {
+ error(xhr);
+ }
+ );
+}
+
+document.addEventListener("DOMContentLoaded", function () {
+ const scrollContent = document.getElementById("scrollContent");
+ const originalContent = scrollContent.querySelector(".content-wrapper");
+ const cloneContent = scrollContent.querySelector(".clone-content");
+
+ // 克隆原始内容到克隆容器
+ cloneContent.innerHTML = originalContent.innerHTML;
+
+ // 设置滚动动画
+ let scrollPosition = 0;
+ const scrollSpeed = 20; // 滚动速度(像素/秒)
+ let lastTimestamp = 0;
+
+ function animateScroll(timestamp) {
+ if (!lastTimestamp) lastTimestamp = timestamp;
+ const deltaTime = timestamp - lastTimestamp;
+ lastTimestamp = timestamp;
+
+ // 计算新的滚动位置
+ scrollPosition += (scrollSpeed * deltaTime) / 1000;
+
+ // 获取内容总高度
+ const contentHeight = originalContent.scrollHeight;
+
+ // 当滚动到克隆内容的开始时,重置位置以实现无缝衔接
+ if (scrollPosition >= contentHeight) {
+ scrollPosition = 0;
+ }
+
+ // 应用滚动
+ scrollContent.scrollTop = scrollPosition;
+
+ // 继续动画
+ requestAnimationFrame(animateScroll);
+ }
+
+ // 启动动画
+ requestAnimationFrame(animateScroll);
+
+ // // 鼠标悬停时暂停滚动
+ // scrollContent.addEventListener("mouseenter", function () {
+ // scrollSpeed = 0;
+ // });
+
+ // scrollContent.addEventListener("mouseleave", function () {
+ // scrollSpeed = 30; // 恢复原始速度
+ // });
+
+ const drawer = document.querySelector(".right-drawer-box");
+ const openBtn = document.querySelector(".open-drawer-box");
+ const closeBtn = document.querySelector(".close-drawer-btn");
+
+ // 点击三角按钮打开抽屉
+ openBtn.addEventListener("click", function () {
+ drawer.classList.add("open");
+
+ layui.use(["tree", "jquery"], function () {
+ var tree = layui.tree;
+ var $ = layui.jquery;
+
+ // 初始化组织树
+ function initOrgTree() {
+ // 渲染树形结构
+ tree.render({
+ elem: "#orgTree", // 绑定元素
+ id: "orgTree", // 自定义索引
+ data: treeData, // 获取数据
+ showCheckbox: false, // 是否显示复选框
+ isJump: false, // 是否允许点击节点时弹出新窗口
+ accordion: true, // 是否开启手风琴模式
+ edit: false, // 是否开启节点的操作图标
+ onlyIconControl: true, // 是否仅允许节点左侧图标控制展开收缩
+ click: function (obj) {
+ console.log(obj.data);
+ // 判断是否是叶子节点(没有子节点或子节点数组为空)
+ if (
+ !obj.data.children ||
+ obj.data.children.length === 0
+ ) {
+ setActiveNode(obj.elem);
+ nodeId = obj.data.id;
+ intLng = obj.data.lon;
+ intLat = obj.data.lat;
+ projectTitle = obj.data.title;
+ $(".center-title-box").text(
+ projectTitle + "作战图"
+ );
+ $(".project-overview-content").text(
+ obj.data.projectOverview || "暂无"
+ );
+ // getScrollData(nodeId);
+ getLegendData(nodeId);
+ getLocationInfo(nodeId);
+ } else {
+ }
+ },
+ done: function () {
+ console.log("树准备完毕");
+ expandToNodeId(nodeId);
+ },
+ });
+ }
+
+ initOrgTree();
+ setActiveNodeNew(nodeId);
+
+ function setActiveNode(elem) {
+ $("#orgTree")
+ .find(".layui-tree-click")
+ .removeClass("layui-tree-click");
+ $(elem).addClass("layui-tree-click");
+ }
+
+ function setActiveNodeNew(nodeId) {
+ $("#orgTree")
+ .find('[data-id="' + nodeId + '"]')
+ .addClass("layui-tree-click");
+ }
+ });
+ });
+
+ // 点击关闭按钮关闭抽屉
+ closeBtn.addEventListener("click", function () {
+ drawer.classList.remove("open");
+ });
+
+ // 点击抽屉外部关闭抽屉(可选)
+ document.addEventListener("click", function (e) {
+ if (
+ drawer.classList.contains("open") &&
+ !drawer.contains(e.target) &&
+ e.target !== openBtn
+ ) {
+ drawer.classList.remove("open");
+ }
+ });
+
+ const switchBtnItemMap = document.querySelector(".map-btn");
+ const switchBtnItemMix = document.querySelector(".mix-btn");
+ if (isMap) {
+ switchBtnItemMap.classList.add("active");
+ }
+ switchBtnItemMap.addEventListener("click", function () {
+ getLocationInfo(nodeId);
+ switchBtnItemMap.classList.add("active");
+ switchBtnItemMix.classList.remove("active");
+ isMap = true;
+ });
+ switchBtnItemMix.addEventListener("click", function () {
+ getLocationInfo(nodeId);
+ switchBtnItemMix.classList.add("active");
+ switchBtnItemMap.classList.remove("active");
+ isMap = false;
+ });
+
+ // 点击全屏图标时 使地图盒子全屏
+ const fullScreenBtn = document.querySelector(".full-screen-btn");
+ fullScreenBtn.addEventListener("click", function () {
+ if (document.fullscreenElement) {
+ // 退出全屏
+ document.exitFullscreen();
+ } else {
+ // 进入全屏
+ document.documentElement.requestFullscreen();
+ // 遍历树形结构数据把数据全部更改为第一个工程
+ if (
+ treeData[0].children &&
+ treeData[0].children.length > 0 &&
+ treeData[0].children[0].children &&
+ treeData[0].children[0].children.length > 0
+ ) {
+ nodeId = treeData[0].children[0].children[0].id;
+ if (
+ treeData[0].children[0].children[0].lon &&
+ treeData[0].children[0].children[0].lat
+ ) {
+ intLng = treeData[0].children[0].children[0].lon;
+ intLat = treeData[0].children[0].children[0].lat;
+ }
+
+ if (treeData[0].children[0].children[0].title) {
+ projectTitle = treeData[0].children[0].children[0].title;
+ $(".center-title-box").text(projectTitle + "作战图");
+ }
+
+ // getScrollData(nodeId);
+ $(".project-overview-content").text(
+ treeData[0].children[0].children[0].projectOverview ||
+ "暂无"
+ );
+ getLegendData(nodeId);
+ getLocationInfo(nodeId);
+ } else {
+ initMap();
+ }
+ }
+ });
+
+ // 设置当鼠标移入工程概况时,并且判断当前是否溢出,溢出时预览框显示
+ const projectOverviewBox = document.querySelector(".project-overview-box");
+ const projectOverviewContent = document.querySelector(
+ ".project-overview-content"
+ );
+ const projectOverviewPreviewBox = document.querySelector(
+ ".project-overview-preview-box"
+ );
+ projectOverviewBox.addEventListener("mouseenter", function () {
+ if (
+ projectOverviewContent.scrollHeight >
+ projectOverviewContent.clientHeight
+ ) {
+ projectOverviewPreviewBox.style.display = "block";
+ projectOverviewPreviewBox.innerHTML =
+ projectOverviewContent.innerHTML;
+ } else {
+ projectOverviewPreviewBox.style.display = "none";
+ projectOverviewPreviewBox.innerHTML = "";
+ }
+ });
+ projectOverviewBox.addEventListener("mouseleave", function () {
+ projectOverviewPreviewBox.style.display = "none";
+ projectOverviewPreviewBox.innerHTML = "";
+ });
+});
diff --git a/src/main/resources/static/pages/synthesisQuery/digitalSignage.html b/src/main/resources/static/pages/synthesisQuery/digitalSignage.html
index 33e9a86..7ed7530 100644
--- a/src/main/resources/static/pages/synthesisQuery/digitalSignage.html
+++ b/src/main/resources/static/pages/synthesisQuery/digitalSignage.html
@@ -14,7 +14,23 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
电子看板