浏览代码

合并加载方式代码

zhanhan 1 年之前
父节点
当前提交
85c86d39fd
共有 6 个文件被更改,包括 683 次插入113 次删除
  1. 72 64
      package-lock.json
  2. 4 2
      public/config.js
  3. 285 0
      src/components/map copy/AllCesiumMap.vue
  4. 253 0
      src/components/map copy/CesiumMap.vue
  5. 67 45
      src/components/map/CesiumMap.vue
  6. 2 2
      vue.config.js

+ 72 - 64
package-lock.json

@@ -548,6 +548,7 @@
       "version": "7.20.1",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz",
       "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.",
       "dev": true,
       "dependencies": {
         "@babel/helper-environment-visitor": "^7.18.9",
@@ -566,6 +567,7 @@
       "version": "7.18.6",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
       "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.",
       "dev": true,
       "dependencies": {
         "@babel/helper-create-class-features-plugin": "^7.18.6",
@@ -582,6 +584,7 @@
       "version": "7.18.6",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz",
       "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead.",
       "dev": true,
       "dependencies": {
         "@babel/helper-create-class-features-plugin": "^7.18.6",
@@ -618,6 +621,7 @@
       "version": "7.18.6",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz",
       "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead.",
       "dev": true,
       "dependencies": {
         "@babel/helper-plugin-utils": "^7.18.6",
@@ -634,6 +638,7 @@
       "version": "7.18.9",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
       "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.",
       "dev": true,
       "dependencies": {
         "@babel/helper-plugin-utils": "^7.18.9",
@@ -650,6 +655,7 @@
       "version": "7.18.6",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz",
       "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead.",
       "dev": true,
       "dependencies": {
         "@babel/helper-plugin-utils": "^7.18.6",
@@ -666,6 +672,7 @@
       "version": "7.18.9",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz",
       "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.",
       "dev": true,
       "dependencies": {
         "@babel/helper-plugin-utils": "^7.18.9",
@@ -682,6 +689,7 @@
       "version": "7.18.6",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
       "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.",
       "dev": true,
       "dependencies": {
         "@babel/helper-plugin-utils": "^7.18.6",
@@ -698,6 +706,7 @@
       "version": "7.18.6",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
       "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.",
       "dev": true,
       "dependencies": {
         "@babel/helper-plugin-utils": "^7.18.6",
@@ -714,6 +723,7 @@
       "version": "7.20.2",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz",
       "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.",
       "dev": true,
       "dependencies": {
         "@babel/compat-data": "^7.20.1",
@@ -733,6 +743,7 @@
       "version": "7.18.6",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
       "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.",
       "dev": true,
       "dependencies": {
         "@babel/helper-plugin-utils": "^7.18.6",
@@ -749,6 +760,7 @@
       "version": "7.18.9",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz",
       "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.",
       "dev": true,
       "dependencies": {
         "@babel/helper-plugin-utils": "^7.18.9",
@@ -766,6 +778,7 @@
       "version": "7.18.6",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
       "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.",
       "dev": true,
       "dependencies": {
         "@babel/helper-create-class-features-plugin": "^7.18.6",
@@ -782,6 +795,7 @@
       "version": "7.20.5",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz",
       "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.",
       "dev": true,
       "dependencies": {
         "@babel/helper-annotate-as-pure": "^7.18.6",
@@ -800,6 +814,7 @@
       "version": "7.18.6",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
       "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.",
       "dev": true,
       "dependencies": {
         "@babel/helper-create-regexp-features-plugin": "^7.18.6",
@@ -1985,12 +2000,6 @@
       "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==",
       "dev": true
     },
-    "node_modules/@popperjs/core": {
-      "name": "@sxzz/popperjs-es",
-      "version": "2.11.7",
-      "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
-      "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
-    },
     "node_modules/@sideway/address": {
       "version": "4.1.4",
       "resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.4.tgz",
@@ -2713,6 +2722,26 @@
         }
       }
     },
+    "node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15": {
+      "name": "vue-loader",
+      "version": "15.11.1",
+      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.11.1.tgz",
+      "integrity": "sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==",
+      "dev": true,
+      "dependencies": {
+        "@vue/component-compiler-utils": "^3.1.0",
+        "hash-sum": "^1.0.2",
+        "loader-utils": "^1.1.0",
+        "vue-hot-reload-api": "^2.3.0",
+        "vue-style-loader": "^4.1.0"
+      }
+    },
+    "node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/node_modules/hash-sum": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+      "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
+      "dev": true
+    },
     "node_modules/@vue/cli-shared-utils": {
       "version": "5.0.8",
       "resolved": "https://registry.npmmirror.com/@vue/cli-shared-utils/-/cli-shared-utils-5.0.8.tgz",
@@ -2979,38 +3008,6 @@
       "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz",
       "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg=="
     },
-    "node_modules/@vue/vue-loader-v15": {
-      "name": "vue-loader",
-      "version": "15.10.1",
-      "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.1.tgz",
-      "integrity": "sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA==",
-      "dev": true,
-      "dependencies": {
-        "@vue/component-compiler-utils": "^3.1.0",
-        "hash-sum": "^1.0.2",
-        "loader-utils": "^1.1.0",
-        "vue-hot-reload-api": "^2.3.0",
-        "vue-style-loader": "^4.1.0"
-      },
-      "peerDependencies": {
-        "css-loader": "*",
-        "webpack": "^3.0.0 || ^4.1.0 || ^5.0.0-0"
-      },
-      "peerDependenciesMeta": {
-        "cache-loader": {
-          "optional": true
-        },
-        "vue-template-compiler": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@vue/vue-loader-v15/node_modules/hash-sum": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz",
-      "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
-      "dev": true
-    },
     "node_modules/@vue/web-component-wrapper": {
       "version": "1.3.0",
       "resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz",
@@ -4180,6 +4177,7 @@
       "version": "0.15.1",
       "resolved": "https://registry.npmmirror.com/consolidate/-/consolidate-0.15.1.tgz",
       "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==",
+      "deprecated": "Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog",
       "dev": true,
       "dependencies": {
         "bluebird": "^3.1.1"
@@ -4988,6 +4986,12 @@
         "vue": "^3.2.0"
       }
     },
+    "node_modules/element-plus/node_modules/@popperjs/core": {
+      "name": "@sxzz/popperjs-es",
+      "version": "2.11.7",
+      "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
+      "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
+    },
     "node_modules/emoji-regex": {
       "version": "8.0.0",
       "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -12657,11 +12661,6 @@
       "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==",
       "dev": true
     },
-    "@popperjs/core": {
-      "version": "npm:@sxzz/popperjs-es@2.11.7",
-      "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
-      "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
-    },
     "@sideway/address": {
       "version": "4.1.4",
       "resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.4.tgz",
@@ -13259,6 +13258,29 @@
         "webpack-merge": "^5.7.3",
         "webpack-virtual-modules": "^0.4.2",
         "whatwg-fetch": "^3.6.2"
+      },
+      "dependencies": {
+        "@vue/vue-loader-v15": {
+          "version": "npm:vue-loader@15.11.1",
+          "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.11.1.tgz",
+          "integrity": "sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==",
+          "dev": true,
+          "requires": {
+            "@vue/component-compiler-utils": "^3.1.0",
+            "hash-sum": "^1.0.2",
+            "loader-utils": "^1.1.0",
+            "vue-hot-reload-api": "^2.3.0",
+            "vue-style-loader": "^4.1.0"
+          },
+          "dependencies": {
+            "hash-sum": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+              "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
+              "dev": true
+            }
+          }
+        }
       }
     },
     "@vue/cli-shared-utils": {
@@ -13502,27 +13524,6 @@
       "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz",
       "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg=="
     },
-    "@vue/vue-loader-v15": {
-      "version": "npm:vue-loader@15.10.1",
-      "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.1.tgz",
-      "integrity": "sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA==",
-      "dev": true,
-      "requires": {
-        "@vue/component-compiler-utils": "^3.1.0",
-        "hash-sum": "^1.0.2",
-        "loader-utils": "^1.1.0",
-        "vue-hot-reload-api": "^2.3.0",
-        "vue-style-loader": "^4.1.0"
-      },
-      "dependencies": {
-        "hash-sum": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz",
-          "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
-          "dev": true
-        }
-      }
-    },
     "@vue/web-component-wrapper": {
       "version": "1.3.0",
       "resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz",
@@ -15115,6 +15116,13 @@
         "lodash-unified": "^1.0.2",
         "memoize-one": "^6.0.0",
         "normalize-wheel-es": "^1.2.0"
+      },
+      "dependencies": {
+        "@popperjs/core": {
+          "version": "npm:@sxzz/popperjs-es@2.11.7",
+          "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
+          "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
+        }
       }
     },
     "emoji-regex": {

+ 4 - 2
public/config.js

@@ -3,7 +3,8 @@ var systemConfig = {
         lon: 112.52475547556074,
         lat: 37.86090299387082
     },
-    proxyUrl: 'http://121.43.55.7:10011/proxy?servertype={PROXYURL}&token='
+    proxyUrl: 'http://121.43.55.7:10011/proxy?servertype={PROXYURL}&token=',
+    single_map: "http://121.43.55.7:2107/"
 }
 
 // SkyScenery插件配置
@@ -11,4 +12,5 @@ var SkySceneryConfig = {
     userName: "user001",
     password: "1234567890",
     authUrl: '',// 留空
-}
+}
+

+ 285 - 0
src/components/map copy/AllCesiumMap.vue

@@ -0,0 +1,285 @@
+<template>
+  <el-dialog v-if="isShow"
+             :model-value="isShow"
+             title="全部预览"
+             :width="1200"
+             :close-on-click-modal="false"
+             :before-close="handleClose"
+  >
+    <div id="AmapBox">
+      <div id="AmapContainer"></div>
+      <div id="AnavItem" >
+        <el-table :show-header="false"
+                  :cell-style="{'background-color': '#393939','color': 'whitesmoke'}"
+                  :data="data"
+                  style="width: 100%;background-color: #393939;margin-top: 10px;max-height: 100%">
+          <el-table-column prop="key" label="名称">
+            <template #default="scope">
+              <span :title="scope.row.content">{{ scope.row.key }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="id" label="显示" width="70" >
+            <template #default="scope">
+              <el-switch
+                  v-model="scope.row.show"
+                  @change="handleTileVisible(scope.row)"
+                  active-color="#13ce66">
+              </el-switch>
+            </template>
+          </el-table-column>
+
+        </el-table>
+
+      </div>
+    </div>
+
+  </el-dialog>
+</template>
+
+<script>
+
+let viewer = null;
+export default {
+  data() {
+    return {
+      viewer: '',
+      data: [],
+      currItem: {},
+      history: new Map(),
+      cesiumConfig: {
+        animation: false, //动画控制不显示
+        timeline: false, //时间线不显示
+        fullscreenButton: false, //全屏按钮不显示
+        imageryProvider: new SkyScenery.SingleTileImageryProvider({
+          url: (function createColorCanvas(color) {
+            let width = 1,
+                height = 1;
+            let canvas = document.createElement("canvas");
+            canvas.width = width;
+            canvas.height = height;
+            let ctx = canvas.getContext("2d");
+            ctx.fillStyle = color;
+            ctx.fillRect(0, 0, width, height);
+            return canvas.toDataURL();
+          })("#ffffff00"),
+          rectangle: SkyScenery.Rectangle.fromDegrees(-180.0, -90.0, 180.0, 90.0),
+        }),
+        infoBox: false,
+        baseLayerPicker: false, //地图切换不显示
+        geocoder: false,
+        homeButton: false,
+        selectionIndicator: false, // 去除绿色选择框
+        sceneModePicker: false,
+        navigationHelpButton: false,
+        navigationInstructionsInitiallyVisible: false,
+        scene3DOnly: true, // 仅以3D渲染以节省GPU内存
+        useBrowserRecommendedResolution: true, // 以浏览器建议的分辨率渲染
+      },
+    }
+  },
+  props: {
+    isShow: Boolean,
+    type: Number, // 0-GeoJson、1-3DTiles、2-gltf/glb、3-水面、4-地图
+    item: Object,
+    close: Function
+  },
+  watch: {
+    "isShow": function (val) {
+      this.initMap();
+    }
+  },
+  mounted() {
+    let app = this;
+    this.data = JSON.parse(JSON.stringify(this.item))
+    this.$nextTick(() => {
+      app.initMap();
+    })
+  },
+  methods: {
+    initMap() {
+      let app = this;
+      viewer = new SkyScenery.Viewer('AmapContainer', app.cesiumConfig);
+      // 加载底图
+      viewer.imageryLayers.addImageryProvider(
+          new SkyScenery.ArcGisMapServerImageryProvider({
+            url: 'https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer',
+          })
+      )
+      window.viewer = viewer
+    },
+    loadingEntities(type) {
+      let app = this;
+      let tile = undefined;
+      if (!type || type === '') {
+        return;
+      }
+      // 加载3DTiles
+      else if (type === 1) {
+        let url = app.currItem.url + '/tileset.json'
+        tile = app.add3DTiles(url)
+      }
+      // 加载gltf/glb
+      else if (type === 2) {
+        tile = app.addGltf(app.currItem.url)
+      }
+      // 加载底图
+      else if (type === 4) {
+        this.addMap(app.currItem.url, app.currItem.type)
+      }
+      if (tile) {
+        this.history.set(app.currItem.url, tile)
+      }
+    },
+    handleTileVisible(row) {
+      let flag = row.show;
+      let keys = this.history.keys();
+      if (this.type != 1) {
+        for (let i = 0; i < this.data.length; i++) {
+          this.data[i]['show'] = false;
+        }
+        for (let i = 0; i < keys.length; i++) {
+          this.history.get(keys[i]).show = false;
+        }
+      }
+      row.show = flag;
+      this.currItem = row;
+      if (this.history.has(row.url)) {
+        this.history.get(row.url).show = flag;
+      } else if (flag) {
+        this.loadingEntities(this.type)
+      }
+    },
+    addMap(url, type) {
+      viewer.imageryLayers.removeAll(true);
+      if(type==''){
+        viewer.imageryLayers.addImageryProvider(
+            new SkyScenery.ArcGisMapServerImageryProvider({
+              url: url,
+            })
+        )
+      } else if(type=='xyz'){
+        viewer.imageryLayers.addImageryProvider(
+            new SkyScenery.UrlTemplateImageryProvider({
+              url: url + '/{z}/{x}/{y}.png',
+              fileExtension:'png'
+            })
+        )
+      }
+    },
+    // 添加模型
+    add3DTiles(url) {
+      let app = this;
+      let tile = undefined;
+      if (!url || url=='') {
+        app.$message.warning('请检查模型地址');
+        //app.handleClose()
+        return;
+      }
+      tile = SkyScenery.add3DTilesData(url, viewer);
+      tile.tileFailed.addEventListener(function (err) {
+        app.$message({message: '模型加载失败', type: 'error'});
+        //app.handleClose()
+      })
+      tile.readyPromise.then(function () {
+        viewer.zoomTo(tile, {
+          heading: 2.718565,
+          pitch: -0.415366,
+          roll: 0.0,
+        });
+      }).catch(err => {
+        app.$message({
+          dangerouslyUseHTMLString: true,
+          message: '模型加载失败,' + err.statusCode + ':' + err.response,
+          type: 'error'
+        });
+        //app.handleClose()
+      });
+      return tile;
+    },
+    // 添加gltf
+    addGltf(url) {
+      let app = this;
+      if (!url || url=='') {
+        app.$message.warning('请检查模型地址');
+        //app.handleClose()
+        return;
+      }
+      let modelObj = new SkyScenery.singleModelBindClick(viewer, {
+        url: url,
+        lon: systemConfig.mapCenter.lon,
+        lat: systemConfig.mapCenter.lat,
+        height: 10,
+        heading: 0,
+        pitch: -90,
+        roll: 0,
+        info: {}
+      })
+      let origin = SkyScenery.Cartesian3.fromDegrees(systemConfig.mapCenter.lon, systemConfig.mapCenter.lat, 10);
+      viewer.camera.flyTo({
+        destination: origin,
+        orientation: {
+          heading: SkyScenery.Math.toRadians(0), // 方向
+          pitch: SkyScenery.Math.toRadians(-90), // 倾斜角度
+          roll: SkyScenery.Math.toRadians(0),
+        },
+      });
+      return modelObj;
+    },
+    flyToPrimitive(obj) {
+      let east = obj.geometryInstances.geometry.rectangle.east;
+      let north = obj.geometryInstances.geometry.rectangle.north;
+      let west = obj.geometryInstances.geometry.rectangle.west;
+      let south = obj.geometryInstances.geometry.rectangle.south;
+      let lon = (east+west)/2;
+      let lat = (north+south)/2;
+      viewer.camera.flyTo({
+        destination: SkyScenery.Cartesian3.fromDegrees(SkyScenery.Math.toDegrees(lon),SkyScenery.Math.toDegrees(lat), 338.8293456247198),
+        orientation: {
+          heading: SkyScenery.Math.toRadians(0),
+          pitch: SkyScenery.Math.toRadians(-90),
+          roll: 0,
+        }
+      })
+    },
+    handleClose() {
+      this.close(false)
+    }
+  }
+}
+</script>
+
+<style scoped>
+#AmapBox {
+  width: 100%;
+  height: 100%;
+  position: relative;
+}
+
+#AmapContainer {
+  width: 100%;
+  height: 100%;
+}
+
+#AnavItem{
+  position: absolute;
+  top: 18%;
+  left: 1%;
+  width: 20%;
+  height: 65%;
+  color: white;
+  border: 1px solid grey;
+  border-radius: 10px;
+  background-color: #393939;
+}
+</style>
+
+<style>
+/*隐藏 cesium logo*/
+.cesium-widget-credits {
+  display: none !important;
+}
+
+.el-dialog__body {
+  padding-top: 10px;
+}
+</style>

+ 253 - 0
src/components/map copy/CesiumMap.vue

@@ -0,0 +1,253 @@
+<template>
+  <el-dialog v-if="isShow"
+             :model-value="isShow"
+             title="地理信息"
+             :width="1200"
+             :close-on-click-modal="false"
+             :before-close="handleClose"
+
+  >
+    <div id="mapBox">
+      <div id="mapContainer"></div>
+    </div>
+
+  </el-dialog>
+</template>
+
+<script>
+
+let viewer = null;
+export default {
+  data() {
+    return {
+      viewer: '',
+      centerPoint: {},
+      cesiumConfig: {
+        animation: false, //动画控制不显示
+        timeline: false, //时间线不显示
+        fullscreenButton: false, //全屏按钮不显示
+        imageryProvider: new SkyScenery.SingleTileImageryProvider({
+          url: (function createColorCanvas(color) {
+            let width = 1,
+                height = 1;
+            let canvas = document.createElement("canvas");
+            canvas.width = width;
+            canvas.height = height;
+            let ctx = canvas.getContext("2d");
+            ctx.fillStyle = color;
+            ctx.fillRect(0, 0, width, height);
+            return canvas.toDataURL();
+          })("#ffffff00"),
+          rectangle: SkyScenery.Rectangle.fromDegrees(-180.0, -90.0, 180.0, 90.0),
+        }),
+        infoBox: false,
+        baseLayerPicker: false, //地图切换不显示
+        geocoder: false,
+        homeButton: false,
+        selectionIndicator: false, // 去除绿色选择框
+        sceneModePicker: false,
+        navigationHelpButton: false,
+        navigationInstructionsInitiallyVisible: false,
+        scene3DOnly: true, // 仅以3D渲染以节省GPU内存
+        useBrowserRecommendedResolution: true, // 以浏览器建议的分辨率渲染
+      },
+    }
+  },
+  props: {
+    isShow: Boolean,
+    type: Number, // 0-GeoJson、1-3DTiles、2-gltf、3-水面、4-地图
+    item: Object,
+    close: Function
+  },
+  watch: {
+    "isShow": function (val) {
+      this.initMap();
+    }
+  },
+  mounted() {
+    let app = this;
+    this.$nextTick(() => {
+      app.initMap();
+    })
+  },
+  methods: {
+    initMap() {
+      let app = this;
+      viewer = new SkyScenery.Viewer('mapContainer', app.cesiumConfig);
+      // 加载底图
+      if (app.type!==4) {
+        viewer.imageryLayers.addImageryProvider(
+            new SkyScenery.ArcGisMapServerImageryProvider({
+              url: 'https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer',
+            })
+        )
+      }
+      window.viewer = viewer
+      // 加载模型
+      app.loadingEntities(app.type);
+    },
+    loadingEntities(type) {
+      let app = this;
+      if (!type || type === '') {
+        return;
+      }
+      // 加载GeoJson
+      if (type === 0) {
+        let obj = {"type": "Feature", "geometry": JSON.parse(app.item), "properties": {}}
+        this.addGeoJson(obj);
+      }
+      // 加载3DTiles
+      else if (type === 1) {
+        let url = app.item.url+'/tileset.json'
+        app.add3DTiles(url)
+      }
+      // 加载gltf
+      else if (type === 2) {
+        app.addGltf(app.item.url)
+      }
+      // 加载底图
+      else if (type === 4) {
+        app.addMap(app.item.url, app.item.type);
+      }
+    },
+    // 加载GeoJson
+    addGeoJson(obj) {
+      let app = this;
+      let res = SkyScenery.GeoJsonDataSource.load(obj, {
+        stroke: SkyScenery.Color.fromCssColorString('#ff0000'),
+        fill: SkyScenery.Color.RED.withAlpha(0.3),
+        strokeWidth: 5,
+        clampToGround: true,
+      })
+      viewer.dataSources.add(res);
+      res.then(() => {
+        viewer.zoomTo(res, {heading: 2.718565, pitch: -0.415366, roll: 0.0,});
+      }).catch(() => {
+        app.$message({message: '加载失败', type: 'error'})
+      })
+    },
+    // 添加模型
+    add3DTiles(url) {
+      let app = this;
+      let tile = undefined;
+      if (!url || url=='') {
+        app.$message.warning('请检查模型地址');
+        app.handleClose()
+        return;
+      }
+      tile = SkyScenery.add3DTilesData(url, viewer);
+      tile.tileFailed.addEventListener(function (err) {
+        app.$message({message: '模型加载失败', type: 'error'});
+        app.handleClose()
+      })
+      tile.readyPromise.then(function () {
+        viewer.zoomTo(tile, {
+          heading: 2.718565,
+          pitch: -0.415366,
+          roll: 0.0,
+        });
+      }).catch(err => {
+        app.$message({
+          dangerouslyUseHTMLString: true,
+          message: '模型加载失败,' + err.statusCode + ':' + err.response,
+          type: 'error'
+        });
+        app.handleClose()
+      });
+      return tile;
+    },
+    // 添加gltf
+    addGltf(url) {
+      let app = this;
+      if (!url || url=='') {
+        app.$message.warning('请检查模型地址');
+        app.handleClose()
+        return;
+      }
+      let modelObj = new SkyScenery.singleModelBindClick(viewer, {
+        url: url,
+        lon: systemConfig.mapCenter.lon,
+        lat: systemConfig.mapCenter.lat,
+        height: 10,
+        heading: 0,
+        pitch: -90,
+        roll: 0,
+        info: {}
+      })
+      let origin = SkyScenery.Cartesian3.fromDegrees(systemConfig.mapCenter.lon, systemConfig.mapCenter.lat, 10);
+      viewer.camera.flyTo({
+        destination: origin,
+        orientation: {
+          heading: SkyScenery.Math.toRadians(0), // 方向
+          pitch: SkyScenery.Math.toRadians(-90), // 倾斜角度
+          roll: SkyScenery.Math.toRadians(0),
+        },
+      });
+    },
+    addMap(url, type) {
+      debugger
+      viewer.imageryLayers.removeAll(true);
+      if(type==''){
+        viewer.imageryLayers.addImageryProvider(
+            new SkyScenery.ArcGisMapServerImageryProvider({
+              url: url,
+            })
+        )
+      } else if(type=='xyz'){
+        viewer.imageryLayers.addImageryProvider(
+          new SkyScenery.UrlTemplateImageryProvider({
+              url: url + '/{z}/{x}/{y}.png',
+              fileExtension:'png'
+          })
+        )
+      }
+    },
+    flyToPrimitive(obj) {
+      let east = obj.geometryInstances.geometry.rectangle.east;
+      let north = obj.geometryInstances.geometry.rectangle.north;
+      let west = obj.geometryInstances.geometry.rectangle.west;
+      let south = obj.geometryInstances.geometry.rectangle.south;
+      let lon = (east+west)/2;
+      let lat = (north+south)/2;
+      viewer.camera.flyTo({
+        destination: SkyScenery.Cartesian3.fromDegrees(SkyScenery.Math.toDegrees(lon),SkyScenery.Math.toDegrees(lat), 338.8293456247198),
+        orientation: {
+          heading: SkyScenery.Math.toRadians(0),
+          pitch: SkyScenery.Math.toRadians(-90),
+          roll: 0,
+        }
+      })
+    },
+    handleClose() {
+      this.close(false)
+    }
+  }
+}
+</script>
+
+<style scoped>
+#mapBox {
+  width: 100%;
+  height: 100%;
+}
+
+#mapContainer {
+  width: 100%;
+  height: 100%;
+}
+
+#mapOperation {
+  margin-bottom: 10px;
+}
+</style>
+
+<style>
+/*隐藏 cesium logo*/
+.cesium-widget-credits {
+  display: none !important;
+}
+
+.el-dialog__body {
+  padding-top: 10px;
+}
+</style>

+ 67 - 45
src/components/map/CesiumMap.vue

@@ -1,14 +1,11 @@
 <template>
-  <el-dialog v-if="isShow"
-             :model-value="isShow"
-             title="地理信息"
-             :width="1200"
-             :close-on-click-modal="false"
-             :before-close="handleClose"
-
-  >
+  <el-dialog v-if="isShow" :model-value="isShow" title="地理信息" :width="1200" :close-on-click-modal="false"
+    :before-close="handleClose">
     <div id="mapBox">
-      <div id="mapContainer"></div>
+
+<!--       原来的直接使用的,修改1111111,将第一行放开,第二行注释-->
+<!--       <div id="mapContainer"></div>-->
+      <iframe :src="src" frameborder="0"></iframe>
     </div>
 
   </el-dialog>
@@ -20,6 +17,7 @@ let viewer = null;
 export default {
   data() {
     return {
+      src: systemConfig.single_map,
       viewer: '',
       centerPoint: {},
       cesiumConfig: {
@@ -29,7 +27,7 @@ export default {
         imageryProvider: new SkyScenery.SingleTileImageryProvider({
           url: (function createColorCanvas(color) {
             let width = 1,
-                height = 1;
+              height = 1;
             let canvas = document.createElement("canvas");
             canvas.width = width;
             canvas.height = height;
@@ -73,16 +71,18 @@ export default {
   methods: {
     initMap() {
       let app = this;
-      viewer = new SkyScenery.Viewer('mapContainer', app.cesiumConfig);
-      // 加载底图
-      if (app.type!==4) {
-        viewer.imageryLayers.addImageryProvider(
-            new SkyScenery.ArcGisMapServerImageryProvider({
-              url: 'https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer',
-            })
-        )
-      }
-      window.viewer = viewer
+
+      // 原来的直接使用的,修改222222
+      // viewer = new SkyScenery.Viewer('mapContainer', app.cesiumConfig);
+      // // 加载底图
+      // if (app.type !== 4) {
+      //   viewer.imageryLayers.addImageryProvider(
+      //     new SkyScenery.ArcGisMapServerImageryProvider({
+      //       url: 'https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer',
+      //     })
+      //   )
+      // }
+      // window.viewer = viewer
       // 加载模型
       app.loadingEntities(app.type);
     },
@@ -93,13 +93,15 @@ export default {
       }
       // 加载GeoJson
       if (type === 0) {
-        let obj = {"type": "Feature", "geometry": JSON.parse(app.item), "properties": {}}
+        let obj = { "type": "Feature", "geometry": JSON.parse(app.item), "properties": {} }
         this.addGeoJson(obj);
       }
       // 加载3DTiles
       else if (type === 1) {
-        let url = app.item.url+'/tileset.json'
-        app.add3DTiles(url)
+        // let url = app.item.url + '/tileset.json'
+        // app.add3DTiles(url)
+        // http://localhost:8080/map-server/index.html?dataType=threeD&url=http://1.119.143.102:9002/model_data/750/qinghulu/output/tileset.json
+        this.src = systemConfig.single_map + "?dataType=threeD&url=" + app.item.url + '/tileset.json'
       }
       // 加载gltf
       else if (type === 2) {
@@ -121,23 +123,23 @@ export default {
       })
       viewer.dataSources.add(res);
       res.then(() => {
-        viewer.zoomTo(res, {heading: 2.718565, pitch: -0.415366, roll: 0.0,});
+        viewer.zoomTo(res, { heading: 2.718565, pitch: -0.415366, roll: 0.0, });
       }).catch(() => {
-        app.$message({message: '加载失败', type: 'error'})
+        app.$message({ message: '加载失败', type: 'error' })
       })
     },
     // 添加模型
     add3DTiles(url) {
       let app = this;
       let tile = undefined;
-      if (!url || url=='') {
+      if (!url || url == '') {
         app.$message.warning('请检查模型地址');
         app.handleClose()
         return;
       }
       tile = SkyScenery.add3DTilesData(url, viewer);
       tile.tileFailed.addEventListener(function (err) {
-        app.$message({message: '模型加载失败', type: 'error'});
+        app.$message({ message: '模型加载失败', type: 'error' });
         app.handleClose()
       })
       tile.readyPromise.then(function () {
@@ -159,7 +161,7 @@ export default {
     // 添加gltf
     addGltf(url) {
       let app = this;
-      if (!url || url=='') {
+      if (!url || url == '') {
         app.$message.warning('请检查模型地址');
         app.handleClose()
         return;
@@ -185,21 +187,36 @@ export default {
       });
     },
     addMap(url, type) {
+// 原来的直接使用的,修改3333333
 
-      viewer.imageryLayers.removeAll(true);
-      if(type==''){
-        viewer.imageryLayers.addImageryProvider(
-            new SkyScenery.ArcGisMapServerImageryProvider({
-              url: url,
-            })
-        )
-      } else if(type=='xyz'){
-        viewer.imageryLayers.addImageryProvider(
-          new SkyScenery.UrlTemplateImageryProvider({
-              url: url + '/{z}/{x}/{y}.png',
-              fileExtension:'png'
-          })
-        )
+      // viewer.imageryLayers.removeAll(true);
+      // if(type==''){
+      //   viewer.imageryLayers.addImageryProvider(
+      //       new SkyScenery.ArcGisMapServerImageryProvider({
+      //         url: url,
+      //       })
+      //   )
+      // } else if(type=='xyz') {
+      //   viewer.imageryLayers.addImageryProvider(
+      //       new SkyScenery.UrlTemplateImageryProvider({
+      //         url: url + '/{z}/{x}/{y}.png',
+      //         fileExtension: 'png'
+      //       })
+      //   )
+      // }
+
+      // 二维加载
+//       if (type == '') {
+//         this.src = systemConfig.single_map + "?dataType=twoD&mapType=twoD&mapserverType=arcgis&url=" + url
+//       } else if (type == 'xyz') {
+//         this.src = systemConfig.single_map + "?dataType=twoD&mapType=twoD&mapserverType=xyz&url=" + url +"/{z}/{x}/{y}.png";
+//       }
+
+      // 三维加载
+      if (type == '') {
+        this.src = systemConfig.single_map + "?dataType=twoD&mapType=threeD&mapserverType=arcgis&url=" + url
+      } else if (type == 'xyz') {
+        this.src = systemConfig.single_map + "?dataType=twoD&mapType=threeD&mapserverType=xyz&url=" + url +"/{z}/{x}/{y}.png";
       }
     },
     flyToPrimitive(obj) {
@@ -207,10 +224,10 @@ export default {
       let north = obj.geometryInstances.geometry.rectangle.north;
       let west = obj.geometryInstances.geometry.rectangle.west;
       let south = obj.geometryInstances.geometry.rectangle.south;
-      let lon = (east+west)/2;
-      let lat = (north+south)/2;
+      let lon = (east + west) / 2;
+      let lat = (north + south) / 2;
       viewer.camera.flyTo({
-        destination: SkyScenery.Cartesian3.fromDegrees(SkyScenery.Math.toDegrees(lon),SkyScenery.Math.toDegrees(lat), 338.8293456247198),
+        destination: SkyScenery.Cartesian3.fromDegrees(SkyScenery.Math.toDegrees(lon), SkyScenery.Math.toDegrees(lat), 338.8293456247198),
         orientation: {
           heading: SkyScenery.Math.toRadians(0),
           pitch: SkyScenery.Math.toRadians(-90),
@@ -231,6 +248,11 @@ export default {
   height: 100%;
 }
 
+iframe {
+  width: 100%;
+  height:500px;
+}
+
 #mapContainer {
   width: 100%;
   height: 100%;

+ 2 - 2
vue.config.js

@@ -6,8 +6,8 @@ module.exports = defineConfig({
     port: 8080,
     proxy: {
       '/proxy_proxy/': {
-        // target: 'http://121.43.55.7:10011/proxy',
-        target: 'http://127.0.0.1:10093',
+        target: 'http://121.43.55.7:10011/proxy',
+        // target: 'http://127.0.0.1:10093',
         changeOrigin: true,
         secure: false,
         pathRewrite: {