Browse Source

修改融合体系

BAI 2 weeks ago
parent
commit
70f64104c6

+ 356 - 0
package-lock.json

@@ -9,6 +9,7 @@
       "version": "1.0.0",
       "version": "1.0.0",
       "dependencies": {
       "dependencies": {
         "autofit.js": "^3.1.0",
         "autofit.js": "^3.1.0",
+        "cesium": "^1.138.0",
         "d3-geo": "^3.1.0",
         "d3-geo": "^3.1.0",
         "delaunator": "^5.0.0",
         "delaunator": "^5.0.0",
         "echarts": "^5.5.0",
         "echarts": "^5.5.0",
@@ -72,6 +73,63 @@
         "node": ">=6.9.0"
         "node": ">=6.9.0"
       }
       }
     },
     },
+    "node_modules/@cesium/engine": {
+      "version": "22.3.0",
+      "resolved": "https://registry.npmmirror.com/@cesium/engine/-/engine-22.3.0.tgz",
+      "integrity": "sha512-oDl+nWX/qfHYQ0lEdGxLqZoKEtTMghvJDzZKTycYfiIuDYDh8Kh0Oy45wr3mSJse3PuTj1e6hDmbw8vbycCOxw==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@cesium/wasm-splats": "^0.1.0-alpha.2",
+        "@spz-loader/core": "0.3.0",
+        "@tweenjs/tween.js": "^25.0.0",
+        "@zip.js/zip.js": "^2.8.1",
+        "autolinker": "^4.0.0",
+        "bitmap-sdf": "^1.0.3",
+        "dompurify": "^3.3.0",
+        "draco3d": "^1.5.1",
+        "earcut": "^3.0.0",
+        "grapheme-splitter": "^1.0.4",
+        "jsep": "^1.3.8",
+        "kdbush": "^4.0.1",
+        "ktx-parse": "^1.0.0",
+        "lerc": "^2.0.0",
+        "mersenne-twister": "^1.1.0",
+        "meshoptimizer": "^1.0.1",
+        "pako": "^2.0.4",
+        "protobufjs": "^8.0.0",
+        "rbush": "^4.0.1",
+        "topojson-client": "^3.1.0",
+        "urijs": "^1.19.7"
+      },
+      "engines": {
+        "node": ">=20.19.0"
+      }
+    },
+    "node_modules/@cesium/engine/node_modules/meshoptimizer": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/meshoptimizer/-/meshoptimizer-1.0.1.tgz",
+      "integrity": "sha512-Vix+QlA1YYT3FwmBBZ+49cE5y/b+pRrcXKqGpS5ouh33d3lSp2PoTpCw19E0cKDFWalembrHnIaZetf27a+W2g==",
+      "license": "MIT"
+    },
+    "node_modules/@cesium/wasm-splats": {
+      "version": "0.1.0-alpha.2",
+      "resolved": "https://registry.npmmirror.com/@cesium/wasm-splats/-/wasm-splats-0.1.0-alpha.2.tgz",
+      "integrity": "sha512-t9pMkknv31hhIbLpMa8yPvmqfpvs5UkUjgqlQv9SeO8VerCXOYnyP8/486BDaFrztM0A7FMbRjsXtNeKvqQghA==",
+      "license": "Apache-2.0"
+    },
+    "node_modules/@cesium/widgets": {
+      "version": "14.3.0",
+      "resolved": "https://registry.npmmirror.com/@cesium/widgets/-/widgets-14.3.0.tgz",
+      "integrity": "sha512-1bS+Nv/uXwP0/NV0o4XeUA5nLCWttjTmKwl+pHnbZXp0ZwDmClb0xVDruDyVtLrUuRhsk84JZ4rXI/IT7HXOvA==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "@cesium/engine": "^22.3.0",
+        "nosleep.js": "^0.12.0"
+      },
+      "engines": {
+        "node": ">=20.19.0"
+      }
+    },
     "node_modules/@esbuild/android-arm": {
     "node_modules/@esbuild/android-arm": {
       "version": "0.18.20",
       "version": "0.18.20",
       "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
       "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
@@ -725,6 +783,95 @@
         "url": "https://opencollective.com/parcel"
         "url": "https://opencollective.com/parcel"
       }
       }
     },
     },
+    "node_modules/@protobufjs/aspromise": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+      "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@protobufjs/base64": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/@protobufjs/base64/-/base64-1.1.2.tgz",
+      "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@protobufjs/codegen": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmmirror.com/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+      "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@protobufjs/eventemitter": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+      "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@protobufjs/fetch": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+      "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
+      "license": "BSD-3-Clause",
+      "dependencies": {
+        "@protobufjs/aspromise": "^1.1.1",
+        "@protobufjs/inquire": "^1.1.0"
+      }
+    },
+    "node_modules/@protobufjs/float": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/@protobufjs/float/-/float-1.0.2.tgz",
+      "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@protobufjs/inquire": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+      "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@protobufjs/path": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/@protobufjs/path/-/path-1.1.2.tgz",
+      "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@protobufjs/pool": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/@protobufjs/pool/-/pool-1.1.0.tgz",
+      "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@protobufjs/utf8": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+      "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/@spz-loader/core": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/@spz-loader/core/-/core-0.3.0.tgz",
+      "integrity": "sha512-sbStwMHb/MIE29st7rRuMYWqhX1UmLSFzdpyGtUZUXLkFNIuYKblzjQdtiet8bau8sUf21uL1DQ451zuySGmcA==",
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=16",
+        "pnpm": ">=8"
+      }
+    },
+    "node_modules/@tweenjs/tween.js": {
+      "version": "25.0.0",
+      "resolved": "https://registry.npmmirror.com/@tweenjs/tween.js/-/tween.js-25.0.0.tgz",
+      "integrity": "sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A==",
+      "license": "MIT"
+    },
+    "node_modules/@types/node": {
+      "version": "25.3.3",
+      "resolved": "https://registry.npmmirror.com/@types/node/-/node-25.3.3.tgz",
+      "integrity": "sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==",
+      "license": "MIT",
+      "dependencies": {
+        "undici-types": "~7.18.0"
+      }
+    },
     "node_modules/@types/stats.js": {
     "node_modules/@types/stats.js": {
       "version": "0.17.4",
       "version": "0.17.4",
       "resolved": "https://registry.npmmirror.com/@types/stats.js/-/stats.js-0.17.4.tgz",
       "resolved": "https://registry.npmmirror.com/@types/stats.js/-/stats.js-0.17.4.tgz",
@@ -743,6 +890,13 @@
         "meshoptimizer": "~0.18.1"
         "meshoptimizer": "~0.18.1"
       }
       }
     },
     },
+    "node_modules/@types/trusted-types": {
+      "version": "2.0.7",
+      "resolved": "https://registry.npmmirror.com/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+      "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+      "license": "MIT",
+      "optional": true
+    },
     "node_modules/@types/webxr": {
     "node_modules/@types/webxr": {
       "version": "0.5.24",
       "version": "0.5.24",
       "resolved": "https://registry.npmmirror.com/@types/webxr/-/webxr-0.5.24.tgz",
       "resolved": "https://registry.npmmirror.com/@types/webxr/-/webxr-0.5.24.tgz",
@@ -858,11 +1012,46 @@
       "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.24.tgz",
       "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.24.tgz",
       "integrity": "sha512-9cwHL2EsJBdi8NY22pngYYWzkTDhld6fAD6jlaeloNGciNSJL6bLpbxVgXl96X00Jtc6YWQv96YA/0sxex/k1A=="
       "integrity": "sha512-9cwHL2EsJBdi8NY22pngYYWzkTDhld6fAD6jlaeloNGciNSJL6bLpbxVgXl96X00Jtc6YWQv96YA/0sxex/k1A=="
     },
     },
+    "node_modules/@zip.js/zip.js": {
+      "version": "2.8.21",
+      "resolved": "https://registry.npmmirror.com/@zip.js/zip.js/-/zip.js-2.8.21.tgz",
+      "integrity": "sha512-fkyzXISE3IMrstDO1AgPkJCx14MYHP/suIGiAovEYEuBjq3mffsuL6aMV7ohOSjW4rXtuACuUfpA3GtITgdtYg==",
+      "license": "BSD-3-Clause",
+      "engines": {
+        "bun": ">=0.7.0",
+        "deno": ">=1.0.0",
+        "node": ">=18.0.0"
+      }
+    },
     "node_modules/autofit.js": {
     "node_modules/autofit.js": {
       "version": "3.2.8",
       "version": "3.2.8",
       "resolved": "https://registry.npmmirror.com/autofit.js/-/autofit.js-3.2.8.tgz",
       "resolved": "https://registry.npmmirror.com/autofit.js/-/autofit.js-3.2.8.tgz",
       "integrity": "sha512-albZNwDIXvcRneEDyZLW3uAIOH0cUQG/TnCGQ7jpfnL0gPn/+1ZNVRuEz3ZuzZvVkQ4HQRplGHjUeMRtPNxjLQ=="
       "integrity": "sha512-albZNwDIXvcRneEDyZLW3uAIOH0cUQG/TnCGQ7jpfnL0gPn/+1ZNVRuEz3ZuzZvVkQ4HQRplGHjUeMRtPNxjLQ=="
     },
     },
+    "node_modules/autolinker": {
+      "version": "4.1.5",
+      "resolved": "https://registry.npmmirror.com/autolinker/-/autolinker-4.1.5.tgz",
+      "integrity": "sha512-vEfYZPmvVOIuE567XBVCsx8SBgOYtjB2+S1iAaJ+HgH+DNjAcrHem2hmAeC9yaNGWayicv4yR+9UaJlkF3pvtw==",
+      "license": "MIT",
+      "dependencies": {
+        "tslib": "^2.8.1"
+      },
+      "engines": {
+        "pnpm": ">=10.10.0"
+      }
+    },
+    "node_modules/autolinker/node_modules/tslib": {
+      "version": "2.8.1",
+      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
+      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+      "license": "0BSD"
+    },
+    "node_modules/bitmap-sdf": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmmirror.com/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz",
+      "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==",
+      "license": "MIT"
+    },
     "node_modules/braces": {
     "node_modules/braces": {
       "version": "3.0.3",
       "version": "3.0.3",
       "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz",
       "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz",
@@ -876,6 +1065,24 @@
         "node": ">=8"
         "node": ">=8"
       }
       }
     },
     },
+    "node_modules/cesium": {
+      "version": "1.138.0",
+      "resolved": "https://registry.npmmirror.com/cesium/-/cesium-1.138.0.tgz",
+      "integrity": "sha512-YX7Ttd4LzAxunuzcKPyOCQa+BPc2RmenqnkM5uZkk/GVwor724bd+F3kdVP4IyMbTgxFkchXuX2Aa8L1Y0/ZxA==",
+      "license": "Apache-2.0",
+      "workspaces": [
+        "packages/engine",
+        "packages/widgets",
+        "packages/sandcastle"
+      ],
+      "dependencies": {
+        "@cesium/engine": "^22.3.0",
+        "@cesium/widgets": "^14.3.0"
+      },
+      "engines": {
+        "node": ">=20.19.0"
+      }
+    },
     "node_modules/chokidar": {
     "node_modules/chokidar": {
       "version": "4.0.3",
       "version": "4.0.3",
       "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-4.0.3.tgz",
       "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-4.0.3.tgz",
@@ -891,6 +1098,12 @@
         "url": "https://paulmillr.com/funding/"
         "url": "https://paulmillr.com/funding/"
       }
       }
     },
     },
+    "node_modules/commander": {
+      "version": "2.20.3",
+      "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz",
+      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+      "license": "MIT"
+    },
     "node_modules/csstype": {
     "node_modules/csstype": {
       "version": "3.1.3",
       "version": "3.1.3",
       "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
       "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
@@ -939,6 +1152,27 @@
         "node": ">=0.10"
         "node": ">=0.10"
       }
       }
     },
     },
+    "node_modules/dompurify": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmmirror.com/dompurify/-/dompurify-3.3.1.tgz",
+      "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==",
+      "license": "(MPL-2.0 OR Apache-2.0)",
+      "optionalDependencies": {
+        "@types/trusted-types": "^2.0.7"
+      }
+    },
+    "node_modules/draco3d": {
+      "version": "1.5.7",
+      "resolved": "https://registry.npmmirror.com/draco3d/-/draco3d-1.5.7.tgz",
+      "integrity": "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==",
+      "license": "Apache-2.0"
+    },
+    "node_modules/earcut": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/earcut/-/earcut-3.0.2.tgz",
+      "integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==",
+      "license": "ISC"
+    },
     "node_modules/echarts": {
     "node_modules/echarts": {
       "version": "5.6.0",
       "version": "5.6.0",
       "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.6.0.tgz",
       "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.6.0.tgz",
@@ -1034,6 +1268,12 @@
         "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
         "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
       }
       }
     },
     },
+    "node_modules/grapheme-splitter": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmmirror.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+      "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+      "license": "MIT"
+    },
     "node_modules/gsap": {
     "node_modules/gsap": {
       "version": "3.13.0",
       "version": "3.13.0",
       "resolved": "https://registry.npmmirror.com/gsap/-/gsap-3.13.0.tgz",
       "resolved": "https://registry.npmmirror.com/gsap/-/gsap-3.13.0.tgz",
@@ -1086,6 +1326,39 @@
         "node": ">=0.12.0"
         "node": ">=0.12.0"
       }
       }
     },
     },
+    "node_modules/jsep": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmmirror.com/jsep/-/jsep-1.4.0.tgz",
+      "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 10.16.0"
+      }
+    },
+    "node_modules/kdbush": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmmirror.com/kdbush/-/kdbush-4.0.2.tgz",
+      "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==",
+      "license": "ISC"
+    },
+    "node_modules/ktx-parse": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/ktx-parse/-/ktx-parse-1.1.0.tgz",
+      "integrity": "sha512-mKp3y+FaYgR7mXWAbyyzpa/r1zDWeaunH+INJO4fou3hb45XuNSwar+7llrRyvpMWafxSIi99RNFJ05MHedaJQ==",
+      "license": "MIT"
+    },
+    "node_modules/lerc": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/lerc/-/lerc-2.0.0.tgz",
+      "integrity": "sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==",
+      "license": "Apache-2.0"
+    },
+    "node_modules/long": {
+      "version": "5.3.2",
+      "resolved": "https://registry.npmmirror.com/long/-/long-5.3.2.tgz",
+      "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
+      "license": "Apache-2.0"
+    },
     "node_modules/magic-string": {
     "node_modules/magic-string": {
       "version": "0.30.21",
       "version": "0.30.21",
       "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz",
       "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz",
@@ -1094,6 +1367,12 @@
         "@jridgewell/sourcemap-codec": "^1.5.5"
         "@jridgewell/sourcemap-codec": "^1.5.5"
       }
       }
     },
     },
+    "node_modules/mersenne-twister": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz",
+      "integrity": "sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==",
+      "license": "MIT"
+    },
     "node_modules/meshoptimizer": {
     "node_modules/meshoptimizer": {
       "version": "0.18.1",
       "version": "0.18.1",
       "resolved": "https://registry.npmmirror.com/meshoptimizer/-/meshoptimizer-0.18.1.tgz",
       "resolved": "https://registry.npmmirror.com/meshoptimizer/-/meshoptimizer-0.18.1.tgz",
@@ -1143,6 +1422,18 @@
       "resolved": "https://registry.npmmirror.com/normalize.css/-/normalize.css-8.0.1.tgz",
       "resolved": "https://registry.npmmirror.com/normalize.css/-/normalize.css-8.0.1.tgz",
       "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg=="
       "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg=="
     },
     },
+    "node_modules/nosleep.js": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npmmirror.com/nosleep.js/-/nosleep.js-0.12.0.tgz",
+      "integrity": "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==",
+      "license": "MIT"
+    },
+    "node_modules/pako": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/pako/-/pako-2.1.0.tgz",
+      "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==",
+      "license": "(MIT AND Zlib)"
+    },
     "node_modules/picocolors": {
     "node_modules/picocolors": {
       "version": "1.1.1",
       "version": "1.1.1",
       "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
       "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
@@ -1193,6 +1484,45 @@
         "node": "^10 || ^12 || >=14"
         "node": "^10 || ^12 || >=14"
       }
       }
     },
     },
+    "node_modules/protobufjs": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/protobufjs/-/protobufjs-8.0.0.tgz",
+      "integrity": "sha512-jx6+sE9h/UryaCZhsJWbJtTEy47yXoGNYI4z8ZaRncM0zBKeRqjO2JEcOUYwrYGb1WLhXM1FfMzW3annvFv0rw==",
+      "hasInstallScript": true,
+      "license": "BSD-3-Clause",
+      "dependencies": {
+        "@protobufjs/aspromise": "^1.1.2",
+        "@protobufjs/base64": "^1.1.2",
+        "@protobufjs/codegen": "^2.0.4",
+        "@protobufjs/eventemitter": "^1.1.0",
+        "@protobufjs/fetch": "^1.1.0",
+        "@protobufjs/float": "^1.0.2",
+        "@protobufjs/inquire": "^1.1.0",
+        "@protobufjs/path": "^1.1.2",
+        "@protobufjs/pool": "^1.1.0",
+        "@protobufjs/utf8": "^1.1.0",
+        "@types/node": ">=13.7.0",
+        "long": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=12.0.0"
+      }
+    },
+    "node_modules/quickselect": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/quickselect/-/quickselect-3.0.0.tgz",
+      "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==",
+      "license": "ISC"
+    },
+    "node_modules/rbush": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/rbush/-/rbush-4.0.1.tgz",
+      "integrity": "sha512-IP0UpfeWQujYC8Jg162rMNc01Rf0gWMMAb2Uxus/Q0qOFw4lCcq6ZnQEZwUoJqWyUGJ9th7JjwI4yIWo+uvoAQ==",
+      "license": "MIT",
+      "dependencies": {
+        "quickselect": "^3.0.0"
+      }
+    },
     "node_modules/readdirp": {
     "node_modules/readdirp": {
       "version": "4.1.2",
       "version": "4.1.2",
       "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-4.1.2.tgz",
       "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-4.1.2.tgz",
@@ -1291,11 +1621,37 @@
         "node": ">=8.0"
         "node": ">=8.0"
       }
       }
     },
     },
+    "node_modules/topojson-client": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/topojson-client/-/topojson-client-3.1.0.tgz",
+      "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==",
+      "license": "ISC",
+      "dependencies": {
+        "commander": "2"
+      },
+      "bin": {
+        "topo2geo": "bin/topo2geo",
+        "topomerge": "bin/topomerge",
+        "topoquantize": "bin/topoquantize"
+      }
+    },
     "node_modules/tslib": {
     "node_modules/tslib": {
       "version": "2.3.0",
       "version": "2.3.0",
       "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
       "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
       "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
       "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
     },
     },
+    "node_modules/undici-types": {
+      "version": "7.18.2",
+      "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-7.18.2.tgz",
+      "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
+      "license": "MIT"
+    },
+    "node_modules/urijs": {
+      "version": "1.19.11",
+      "resolved": "https://registry.npmmirror.com/urijs/-/urijs-1.19.11.tgz",
+      "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==",
+      "license": "MIT"
+    },
     "node_modules/uuid": {
     "node_modules/uuid": {
       "version": "9.0.1",
       "version": "9.0.1",
       "resolved": "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz",
       "resolved": "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz",

+ 1 - 0
package.json

@@ -10,6 +10,7 @@
   },
   },
   "dependencies": {
   "dependencies": {
     "autofit.js": "^3.1.0",
     "autofit.js": "^3.1.0",
+    "cesium": "^1.138.0",
     "d3-geo": "^3.1.0",
     "d3-geo": "^3.1.0",
     "delaunator": "^5.0.0",
     "delaunator": "^5.0.0",
     "echarts": "^5.5.0",
     "echarts": "^5.5.0",

+ 162 - 0
src/views/waterResource/components/CenterIntroduction.vue

@@ -0,0 +1,162 @@
+<template>
+  <m-card title="中心简介" :width="398" :height="550">
+    <div class="carousel-container">
+      <div class="carousel-wrapper" :style="{ transform: `translateX(-${currentIndex * 100}%)` }">
+        <div class="carousel-item" v-for="(item, index) in carouselItems" :key="index">
+          <div v-if="item.image" class="carousel-image">
+            <img :src="item.image" :alt="item.title" />
+          </div>
+          <div class="carousel-content">
+            <h3>{{ item.title }}</h3>
+            <p>{{ item.description }}</p>
+          </div>
+        </div>
+      </div>
+      <div class="carousel-indicators">
+        <span 
+          v-for="(item, index) in carouselItems" 
+          :key="index"
+          class="indicator" 
+          :class="{ active: currentIndex === index }"
+          @click="currentIndex = index"
+        ></span>
+      </div>
+    </div>
+  </m-card>
+</template>
+<script setup>
+import { ref, onMounted, onBeforeUnmount } from "vue"
+import mCard from "@/components/mCard/index.vue"
+
+const currentIndex = ref(0)
+const carouselItems = ref([
+  {
+    title: "昆山监测中心简介",
+    description: "江苏省水文水资源勘测局昆山监测中心于 2023 年 2 月 10 日在淀山湖畔揭牌成立,是推动昆山水务水文深度融合、打造全国县级水文中心样板的核心载体,创新构建 \"省、市、县、乡镇\" 四级水文管理服务体系,打通苏州水文服务 \"最后一公里\";该中心负责区域内水位、流量、水质等多要素水文水资源及水生态的实时监测、预报预警与分析评价,为水旱灾害防御、水资源调度等提供技术支撑,助力长三角一体化示范区水土保持示范基地建设;建设至今已新建 35 处水位站、改造 27 处既有水位站、建成 4 处流量站与全省首个水文气象综合实验站,打造水务 \"四预\" 一体化平台,配备 9 名专职人员,依托基层水文管理站点实现全域覆盖,采用上级与地方资金 1:1 保障模式,持续深化融合协作,致力于打造可复制推广的县级水文样板,为县域水治理现代化提供 \"昆山经验\"。"
+  },
+  {
+    title: "水文监测网络",
+    description: "昆山水文监测网络已实现全域覆盖,包括57处水位站(其中35处新建、27处改造)和4处流量站,形成了完善的水文监测体系,为水资源管理和防洪决策提供科学依据。",
+    image: "https://trae-api-cn.mchost.guru/api/ide/v1/text_to_image?prompt=hydrological%20monitoring%20network%2C%20multiple%20stations%2C%20rivers%20and%20lakes%2C%20modern%20equipment%2C%20aerial%20view%2C%20blue%20theme&image_size=landscape_16_9"
+  },
+  {
+    title: "水文气象综合实验站",
+    description: "全省首个水文气象综合实验站在昆山建成,实现了水文与气象数据的深度融合,为精准预报预警提供了强大技术支撑。",
+    image: "https://trae-api-cn.mchost.guru/api/ide/v1/text_to_image?prompt=hydrological%20and%20meteorological%20experimental%20station%2C%20advanced%20sensors%2C%20data%20collection%20equipment%2C%20modern%20facility%2C%20professional%20setting&image_size=landscape_16_9"
+  },
+  {
+    title: "水务四预一体化平台",
+    description: "打造了先进的水务\"四预\"(预报、预警、预演、预案)一体化平台,实现了水文数据的可视化展示和智能分析,提升了水旱灾害防御能力。",
+    image: "https://trae-api-cn.mchost.guru/api/ide/v1/text_to_image?prompt=water%20management%20integrated%20platform%2C%20data%20visualization%2C%20control%20room%2C%20multiple%20screens%2C%20modern%20technology%2C%20blue%20theme&image_size=landscape_16_9"
+  }
+])
+
+let interval
+
+onMounted(() => {
+  startAutoPlay()
+})
+
+onBeforeUnmount(() => {
+  if (interval) {
+    clearInterval(interval)
+  }
+})
+
+function startAutoPlay() {
+  interval = setInterval(() => {
+    currentIndex.value = (currentIndex.value + 1) % carouselItems.value.length
+  }, 8000) // 8秒切换一次
+}
+</script>
+<style lang="scss">
+.carousel-container {
+  position: relative;
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+  padding: 12px;
+  box-sizing: border-box;
+  background: rgba(0, 180, 255, 0.05);
+  border-radius: 6px;
+}
+
+.carousel-wrapper {
+  display: flex;
+  transition: transform 0.5s ease;
+  height: calc(100% - 40px);
+}
+
+.carousel-item {
+  flex: 0 0 100%;
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+  gap: 15px;
+}
+
+.carousel-image {
+  flex: 1.2;
+  overflow: hidden;
+  border-radius: 8px;
+  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
+  img {
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+  }
+}
+
+.carousel-content {
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  color: #ffffff;
+  padding: 0 10px;
+  h3 {
+    font-size: 18px;
+    margin-bottom: 10px;
+    color: #30DCFF;
+    text-align: center;
+  }
+  p {
+    font-size: 14px;
+    line-height: 1.5;
+    opacity: 0.9;
+    text-align: left;
+    overflow-y: auto;
+  }
+}
+
+.carousel-indicators {
+  position: absolute;
+  bottom: 10px;
+  left: 50%;
+  transform: translateX(-50%);
+  display: flex;
+  gap: 8px;
+}
+
+.indicator {
+  width: 8px;
+  height: 8px;
+  border-radius: 50%;
+  background-color: rgba(255, 255, 255, 0.3);
+  cursor: pointer;
+  transition: all 0.3s ease;
+  &.active {
+    background-color: #30DCFF;
+    transform: scale(1.2);
+  }
+}
+
+.left-card {
+  transform: translateX(-150%);
+  opacity: 0;
+}
+
+.tall-card {
+  height: 550px;
+}
+</style>

+ 12 - 11
src/views/waterResource/index.vue

@@ -3,16 +3,19 @@
     <div class="left-column">
     <div class="left-column">
       <div class="left-column-3d">
       <div class="left-column-3d">
         <div class="module-card">
         <div class="module-card">
-          <SystemIntegration />
+          <CenterIntroduction />
         </div>
         </div>
         <div class="module-card">
         <div class="module-card">
-          <IntegrationEffect />
+          <SystemIntegration />
         </div>
         </div>
       </div>
       </div>
     </div>
     </div>
     <div class="right-column">
     <div class="right-column">
       <div class="right-column-3d">
       <div class="right-column-3d">
-        <div class="module-card full-height">
+        <div class="module-card">
+          <IntegrationEffect />
+        </div>
+        <div class="module-card narrow-height">
           <CollaborativeProcess />
           <CollaborativeProcess />
         </div>
         </div>
       </div>
       </div>
@@ -25,6 +28,7 @@ import SystemIntegration from "./components/SystemIntegration.vue"
 import CollaborativeProcess from "./components/CollaborativeProcess.vue"
 import CollaborativeProcess from "./components/CollaborativeProcess.vue"
 import IntegrationEffect from "./components/IntegrationEffect.vue"
 import IntegrationEffect from "./components/IntegrationEffect.vue"
 import DemonstrationBase from "./components/DemonstrationBase.vue"
 import DemonstrationBase from "./components/DemonstrationBase.vue"
+import CenterIntroduction from "./components/CenterIntroduction.vue"
 </script>
 </script>
 
 
 <style lang="scss">
 <style lang="scss">
@@ -35,7 +39,6 @@ import DemonstrationBase from "./components/DemonstrationBase.vue"
   right: 0;
   right: 0;
   bottom: 0;
   bottom: 0;
   z-index: 2;
   z-index: 2;
-  pointer-events: none;
 }
 }
 
 
 .left-column {
 .left-column {
@@ -66,9 +69,8 @@ import DemonstrationBase from "./components/DemonstrationBase.vue"
     border: 1px solid rgba(48, 220, 255, 0.3);
     border: 1px solid rgba(48, 220, 255, 0.3);
     border-radius: 10px;
     border-radius: 10px;
     box-shadow: 0 0 20px rgba(48, 220, 255, 0.1);
     box-shadow: 0 0 20px rgba(48, 220, 255, 0.1);
-    transform: translateX(-150%);
-    opacity: 0;
     &:first-child {
     &:first-child {
+      height: 550px;
       margin-top: -50px;
       margin-top: -50px;
     }
     }
   }
   }
@@ -92,6 +94,7 @@ import DemonstrationBase from "./components/DemonstrationBase.vue"
     display: flex;
     display: flex;
     flex-direction: column;
     flex-direction: column;
     justify-content: flex-start;
     justify-content: flex-start;
+    gap: 20px;
     transform: translate3d(0px, 0px, 0px) scaleX(1) scaleY(1) rotateX(0deg) rotateY(-6deg) rotateZ(0deg) skewX(0deg) skewY(0deg);
     transform: translate3d(0px, 0px, 0px) scaleX(1) scaleY(1) rotateX(0deg) rotateY(-6deg) rotateZ(0deg) skewX(0deg) skewY(0deg);
   }
   }
   .module-card {
   .module-card {
@@ -100,14 +103,12 @@ import DemonstrationBase from "./components/DemonstrationBase.vue"
     border: 1px solid rgba(48, 220, 255, 0.3);
     border: 1px solid rgba(48, 220, 255, 0.3);
     border-radius: 10px;
     border-radius: 10px;
     box-shadow: 0 0 20px rgba(48, 220, 255, 0.1);
     box-shadow: 0 0 20px rgba(48, 220, 255, 0.1);
-    transform: translateX(150%);
-    opacity: 0;
     &:first-child {
     &:first-child {
       margin-top: -30px;
       margin-top: -30px;
     }
     }
-    &.full-height {
-      height: 100%;
-      margin-top: -30px;
+    &.narrow-height {
+      height: 500px;
+      margin-top: 0;
       display: flex;
       display: flex;
       flex-direction: column;
       flex-direction: column;
       .m-card {
       .m-card {