yang1998 il y a 1 mois
Parent
commit
5eb95191c7

+ 7 - 0
.env.development

@@ -7,6 +7,13 @@ VITE_APP_ENV = 'development'
 # 若依管理系统/开发环境
 VITE_APP_BASE_API = 'http://10.1.161.156:4000'
 
+#map服务地址
+VITE_MAP_BASE_URL = 'http://10.83.241.184:8080/map_widget/#/mapkjk?theme=dark&view=3D&basemap=dark'
+#VITE_MAP_BASE_URL = 'http://10.83.246.99:8080/map_widget_vue/#/mapyingji?view=3D&theme=dark'
+
+#物面板服务IP
+VITE_LOCAL_CONTENT_URL = 'https://firstmap.smi.sh.cegn.cn'
+
 
 
 

+ 8 - 1
.env.production

@@ -10,4 +10,11 @@ VITE_APP_ENV = 'production'
 VITE_APP_BASE_API = 'http://58.34.215.18:4000/catalog-api'
 
 # 是否在打包时开启压缩,支持 gzip 和 brotli
-VITE_BUILD_COMPRESS = gzip
+VITE_BUILD_COMPRESS = gzip
+
+#map服务地址
+VITE_MAP_BASE_URL = 'http://10.83.241.184:8080/map_widget/#/mapkjk?theme=dark&view=3D&basemap=dark'
+#VITE_MAP_BASE_URL = 'http://10.83.246.99:8080/map_widget_vue/#/mapyingji?view=3D&theme=dark'
+
+#物面板服务IP
+VITE_LOCAL_CONTENT_URL = 'https://firstmap.smi.sh.cegn.cn'

+ 42 - 4
src/components/AreaLayerSwitch/index.vue

@@ -10,7 +10,7 @@
       <div class="region">
         <div class="region_shi" :class="{ region_shi_active: activeIndex === '上海市' }" @click="btnClick('上海市')"><div>上海市</div></div>
         <div class="region_pianqu">
-          <div class="region_pianqu_btn" :class="{ region_pianqu_btn_active: activeIndex === index }" v-for="(item, index) in bottons" :key="item.name" @click="btnClick(index, item)">
+          <div class="region_pianqu_btn" :class="{ region_pianqu_btn_active: activeIndex === index }" v-for="(item, index) in bottons" :key="item.name" @click="btnClick(index, item)" @dblclick="btnDblClick(index, item)" >
             <div>{{ item.name }}</div>
           </div>
         </div>
@@ -28,8 +28,9 @@
 </template>
 <script setup>
 import { ref, watch, computed, reactive, toRefs, onBeforeMount, onMounted } from 'vue'
+import {changeStreet, initDistrict} from "@/utils/map/baseMethod.js";
 const emit = defineEmits(['btnClick'])
-const activeIndex = ref(0)
+const activeIndex = ref("上海市")
 
 const bottons = ref([
   { id: 1, name: '浦东新区', active: true },
@@ -50,10 +51,47 @@ const bottons = ref([
   { id: 16, name: '崇明区', active: false }
 ])
 
+
+const clickTimer = ref(null)
+
 function btnClick(index, item) {
-  console.log(index, 'index')
+  //判断点击的是上海市
+  if(index === "上海市") {
+    activeIndex.value = index
+    initDistrict()
+    return
+  }
+
+  if(clickTimer.value) {
+    clearTimeout(clickTimer.value)
+  }
+
+  clickTimer.value = setTimeout(() => {
+    console.log(index, 'index', item)
+
+    if(activeIndex.value !== index){
+      activeIndex.value = index
+      emit('btnClick', item)
+
+      changeStreet(item.name, false, true)
+    }else{
+      activeIndex.value = "上海市"
+      initDistrict()
+    }
+
+  }, 300)
+
+}
+function btnDblClick(index, item) {
+  if(clickTimer.value) {
+    clearTimeout(clickTimer.value)
+  }
+
+  console.log("btnDblClick"+index, 'index')
   activeIndex.value = index
-  emit('btnClick', item)
+  emit('btnDblClick', item)
+
+  changeStreet(item.name, true, true)
 }
 </script>
 <style lang="scss" scoped>

+ 70 - 0
src/components/Map.vue

@@ -0,0 +1,70 @@
+<template>
+  <div id="mapView">
+    <iframe id="i_map" name="i_map" frameborder="0"></iframe>
+  </div>
+</template>
+
+<script>
+import CityGis from '@/utils/map/CityGis.Bridge.js';
+import { myBridge } from '@/utils/map/map';
+import {addPointSearch, setCamera} from "@/utils/map/AddLayer.js";
+import {initDistrict} from "@/utils/map/baseMethod.js";
+let bridge;
+export default {
+  name: 'MyMap',
+  data() {
+    return {
+      isAll: true,
+      isJacf: false,
+    };
+  },
+  mounted() {
+    this.createMap();
+  },
+  methods: {
+    createMap() {
+      this.$nextTick(() => {
+        myBridge.bridgeContent = bridge = new CityGis.Bridge({
+          id: 'i_map',
+          url: import.meta.env.VITE_MAP_BASE_URL,
+          onReady: function () {},
+        });
+        bridge.addEventListener((arg) => {
+          console.log(arg,'arg');
+          switch (arg.action) {
+            case 'MapIsReady':
+              console.log('map 准备好了');
+              console.log('map 准备好了1');
+              setTimeout(() => {
+                initDistrict()
+                addPointSearch();
+              }, 1000);
+
+              break;
+          }
+        });
+      });
+    },
+  },
+  computed: {},
+};
+</script>
+
+<style lang="scss" scoped>
+#mapView {
+  position: absolute;
+  top: 0;
+  left: 0;
+  height: 100%;
+  width: 100%;
+  background-color: #235f61;
+  z-index: 0;
+}
+
+#i_map {
+  padding: 0;
+  margin: 0;
+  height: 100%;
+  width: 100%;
+}
+</style>

+ 403 - 0
src/utils/map/AddLayer.js

@@ -0,0 +1,403 @@
+import { myBridge } from './map';
+import { handleRegionLayerWithOutLabel } from '@/utils/map/baseMethod.js';
+
+export function invokeParams(ActionName, params) {
+  if (import.meta.env.VITE_OPEN_UE === 'open') return;
+  console.log(ActionName, params);
+  myBridge.bridgeContent.Invoke({
+    ActionName: ActionName,
+    Parameters: {
+      ...params,
+    },
+  });
+}
+
+export function changeViewType(ViewType) {
+  let d = ViewType || '2D';
+  invokeParams('ChangeViewType', {
+    type: d,
+  });
+  // if (d === '2D') {
+  //   addPointSearch();
+  // }
+  addPointSearch();
+}
+
+export function setCamera(params) {
+  invokeParams(
+    'SetCamera',
+    params,
+    // ||{
+    //   position: {
+    //     spatialReference: {
+    //       wkid: 102100
+    //     },
+    //     x: 2598.4722313159023,
+    //     y: -927.2818635861828,
+    //     z: 73.09940296852281
+    //   },
+    //   heading: 266.84124349722583,
+    //   tilt: 70.95259138002815
+    // }
+  );
+}
+export function addMyGraph(params) {
+  invokeParams('AddGraphic', params);
+}
+
+export function addMyGraphByData_TJ(params, bol = true) {
+  handleRegionLayerWithOutLabel(bol);
+
+  invokeParams('AddGraphicByData_TJ', {
+    ...params,
+    status: bol,
+  });
+}
+export function addPointMap(pointsArr) {
+  invokeParams('AddGraphic', {
+    is_clear: false,
+    is_goto: true,
+    is_edit: false,
+    is_temp: true,
+    type: 'points',
+    data: pointsArr,
+    attributes: [],
+    symbol: {
+      type: 'simple-marker',
+      color: '#fff',
+      size: 14,
+    },
+  });
+}
+
+export function addPointMapSingle(pointsArr, is_goto) {
+  invokeParams('AddGraphic', {
+    is_clear: true,
+    is_goto: is_goto,
+    type: 'point',
+    data: pointsArr,
+    attributes: [],
+    symbol: {
+      type: 'picture-marker',
+      url: 'images/marker.png',
+      width: '50px',
+      height: '50px',
+    },
+    // layerID: 'tempLayer'
+  });
+}
+
+export function gldbMap(isShow, leadingLayers, trailingLayers) {
+  console.log('dasdasdassad', isShow, leadingLayers, trailingLayers);
+  invokeParams('ChangeShowSwipe', {
+    status: isShow ? 'show' : 'hide',
+    leadingLayers: trailingLayers,
+    trailingLayers: leadingLayers,
+    direction: 'horizontal',
+  });
+}
+
+export function emptyAllLayers() {
+  invokeParams('ClearMapLayers', {});
+}
+
+export function SetExtent(params) {
+  invokeParams('SetExtent', {
+    ...params,
+  });
+}
+
+export function addPolygons(geos, is_clear, layerID, symbol) {
+  invokeParams('AddGraphic', {
+    type: 'polygons',
+    is_edit: false,
+    is_temp: true,
+    is_clear: is_clear,
+    is_goto: false,
+    layerID: layerID,
+    data: geos,
+    symbol: symbol || {
+      type: 'simple-fill',
+      color: [239, 132, 9, 0.7],
+      outline: {
+        color: [255, 255, 255, 1],
+        width: 1,
+      },
+    },
+  });
+}
+
+export function layerControl(layerID, visible, opacity = 1, where = '1=1') {
+  invokeParams('LayerControl', {
+    title: layerID,
+    visible: visible,
+    opacity: opacity,
+    islegend: false,
+    where: where,
+  });
+}
+
+export function clearTownAndVillageMap() {
+  clearMap();
+  // layerControl('temp',false)
+}
+export function clearMap(params = {}) {
+  invokeParams('ClearMap', {
+    is_draw: true,
+    is_search: true,
+    is_position: true,
+    ...params,
+  });
+}
+
+export function addPointMarker(pointsArr, href, size) {
+  invokeParams('AddGraphic', {
+    is_clear: false,
+    is_goto: false,
+    type: 'point',
+    data: pointsArr,
+    attributes: [],
+    symbol: {
+      type: 'picture-marker',
+      url: href,
+      width: size,
+      height: size,
+    },
+    is_temp: true,
+    layerID: 'zhgc_temp',
+  });
+}
+
+export function addPointMarkerImage(
+  layerID,
+  pointsArr = [],
+  href = '',
+  size = 20,
+  is_clear = false,
+  attributes = {},
+) {
+  invokeParams('AddGraphic', {
+    is_clear: is_clear,
+    is_goto: false,
+    type: 'point',
+    data: pointsArr,
+    attributes: attributes,
+    symbol: {
+      type: 'picture-marker',
+      url: href,
+      width: size,
+      height: size,
+    },
+    is_temp: true,
+    layerID: layerID,
+  });
+}
+
+export function addMultiPointsMarkerImage(params, href = '', size = 20) {
+  invokeParams('AddGraphic', {
+    is_clear: false,
+    is_goto: false,
+    type: 'points',
+    data: [],
+    attributes: null,
+    symbol: {
+      type: 'picture-marker',
+      url: href,
+      width: size,
+      height: size,
+    },
+    is_temp: true,
+    layerID: 'addImagePoint',
+    ...params,
+  });
+}
+
+export function layerDef(title, sql, type = 'feature') {
+  invokeParams('LayerDefinitions', {
+    title,
+    sql,
+    type,
+  });
+}
+
+export function positionByPoint(x, y, is_goto = false, is_draw = true, size = 50, scale = 1000) {
+  invokeParams('Position', {
+    type: 'point',
+    position: [
+      {
+        id: '4065',
+        mapx: x,
+        mapy: y,
+      },
+    ],
+
+    is_draw: is_draw,
+    is_clear: true,
+    is_goto,
+    size: size,
+    scale: scale,
+    heading: 360,
+    tilt: 0,
+    easing: 'ease',
+    duration: 7000,
+  });
+}
+
+export function resultGoto(layerID, id, scale = 2000) {
+  invokeParams('ResultGoto', {
+    layerID,
+    id,
+    scale,
+  });
+}
+
+export function addPointSearch(status = true) {
+  invokeParams('MapClickAll', {
+    status,
+    is_draw: false,
+    is_code: false,
+  });
+}
+
+export function layerControlNew(layerID, visible, opacity = 1, where) {
+  console.log('我的opacity', opacity);
+  invokeParams('LayerControl', {
+    title: layerID,
+    visible: visible,
+    opacity: opacity,
+    islegend: false,
+    where: where,
+  });
+}
+
+export function LayerStatistics(title, field) {
+  invokeParams('LayerStatistics', {
+    title: title,
+    field: field,
+    type: 'count',
+  });
+}
+export function toolUploadSheepFileMap(shapeType, shapeData) {
+  invokeParams('LoadSHPFile', {
+    shapeType: shapeType,
+    shapeData: shapeData,
+    is_goto: true,
+  });
+}
+export function setScale(scale) {
+  invokeParams('SetScale', {
+    scale: scale,
+  });
+}
+
+export function addMapLayer(params) {
+  invokeParams('AddLayer', {
+    // scale: scale,
+    // id: id,
+    // title: id,
+    // visible: visible,
+    // opacity: 1,
+    // url: url,
+    // type: type,
+    // is_goto: false,
+    // is_legend: false,
+    ...params,
+  });
+}
+
+export function LayerQuery(params) {
+  invokeParams('LayerQuery', {
+    // geometry: {
+    //   type: 'polygon',
+    //   rings: [
+    //     [-829.6023411144151, 2768.940532081816],
+    //     [6106.907801275349, 2953.548570047385],
+    //     [5463.077127821732, -2051.867891674905],
+    //     [-570.7552398098007, -1867.805762451227],
+    //     [-829.6023411144151, 2768.940532081816],
+    //   ],
+    //   spatialReference: {
+    //     wkid: 102100,
+    //   },
+    // },
+    // spatialRelationship: 'disjoint',
+    outFields: ['*'],
+    returnGeometry: true,
+    is_draw: true,
+    is_goto: false,
+    is_clear: false,
+    symbol: {
+      type: 'simple-fill',
+      // style: 'circle',
+      color: [255, 0, 0, 0],
+      // size: 10,
+      outline: {
+        color: [255, 191, 0],
+        // color: [1, 255, 1],
+        width: 3,
+      },
+    },
+    ...params,
+  });
+}
+
+export function ClearMap(is_draw = true, is_search = true, is_position = true) {
+  invokeParams('ClearMap', {
+    is_draw: true,
+    is_search: true,
+    is_position: true,
+    is_temp: true,
+  });
+}
+
+export function ChangeBaseMap(type) {
+  invokeParams('ChangeBaseMap', {
+    title: type,
+    opacity: 1,
+  });
+}
+
+export function clearTongjiLayer() {
+  invokeParams('RemoveMapLayers', {
+    id: 'tongjiLayer',
+    type: '',
+  });
+}
+
+export function removeMapLayers(title) {
+  invokeParams('RemoveMapLayers', {
+    id: title,
+    type: '',
+  });
+}
+
+export function calculation() {
+  invokeParams('Calculation', {
+    type: 'polyline',
+    is_show: false,
+    is_dtzz: false,
+  });
+}
+
+export function drawCircle(point, radius, layerId, returnParams = false) {
+  invokeParams('AddGraphic', {
+    type: 'circle',
+    is_edit: false,
+    is_temp: true,
+    is_clear: true,
+    is_goto: false,
+    is_return: returnParams,
+    data: point,
+    attributes: [],
+    symbol: {
+      type: 'simple-fill',
+      color: [50, 205, 205, 0.5],
+      outline: {
+        width: 2,
+      },
+    },
+    radius: radius,
+    unit: 'meters',
+    layerID: layerId,
+  });
+}

+ 953 - 0
src/utils/map/CityGis.Bridge.js

@@ -0,0 +1,953 @@
+/* [vite-plugin-commonjs] export-runtime-S */
+var module = {
+  exports: {},
+};
+var exports = module.exports;
+
+/* eslint-disable */
+!(function (e, t) {
+  'object' == typeof exports && 'object' == typeof module
+    ? (module.exports = t())
+    : 'function' == typeof define && define.amd
+      ? define([], t)
+      : 'object' == typeof exports
+        ? (exports.CityGis = t())
+        : (e.CityGis = t());
+})(window, function () {
+  return (function (e) {
+    var t = {};
+
+    function r(n) {
+      if (t[n]) return t[n].exports;
+      var i = (t[n] = { i: n, l: !1, exports: {} });
+      return e[n].call(i.exports, i, i.exports, r), (i.l = !0), i.exports;
+    }
+
+    return (
+      (r.m = e),
+      (r.c = t),
+      (r.d = function (e, t, n) {
+        r.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: n });
+      }),
+      (r.r = function (e) {
+        'undefined' != typeof Symbol &&
+          Symbol.toStringTag &&
+          Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' }),
+          Object.defineProperty(e, '__esModule', { value: !0 });
+      }),
+      (r.t = function (e, t) {
+        if ((1 & t && (e = r(e)), 8 & t)) return e;
+        if (4 & t && 'object' == typeof e && e && e.__esModule) return e;
+        var n = Object.create(null);
+        if (
+          (r.r(n),
+          Object.defineProperty(n, 'default', {
+            enumerable: !0,
+            value: e,
+          }),
+          2 & t && 'string' != typeof e)
+        )
+          for (var i in e)
+            r.d(
+              n,
+              i,
+              function (t) {
+                return e[t];
+              }.bind(null, i),
+            );
+        return n;
+      }),
+      (r.n = function (e) {
+        var t =
+          e && e.__esModule
+            ? function () {
+                return e.default;
+              }
+            : function () {
+                return e;
+              };
+        return r.d(t, 'a', t), t;
+      }),
+      (r.o = function (e, t) {
+        return Object.prototype.hasOwnProperty.call(e, t);
+      }),
+      (r.p = ''),
+      r((r.s = 0))
+    );
+  })([
+    function (e, t, r) {
+      'use strict';
+      (function (e) {
+        var n, i;
+
+        function o(e, t) {
+          return t - e;
+        }
+
+        var s,
+          a = (function () {
+            var e, t;
+
+            function r() {
+              var e = arguments[0],
+                t = arguments[1],
+                r = arguments[2],
+                n = arguments[3];
+              return new o((i, o) => {
+                var s = new XMLHttpRequest();
+                (s.onreadystatechange = function () {
+                  if (4 === s.readyState)
+                    if ((s.status >= 200 && s.status < 300) || 304 === s.status)
+                      if ('string' == typeof s.responseText && 'json' == n)
+                        try {
+                          i(JSON.parse(s.responseText));
+                        } catch (e) {
+                          i(s.responseText);
+                        }
+                      else i(s.responseText);
+                    else o(s.status);
+                }),
+                  s.open(e, t, !0),
+                  'get' == e
+                    ? (s.setRequestHeader('content-type', 'text/plain;charset=UTF-8'),
+                      s.setRequestHeader('content-type', 'application/json'))
+                    : s.setRequestHeader('content-Type', 'application/x-www-form-urlencoded'),
+                  s.send(r);
+              });
+            }
+
+            function n(e, t, r, n) {
+              return i(e).then(t, r, n);
+            }
+
+            function i(e) {
+              var t, r, n;
+              return (
+                e instanceof o
+                  ? (t = e)
+                  : u(e)
+                    ? ((r = a()),
+                      e.then(
+                        function (e) {
+                          r.resolve(e);
+                        },
+                        function (e) {
+                          r.reject(e);
+                        },
+                        function (e) {
+                          r.progress(e);
+                        },
+                      ),
+                      (t = r.promise))
+                    : ((n = e),
+                      (t = new o(function (e) {
+                        try {
+                          return i(e ? e(n) : n);
+                        } catch (e) {
+                          return s(e);
+                        }
+                      }))),
+                t
+              );
+            }
+
+            function o(e) {
+              this.then = e;
+            }
+
+            function s(e) {
+              return new o(function (t, r) {
+                try {
+                  return r ? i(r(e)) : s(e);
+                } catch (e) {
+                  return s(e);
+                }
+              });
+            }
+
+            function a() {
+              var e, t, r, n, u, c;
+              return (
+                (e = new o(f)),
+                (t = []),
+                (r = []),
+                (n = function (e, n, i) {
+                  var o, s;
+                  return (
+                    (o = a()),
+                    (s =
+                      'function' == typeof i
+                        ? function (e) {
+                            try {
+                              o.progress(i(e));
+                            } catch (e) {
+                              o.progress(e);
+                            }
+                          }
+                        : function (e) {
+                            o.progress(e);
+                          }),
+                    t.push(function (t) {
+                      t.then(e, n).then(o.resolve, o.reject, s);
+                    }),
+                    r.push(s),
+                    o.promise
+                  );
+                }),
+                (u = function (e) {
+                  return h(r, e), e;
+                }),
+                (c = function (e) {
+                  return (e = i(e)), (n = e.then), (c = i), (u = y), h(t, e), (r = t = void 0), e;
+                }),
+                {
+                  then: f,
+                  resolve: l,
+                  reject: d,
+                  progress: p,
+                  promise: e,
+                  resolver: { resolve: l, reject: d, progress: p },
+                }
+              );
+
+              function f(e, t, r) {
+                return n(e, t, r);
+              }
+
+              function l(e) {
+                return c(e);
+              }
+
+              function d(e) {
+                return c(s(e));
+              }
+
+              function p(e) {
+                return u(e);
+              }
+            }
+
+            function u(e) {
+              return e && 'function' == typeof e.then;
+            }
+
+            function c(e, t, r, i, o) {
+              return (
+                d(2, arguments),
+                n(e, function (e) {
+                  var s, u, c, f, l, h, d, p, m, v;
+                  if (
+                    ((m = e.length >>> 0),
+                    (s = Math.max(0, Math.min(t, m))),
+                    (c = []),
+                    (u = m - s + 1),
+                    (f = []),
+                    (l = a()),
+                    s)
+                  )
+                    for (
+                      p = l.progress,
+                        d = function (e) {
+                          f.push(e), --u || ((h = d = y), l.reject(f));
+                        },
+                        h = function (e) {
+                          c.push(e), --s || ((h = d = y), l.resolve(c));
+                        },
+                        v = 0;
+                      v < m;
+                      ++v
+                    )
+                      v in e && n(e[v], b, g, p);
+                  else l.resolve(c);
+                  return l.then(r, i, o);
+
+                  function g(e) {
+                    d(e);
+                  }
+
+                  function b(e) {
+                    h(e);
+                  }
+                })
+              );
+            }
+
+            function f(e, t, r, n) {
+              return d(1, arguments), l(e, p).then(t, r, n);
+            }
+
+            function l(e, t) {
+              return n(e, function (e) {
+                var r, i, o, s, u, c;
+                if (((o = i = e.length >>> 0), (r = []), (c = a()), o))
+                  for (
+                    s = function (e, i) {
+                      n(e, t).then(function (e) {
+                        (r[i] = e), --o || c.resolve(r);
+                      }, c.reject);
+                    },
+                      u = 0;
+                    u < i;
+                    u++
+                  )
+                    u in e ? s(e[u], u) : --o;
+                else c.resolve(r);
+                return c.promise;
+              });
+            }
+
+            function h(e, t) {
+              for (var r, n = 0; (r = e[n++]); ) r(t);
+            }
+
+            function d(e, t) {
+              for (var r, n = t.length; n > e; )
+                if (null != (r = t[--n]) && 'function' != typeof r)
+                  throw new Error('arg ' + n + ' must be a function');
+            }
+
+            function y() {}
+
+            function p(e) {
+              return e;
+            }
+
+            return (
+              (n.defer = a),
+              (n.resolve = i),
+              (n.reject = function (e) {
+                return n(e, s);
+              }),
+              (n.join = function () {
+                return l(arguments, p);
+              }),
+              (n.all = f),
+              (n.map = l),
+              (n.reduce = function (r, i) {
+                var o = t.call(arguments, 1);
+                return n(r, function (t) {
+                  var r;
+                  return (
+                    (r = t.length),
+                    (o[0] = function (e, t, o) {
+                      return n(e, function (e) {
+                        return n(t, function (t) {
+                          return i(e, t, o, r);
+                        });
+                      });
+                    }),
+                    e.apply(t, o)
+                  );
+                });
+              }),
+              (n.any = function (e, t, r, n) {
+                return c(
+                  e,
+                  1,
+                  function (e) {
+                    return t ? t(e[0]) : e[0];
+                  },
+                  r,
+                  n,
+                );
+              }),
+              (n.some = c),
+              (n.chain = function (e, t, r) {
+                var i = arguments.length > 2;
+                return n(
+                  e,
+                  function (e) {
+                    return (e = i ? r : e), t.resolve(e), e;
+                  },
+                  function (e) {
+                    return t.reject(e), s(e);
+                  },
+                  t.progress,
+                );
+              }),
+              (n.isPromise = u),
+              (n.getJSON = function (e) {
+                return r('get', e, null, 'json');
+              }),
+              (n.postJSON = function (e, t) {
+                return (
+                  'object' == typeof t &&
+                    (t = (function (e) {
+                      if (!e) return '';
+                      var t = [];
+                      for (var r in e)
+                        if (e.hasOwnProperty(r) && 'function' != typeof e[r]) {
+                          var n = null != e[r] ? e[r].toString() : '';
+                          (r = encodeURIComponent(r.replace('%20', '+'))),
+                            (n = encodeURIComponent(n.replace('%20', '+'))),
+                            t.push(r + '=' + n);
+                        }
+                      return t.join('&');
+                    })(t)),
+                  r('post', e, t || null, 'json')
+                );
+              }),
+              (o.prototype = {
+                always: function (e, t) {
+                  return this.then(e, e, t);
+                },
+                otherwise: function (e) {
+                  return this.then(void 0, e);
+                },
+                yield: function (e) {
+                  return this.then(function () {
+                    return e;
+                  });
+                },
+                spread: function (e) {
+                  return this.then(function (t) {
+                    return f(t, function (t) {
+                      return e.apply(void 0, t);
+                    });
+                  });
+                },
+              }),
+              (t = [].slice),
+              (e =
+                [].reduce ||
+                function (e) {
+                  var t, r, n, i, o;
+                  if (((o = 0), (i = (t = Object(this)).length >>> 0), (r = arguments).length <= 1))
+                    for (;;) {
+                      if (o in t) {
+                        n = t[o++];
+                        break;
+                      }
+                      if (++o >= i) throw new TypeError();
+                    }
+                  else n = r[1];
+                  for (; o < i; ++o) o in t && (n = e(n, t[o], o, t));
+                  return n;
+                }),
+              n
+            );
+          })();
+
+        class u {
+          constructor(e) {
+            return (
+              (this._create = function (e) {
+                var t = this;
+                (e = Object.assign(
+                  {
+                    host: '192.168.29.100',
+                    port: 59001,
+                    clientId: 'testmap',
+                    group: 'groupA',
+                    onMessage: function (e) {
+                      console.log(e);
+                    },
+                  },
+                  e,
+                )),
+                  (this.ready = new a.defer());
+                try {
+                  (this.client = new msc.Client(
+                    {
+                      host: e.host,
+                      port: e.port,
+                    },
+                    e.clientId,
+                  )),
+                    this.client.connect(),
+                    this.client.onConnect(function () {
+                      t.ready.resolve(this);
+                    }),
+                    this.client.join(e.group),
+                    this.client.onMessage(e.onMessage);
+                } catch (e) {
+                  console.log('未引用msc插件,无法初始化socket通讯'), t.ready.reject(e.message);
+                }
+                return this;
+              }),
+              (this.send = function (e) {
+                var t = this;
+                this.ready.then(function () {
+                  t.client.pub({
+                    sceneId: e.sceneId,
+                    targetClientIds: e.targetClientIds,
+                    data: e.data,
+                  });
+                });
+              }),
+              (this.broadcast = function (e) {
+                var t = this;
+                this.ready.then(function () {
+                  t.client.pub({ sceneId: e.sceneId, data: e.data }, e.group);
+                });
+              }),
+              this._create(e)
+            );
+          }
+        }
+
+        class c extends class {
+          constructor() {
+            (this._listeners = []),
+              (this._scopes = []),
+              (this._toRemove = []),
+              (this._insideRaiseEvent = !1);
+          }
+
+          get numberOfListeners() {
+            return this._listeners.length - this._toRemove.length;
+          }
+
+          addEventListener(e, t) {
+            if ('function' == typeof e) {
+              this._listeners.push(e), this._scopes.push(t);
+              var r = this;
+              return function () {
+                r.removeEventListener(e, t);
+              };
+            }
+          }
+
+          removeEventListener(e, t) {
+            if ('function' == typeof e) {
+              for (var r = this._listeners, n = this._scopes, i = -1, o = 0; o < r.length; o++)
+                if (r[o] === e && n[o] === t) {
+                  i = o;
+                  break;
+                }
+              if (-1 !== i)
+                return (
+                  this._insideRaiseEvent
+                    ? (this._toRemove.push(i), (r[i] = void 0), (n[i] = void 0))
+                    : (r.splice(i, 1), n.splice(i, 1)),
+                  !0
+                );
+            }
+            return !1;
+          }
+
+          raiseEvent() {
+            var e;
+            this._insideRaiseEvent = !0;
+            var t = this._listeners,
+              r = this._scopes,
+              n = t.length;
+            for (e = 0; e < n; e++) {
+              var i = t[e];
+              i && null != i && t[e].apply(r[e], arguments);
+            }
+            var s = this._toRemove;
+            if ((n = s.length) > 0) {
+              for (s.sort(o), e = 0; e < n; e++) {
+                var a = s[e];
+                t.splice(a, 1), r.splice(a, 1);
+              }
+              s.length = 0;
+            }
+            this._insideRaiseEvent = !1;
+          }
+        } {
+          constructor(e) {
+            super(), (this.commandQueue = []);
+            var t = this,
+              r = e.id,
+              n = e.url;
+
+            function i(e) {
+              if (e && e.data)
+                try {
+                  var r = e.data;
+                  if ('string' == typeof e.data) {
+                    var n = e.data.replace(/^\s+|\s+$/g, '');
+                    r = JSON.parse(n);
+                  }
+                  r.action &&
+                    '' !== r.action &&
+                    ('MapReady' == r.action && t._onReady
+                      ? t._onReady.call(t)
+                      : ('Camera' == r.action &&
+                          t._cameraDeferred &&
+                          t._cameraDeferred.resolve(r.data),
+                        'QueryService' == r.action &&
+                          ((t.QueryServiceInfo = r.data),
+                          t._queryDeferred && t._queryDeferred.resolve()),
+                        'QueryLocalTask' == r.action &&
+                          t._queryLocalTaskDeferred &&
+                          t._queryLocalTaskDeferred.resolve(r.data),
+                        t.raiseEvent(r)));
+                } catch (e) {
+                  console.log('方法错误' + e);
+                }
+            }
+
+            (this._onReady = e.onReady),
+              window.attachEvent
+                ? window.attachEvent('message', i)
+                : window.addEventListener && window.addEventListener('message', i, !1),
+              (this._iframeEle = document.getElementById(r));
+            new Promise((e, t) => {
+              this._iframeEle
+                ? e(this._iframeEle)
+                : (window.onload = function () {
+                    (this._iframeEle = document.getElementById(r)),
+                      this._iframeEle ||
+                        ((this._iframeEle = document.createElement('iframe')),
+                        this._iframeEle.setAttribute('id', r),
+                        this._iframeEle.setAttribute('scrolling', 'no'),
+                        this._iframeEle.setAttribute('allowtransparency', 'true'),
+                        this._iframeEle.setAttribute('allowfullscreen', 'true'),
+                        this._iframeEle.setAttribute('webkitallowfullscreen', 'true'),
+                        this._iframeEle.setAttribute('mozallowfullscreen', 'true'),
+                        document.body.appendChild(this._iframeEle)),
+                      e(this._iframeEle);
+                  }.bind(this));
+            })
+              .then(function (e) {
+                return new Promise(function (t, r) {
+                  (e.onload = function () {
+                    var r = e.contentWindow,
+                      n = e.src ? e.src : '*';
+                    t({ iframe: r, domain: n });
+                  }.bind(this)),
+                    e.setAttribute('src', n.toString());
+                });
+              })
+              .then(
+                function (e) {
+                  (this.iframe = e.iframe),
+                    (this.domain = e.domain),
+                    this.commandQueue.length > 0 &&
+                      (this.Invoke(this.commandQueue), (this.commandQueue = []));
+                }.bind(this),
+              );
+            return this;
+          }
+
+          Invoke(e) {
+            if (null != e) {
+              var t = Array.isArray(e) ? e : [e];
+              void 0 !== this.iframe
+                ? t.forEach(
+                    function (e) {
+                      e.hasOwnProperty('ActionName')
+                        ? (e.Parameters &&
+                            'string' != typeof e.Parameters &&
+                            (e.Parameters = JSON.stringify(e.Parameters)),
+                          this.iframe.postMessage(JSON.stringify(e), this.domain))
+                        : console.error("命令错误,缺少'ActionName'" + JSON.stringify(e));
+                    }.bind(this),
+                  )
+                : (this.commandQueue = this.commandQueue.concat(t));
+            }
+          }
+
+          getCamera() {
+            return (
+              (this._cameraDeferred = new a.defer()),
+              this.Invoke({ ActionName: 'getCamera' }),
+              this._cameraDeferred
+            );
+          }
+
+          QueryTask(e) {
+            return (
+              (this._queryDeferred = new a.defer()),
+              this.QueryServiceInfo && this._queryDeferred.resolve(),
+              this._queryDeferred.then(
+                function () {
+                  return (
+                    this._taskjob && !this._taskjob.checkUpdate(this.QueryServiceInfo)
+                      ? console.info('服务地址无变化')
+                      : (this._taskjob = new f(this.QueryServiceInfo)),
+                    a.all([this._taskjob.QueryTask(e), this.QueryLocalTask(e)]).then(
+                      function (e) {
+                        var t = e
+                          .filter(function (e) {
+                            return null != e;
+                          })
+                          .map(function (e) {
+                            return e;
+                          });
+                        return t.length > 0 ? t[0] : void 0;
+                      },
+                      function (e) {
+                        console.error(e);
+                      },
+                    )
+                  );
+                }.bind(this),
+              )
+            );
+          }
+
+          QueryLocalTask(e) {
+            return (
+              (this._queryLocalTaskDeferred = new a.defer()),
+              this.Invoke({
+                ActionName: 'QueryLocalTask',
+                Parameters: e,
+              }),
+              this._queryLocalTaskDeferred
+            );
+          }
+        }
+
+        class f {
+          constructor(e) {
+            var t = [5, 6, 4, 2, 3, 1];
+
+            function r(e, t) {
+              for (
+                var r = '',
+                  o = e.length,
+                  s = Math.floor(t.length / o),
+                  a = t.length % o,
+                  u = [],
+                  c = 0;
+                c < o;
+                c++
+              )
+                u[e[c] - 1] = s + (a-- > 0 ? 1 : 0);
+              for (var f = [], l = 0, h = 0; h < u.length; h++) {
+                var d = t.substr(l, u[h]);
+                f.push(d.split('')), (l += u[h]);
+              }
+              for (var y = i(e), p = 0; p < s + 1; p++)
+                for (var m = 0; m < o; m++) {
+                  r += f[n(y, m + 1)].shift() || '';
+                }
+              return r;
+            }
+
+            var n = function (e, t) {
+                for (var r = e.length - 1; r >= 0; r--) if (e[r] == t) return r;
+                return null;
+              },
+              i = function (e) {
+                for (var t = e.length, r = [], n = 0; n < t; n++) r[e[n] - 1] = n + 1;
+                return r;
+              };
+            (this._optionslayers = e.data),
+              e &&
+                (this.layers = e.data.map(function (e) {
+                  var n = {};
+                  for (var i in e) 'string' == typeof e[i] ? (n[i] = r(t, e[i])) : (n[i] = e[i]);
+                  return n;
+                })),
+              (this.layerinfo = void 0),
+              (this.code = e.code),
+              (this.filter = e.filter),
+              (this._loaded = !1),
+              (this.checkUpdate = function (e) {
+                if (this.code != e.code) return !0;
+                var t = 0;
+                return (
+                  e.data.forEach(
+                    function (e) {
+                      null ==
+                        this._optionslayers.find(function (t) {
+                          return e.url == t.url;
+                        }) && t++;
+                    }.bind(this),
+                  ),
+                  t > 0
+                );
+              });
+            var o = function () {
+                var e = a.defer();
+                if (this._loaded) e.resolve();
+                else {
+                  if (!this.layers) return console.error('服务地址为空'), void e.reject();
+                  var t = [];
+                  this.layers.forEach(function (e) {
+                    if (!e.layerinfo) {
+                      t.push(
+                        ((r = e),
+                        (n = a.defer()),
+                        a.getJSON(r.url + '?f=pjson').then(function (e) {
+                          e.error
+                            ? (console.error('服务地址错误' + JSON.stringify(e.error)), n.reject())
+                            : ((r.layerinfo = e), n.resolve(r));
+                        }),
+                        n),
+                      );
+                    }
+                    var r, n;
+                  }),
+                    a.all(t).then(
+                      function () {
+                        (this._loaded =
+                          0 ==
+                          this.layers.filter(function (e) {
+                            return null == e.layerinfo;
+                          }).length),
+                          e.resolve();
+                      }.bind(this),
+                    );
+                }
+                return e;
+              },
+              s = function (e, t) {
+                var r = a.defer(),
+                  n = this.layers
+                    .map(function (t) {
+                      return t.layerinfo && t.layerinfo.layers
+                        ? {
+                            url: t.url,
+                            currentVersion: Number(t.layerinfo.currentVersion),
+                            spatialReference: t.layerinfo.spatialReference,
+                            layer: t.layerinfo.layers.find(function (t) {
+                              return t.name == e;
+                            }),
+                          }
+                        : {};
+                    })
+                    .filter(function (e) {
+                      return null != e.layer;
+                    });
+                if (0 == n.length) return r.reject(void 0), r;
+                var i = (n = n[0]).layer;
+                if (
+                  0 == i.defaultVisibility &&
+                  ((i.subLayerIds && i.subLayerIds.length > 0) || 'Group Layer' == i.type)
+                ) {
+                  var o = this.layers.find(function (e) {
+                      return e.url == n.url;
+                    }),
+                    s = i.subLayerIds.map(
+                      function (e) {
+                        return o.layerinfo.layers.find(function (t) {
+                          return t.id == e && 0 == t.minScale;
+                        });
+                      }.bind(this),
+                    );
+                  (s = s.filter(function (e) {
+                    return null != e;
+                  })),
+                    n.currentVersion >= 10.7
+                      ? ((t = t || s[0].geometryType.toLowerCase().replace('esrigeometry', '')),
+                        (i = s.find(function (e) {
+                          return (
+                            null != e &&
+                            e.geometryType.toLowerCase().replace('esrigeometry', '') ==
+                              t.toLowerCase()
+                          );
+                        })))
+                      : (i = s.length > 0 ? s[0] : void 0);
+                }
+                return (n.layer = i), r.resolve(n), r;
+              },
+              u = function (e, t) {
+                var r = a.defer();
+                if (t) {
+                  var n = Object.assign({}, e);
+                  delete n.name, delete n.type;
+                  var i = this.filter;
+                  (n.where || n.geometry) && i && (n.where = n.where ? i + ' and ' + n.where : i),
+                    n.geometry &&
+                      'string' != typeof n.geometry &&
+                      ((n.geometryType = 'esriGeometryPoint'),
+                      n.geometry.hasOwnProperty('rings') &&
+                        (n.geometryType = 'esriGeometryPolygon'),
+                      n.geometry.hasOwnProperty('paths') &&
+                        (n.geometryType = 'esriGeometryPolyline'),
+                      delete n.geometry,
+                      (n.geometry = JSON.stringify(e.geometry).replace(/"/g, '')));
+                  var o = t.url + '/' + t.layer.id + '/query';
+                  a.postJSON(o, n).then(
+                    function (n) {
+                      var i = {
+                        geometryType: t.layer.geometryType || n.geometryType,
+                        spatialReference: t.spatialReference,
+                        name: e.name,
+                        features: n.features,
+                      };
+                      r.resolve(i);
+                    }.bind(this),
+                    function (e) {
+                      console.error(e), r.reject(void 0);
+                    },
+                  );
+                } else console.error('无此图层信息'), r.reject();
+                return r;
+              };
+            return (
+              (this.QueryTask = function (e) {
+                if (
+                  (e = Object.assign(
+                    {
+                      name: void 0,
+                      where: void 0,
+                      geometry: void 0,
+                      returnGeometry: !1,
+                      outFields: '*',
+                      f: 'pjson',
+                      type: void 0,
+                      distance: 0,
+                    },
+                    e,
+                  )).name &&
+                  (e.where || e.geometry)
+                )
+                  return o
+                    .call(this)
+                    .then(
+                      function () {
+                        return s.call(this, e.name, e.type);
+                      }.bind(this),
+                    )
+                    .then(
+                      function (t) {
+                        return u.call(this, e, t);
+                      }.bind(this),
+                    );
+                var t = a.defer();
+                return t.reject('查询参数不正确'), t;
+              }),
+              this
+            );
+          }
+        }
+
+        (s = function () {
+          return { MapSocket: u, Bridge: c, Task: f };
+        }),
+          e && e.exports
+            ? (e.exports = s())
+            : void 0 === (i = 'function' == typeof (n = s) ? n.call(t, r, t, e) : n) ||
+              (e.exports = i);
+      }).call(this, r(1)(e));
+    },
+    function (e, t) {
+      e.exports = function (e) {
+        return (
+          e.webpackPolyfill ||
+            ((e.deprecate = function () {}),
+            (e.paths = []),
+            e.children || (e.children = []),
+            Object.defineProperty(e, 'loaded', {
+              enumerable: !0,
+              get: function () {
+                return e.l;
+              },
+            }),
+            Object.defineProperty(e, 'id', {
+              enumerable: !0,
+              get: function () {
+                return e.i;
+              },
+            }),
+            (e.webpackPolyfill = 1)),
+          e
+        );
+      };
+    },
+  ]);
+});
+
+/* [vite-plugin-commonjs] export-statement-S */
+const __CJS__export_default__ =
+  (module.exports == null ? {} : module.exports).default || module.exports;
+const __CJS__export_CityGis__ = (module.exports == null ? {} : module.exports).CityGis;
+export { __CJS__export_default__ as default, __CJS__export_CityGis__ as CityGis };
+/* [vite-plugin-commonjs] export-statement-E */

+ 940 - 0
src/utils/map/CityGis.BridgeOld.js

@@ -0,0 +1,940 @@
+/* eslint-disable */
+!(function (e, t) {
+  'object' == typeof exports && 'object' == typeof module
+    ? (module.exports = t())
+    : 'function' == typeof define && define.amd
+      ? define([], t)
+      : 'object' == typeof exports
+        ? (exports.CityGis = t())
+        : (e.CityGis = t());
+})(window, function () {
+  return (function (e) {
+    var t = {};
+
+    function r(n) {
+      if (t[n]) return t[n].exports;
+      var i = (t[n] = { i: n, l: !1, exports: {} });
+      return e[n].call(i.exports, i, i.exports, r), (i.l = !0), i.exports;
+    }
+
+    return (
+      (r.m = e),
+      (r.c = t),
+      (r.d = function (e, t, n) {
+        r.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: n });
+      }),
+      (r.r = function (e) {
+        'undefined' != typeof Symbol &&
+          Symbol.toStringTag &&
+          Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' }),
+          Object.defineProperty(e, '__esModule', { value: !0 });
+      }),
+      (r.t = function (e, t) {
+        if ((1 & t && (e = r(e)), 8 & t)) return e;
+        if (4 & t && 'object' == typeof e && e && e.__esModule) return e;
+        var n = Object.create(null);
+        if (
+          (r.r(n),
+          Object.defineProperty(n, 'default', {
+            enumerable: !0,
+            value: e,
+          }),
+          2 & t && 'string' != typeof e)
+        )
+          for (var i in e)
+            r.d(
+              n,
+              i,
+              function (t) {
+                return e[t];
+              }.bind(null, i),
+            );
+        return n;
+      }),
+      (r.n = function (e) {
+        var t =
+          e && e.__esModule
+            ? function () {
+                return e.default;
+              }
+            : function () {
+                return e;
+              };
+        return r.d(t, 'a', t), t;
+      }),
+      (r.o = function (e, t) {
+        return Object.prototype.hasOwnProperty.call(e, t);
+      }),
+      (r.p = ''),
+      r((r.s = 0))
+    );
+  })([
+    function (e, t, r) {
+      'use strict';
+      (function (e) {
+        var n, i;
+
+        function o(e, t) {
+          return t - e;
+        }
+
+        var s,
+          a = (function () {
+            var e, t;
+
+            function r() {
+              var e = arguments[0],
+                t = arguments[1],
+                r = arguments[2],
+                n = arguments[3];
+              return new o((i, o) => {
+                var s = new XMLHttpRequest();
+                (s.onreadystatechange = function () {
+                  if (4 === s.readyState)
+                    if ((s.status >= 200 && s.status < 300) || 304 === s.status)
+                      if ('string' == typeof s.responseText && 'json' == n)
+                        try {
+                          i(JSON.parse(s.responseText));
+                        } catch (e) {
+                          i(s.responseText);
+                        }
+                      else i(s.responseText);
+                    else o(s.status);
+                }),
+                  s.open(e, t, !0),
+                  'get' == e
+                    ? (s.setRequestHeader('content-type', 'text/plain;charset=UTF-8'),
+                      s.setRequestHeader('content-type', 'application/json'))
+                    : s.setRequestHeader('content-Type', 'application/x-www-form-urlencoded'),
+                  s.send(r);
+              });
+            }
+
+            function n(e, t, r, n) {
+              return i(e).then(t, r, n);
+            }
+
+            function i(e) {
+              var t, r, n;
+              return (
+                e instanceof o
+                  ? (t = e)
+                  : u(e)
+                    ? ((r = a()),
+                      e.then(
+                        function (e) {
+                          r.resolve(e);
+                        },
+                        function (e) {
+                          r.reject(e);
+                        },
+                        function (e) {
+                          r.progress(e);
+                        },
+                      ),
+                      (t = r.promise))
+                    : ((n = e),
+                      (t = new o(function (e) {
+                        try {
+                          return i(e ? e(n) : n);
+                        } catch (e) {
+                          return s(e);
+                        }
+                      }))),
+                t
+              );
+            }
+
+            function o(e) {
+              this.then = e;
+            }
+
+            function s(e) {
+              return new o(function (t, r) {
+                try {
+                  return r ? i(r(e)) : s(e);
+                } catch (e) {
+                  return s(e);
+                }
+              });
+            }
+
+            function a() {
+              var e, t, r, n, u, c;
+              return (
+                (e = new o(f)),
+                (t = []),
+                (r = []),
+                (n = function (e, n, i) {
+                  var o, s;
+                  return (
+                    (o = a()),
+                    (s =
+                      'function' == typeof i
+                        ? function (e) {
+                            try {
+                              o.progress(i(e));
+                            } catch (e) {
+                              o.progress(e);
+                            }
+                          }
+                        : function (e) {
+                            o.progress(e);
+                          }),
+                    t.push(function (t) {
+                      t.then(e, n).then(o.resolve, o.reject, s);
+                    }),
+                    r.push(s),
+                    o.promise
+                  );
+                }),
+                (u = function (e) {
+                  return h(r, e), e;
+                }),
+                (c = function (e) {
+                  return (e = i(e)), (n = e.then), (c = i), (u = y), h(t, e), (r = t = void 0), e;
+                }),
+                {
+                  then: f,
+                  resolve: l,
+                  reject: d,
+                  progress: p,
+                  promise: e,
+                  resolver: { resolve: l, reject: d, progress: p },
+                }
+              );
+
+              function f(e, t, r) {
+                return n(e, t, r);
+              }
+
+              function l(e) {
+                return c(e);
+              }
+
+              function d(e) {
+                return c(s(e));
+              }
+
+              function p(e) {
+                return u(e);
+              }
+            }
+
+            function u(e) {
+              return e && 'function' == typeof e.then;
+            }
+
+            function c(e, t, r, i, o) {
+              return (
+                d(2, arguments),
+                n(e, function (e) {
+                  var s, u, c, f, l, h, d, p, m, v;
+                  if (
+                    ((m = e.length >>> 0),
+                    (s = Math.max(0, Math.min(t, m))),
+                    (c = []),
+                    (u = m - s + 1),
+                    (f = []),
+                    (l = a()),
+                    s)
+                  )
+                    for (
+                      p = l.progress,
+                        d = function (e) {
+                          f.push(e), --u || ((h = d = y), l.reject(f));
+                        },
+                        h = function (e) {
+                          c.push(e), --s || ((h = d = y), l.resolve(c));
+                        },
+                        v = 0;
+                      v < m;
+                      ++v
+                    )
+                      v in e && n(e[v], b, g, p);
+                  else l.resolve(c);
+                  return l.then(r, i, o);
+
+                  function g(e) {
+                    d(e);
+                  }
+
+                  function b(e) {
+                    h(e);
+                  }
+                })
+              );
+            }
+
+            function f(e, t, r, n) {
+              return d(1, arguments), l(e, p).then(t, r, n);
+            }
+
+            function l(e, t) {
+              return n(e, function (e) {
+                var r, i, o, s, u, c;
+                if (((o = i = e.length >>> 0), (r = []), (c = a()), o))
+                  for (
+                    s = function (e, i) {
+                      n(e, t).then(function (e) {
+                        (r[i] = e), --o || c.resolve(r);
+                      }, c.reject);
+                    },
+                      u = 0;
+                    u < i;
+                    u++
+                  )
+                    u in e ? s(e[u], u) : --o;
+                else c.resolve(r);
+                return c.promise;
+              });
+            }
+
+            function h(e, t) {
+              for (var r, n = 0; (r = e[n++]); ) r(t);
+            }
+
+            function d(e, t) {
+              for (var r, n = t.length; n > e; )
+                if (null != (r = t[--n]) && 'function' != typeof r)
+                  throw new Error('arg ' + n + ' must be a function');
+            }
+
+            function y() {}
+
+            function p(e) {
+              return e;
+            }
+
+            return (
+              (n.defer = a),
+              (n.resolve = i),
+              (n.reject = function (e) {
+                return n(e, s);
+              }),
+              (n.join = function () {
+                return l(arguments, p);
+              }),
+              (n.all = f),
+              (n.map = l),
+              (n.reduce = function (r, i) {
+                var o = t.call(arguments, 1);
+                return n(r, function (t) {
+                  var r;
+                  return (
+                    (r = t.length),
+                    (o[0] = function (e, t, o) {
+                      return n(e, function (e) {
+                        return n(t, function (t) {
+                          return i(e, t, o, r);
+                        });
+                      });
+                    }),
+                    e.apply(t, o)
+                  );
+                });
+              }),
+              (n.any = function (e, t, r, n) {
+                return c(
+                  e,
+                  1,
+                  function (e) {
+                    return t ? t(e[0]) : e[0];
+                  },
+                  r,
+                  n,
+                );
+              }),
+              (n.some = c),
+              (n.chain = function (e, t, r) {
+                var i = arguments.length > 2;
+                return n(
+                  e,
+                  function (e) {
+                    return (e = i ? r : e), t.resolve(e), e;
+                  },
+                  function (e) {
+                    return t.reject(e), s(e);
+                  },
+                  t.progress,
+                );
+              }),
+              (n.isPromise = u),
+              (n.getJSON = function (e) {
+                return r('get', e, null, 'json');
+              }),
+              (n.postJSON = function (e, t) {
+                return (
+                  'object' == typeof t &&
+                    (t = (function (e) {
+                      if (!e) return '';
+                      var t = [];
+                      for (var r in e)
+                        if (e.hasOwnProperty(r) && 'function' != typeof e[r]) {
+                          var n = null != e[r] ? e[r].toString() : '';
+                          (r = encodeURIComponent(r.replace('%20', '+'))),
+                            (n = encodeURIComponent(n.replace('%20', '+'))),
+                            t.push(r + '=' + n);
+                        }
+                      return t.join('&');
+                    })(t)),
+                  r('post', e, t || null, 'json')
+                );
+              }),
+              (o.prototype = {
+                always: function (e, t) {
+                  return this.then(e, e, t);
+                },
+                otherwise: function (e) {
+                  return this.then(void 0, e);
+                },
+                yield: function (e) {
+                  return this.then(function () {
+                    return e;
+                  });
+                },
+                spread: function (e) {
+                  return this.then(function (t) {
+                    return f(t, function (t) {
+                      return e.apply(void 0, t);
+                    });
+                  });
+                },
+              }),
+              (t = [].slice),
+              (e =
+                [].reduce ||
+                function (e) {
+                  var t, r, n, i, o;
+                  if (((o = 0), (i = (t = Object(this)).length >>> 0), (r = arguments).length <= 1))
+                    for (;;) {
+                      if (o in t) {
+                        n = t[o++];
+                        break;
+                      }
+                      if (++o >= i) throw new TypeError();
+                    }
+                  else n = r[1];
+                  for (; o < i; ++o) o in t && (n = e(n, t[o], o, t));
+                  return n;
+                }),
+              n
+            );
+          })();
+
+        class u {
+          constructor(e) {
+            return (
+              (this._create = function (e) {
+                var t = this;
+                (e = Object.assign(
+                  {
+                    host: '192.168.29.100',
+                    port: 59001,
+                    clientId: 'testmap',
+                    group: 'groupA',
+                    onMessage: function (e) {
+                      console.log(e);
+                    },
+                  },
+                  e,
+                )),
+                  (this.ready = new a.defer());
+                try {
+                  (this.client = new msc.Client(
+                    {
+                      host: e.host,
+                      port: e.port,
+                    },
+                    e.clientId,
+                  )),
+                    this.client.connect(),
+                    this.client.onConnect(function () {
+                      t.ready.resolve(this);
+                    }),
+                    this.client.join(e.group),
+                    this.client.onMessage(e.onMessage);
+                } catch (e) {
+                  console.log('未引用msc插件,无法初始化socket通讯'), t.ready.reject(e.message);
+                }
+                return this;
+              }),
+              (this.send = function (e) {
+                var t = this;
+                this.ready.then(function () {
+                  t.client.pub({
+                    sceneId: e.sceneId,
+                    targetClientIds: e.targetClientIds,
+                    data: e.data,
+                  });
+                });
+              }),
+              (this.broadcast = function (e) {
+                var t = this;
+                this.ready.then(function () {
+                  t.client.pub({ sceneId: e.sceneId, data: e.data }, e.group);
+                });
+              }),
+              this._create(e)
+            );
+          }
+        }
+
+        class c extends class {
+          constructor() {
+            (this._listeners = []),
+              (this._scopes = []),
+              (this._toRemove = []),
+              (this._insideRaiseEvent = !1);
+          }
+
+          get numberOfListeners() {
+            return this._listeners.length - this._toRemove.length;
+          }
+
+          addEventListener(e, t) {
+            if ('function' == typeof e) {
+              this._listeners.push(e), this._scopes.push(t);
+              var r = this;
+              return function () {
+                r.removeEventListener(e, t);
+              };
+            }
+          }
+
+          removeEventListener(e, t) {
+            if ('function' == typeof e) {
+              for (var r = this._listeners, n = this._scopes, i = -1, o = 0; o < r.length; o++)
+                if (r[o] === e && n[o] === t) {
+                  i = o;
+                  break;
+                }
+              if (-1 !== i)
+                return (
+                  this._insideRaiseEvent
+                    ? (this._toRemove.push(i), (r[i] = void 0), (n[i] = void 0))
+                    : (r.splice(i, 1), n.splice(i, 1)),
+                  !0
+                );
+            }
+            return !1;
+          }
+
+          raiseEvent() {
+            var e;
+            this._insideRaiseEvent = !0;
+            var t = this._listeners,
+              r = this._scopes,
+              n = t.length;
+            for (e = 0; e < n; e++) {
+              var i = t[e];
+              i && null != i && t[e].apply(r[e], arguments);
+            }
+            var s = this._toRemove;
+            if ((n = s.length) > 0) {
+              for (s.sort(o), e = 0; e < n; e++) {
+                var a = s[e];
+                t.splice(a, 1), r.splice(a, 1);
+              }
+              s.length = 0;
+            }
+            this._insideRaiseEvent = !1;
+          }
+        } {
+          constructor(e) {
+            super(), (this.commandQueue = []);
+            var t = this,
+              r = e.id,
+              n = e.url;
+
+            function i(e) {
+              if (e && e.data)
+                try {
+                  var r = e.data;
+                  if ('string' == typeof e.data) {
+                    var n = e.data.replace(/^\s+|\s+$/g, '');
+                    r = JSON.parse(n);
+                  }
+                  r.action &&
+                    '' !== r.action &&
+                    ('MapReady' == r.action && t._onReady
+                      ? t._onReady.call(t)
+                      : ('Camera' == r.action &&
+                          t._cameraDeferred &&
+                          t._cameraDeferred.resolve(r.data),
+                        'QueryService' == r.action &&
+                          ((t.QueryServiceInfo = r.data),
+                          t._queryDeferred && t._queryDeferred.resolve()),
+                        'QueryLocalTask' == r.action &&
+                          t._queryLocalTaskDeferred &&
+                          t._queryLocalTaskDeferred.resolve(r.data),
+                        t.raiseEvent(r)));
+                } catch (e) {
+                  console.log('方法错误' + e);
+                }
+            }
+
+            (this._onReady = e.onReady),
+              window.attachEvent
+                ? window.attachEvent('message', i)
+                : window.addEventListener && window.addEventListener('message', i, !1),
+              (this._iframeEle = document.getElementById(r));
+            new Promise((e, t) => {
+              this._iframeEle
+                ? e(this._iframeEle)
+                : (window.onload = function () {
+                    (this._iframeEle = document.getElementById(r)),
+                      this._iframeEle ||
+                        ((this._iframeEle = document.createElement('iframe')),
+                        this._iframeEle.setAttribute('id', r),
+                        this._iframeEle.setAttribute('scrolling', 'no'),
+                        this._iframeEle.setAttribute('allowtransparency', 'true'),
+                        this._iframeEle.setAttribute('allowfullscreen', 'true'),
+                        this._iframeEle.setAttribute('webkitallowfullscreen', 'true'),
+                        this._iframeEle.setAttribute('mozallowfullscreen', 'true'),
+                        document.body.appendChild(this._iframeEle)),
+                      e(this._iframeEle);
+                  }.bind(this));
+            })
+              .then(function (e) {
+                return new Promise(function (t, r) {
+                  (e.onload = function () {
+                    var r = e.contentWindow,
+                      n = e.src ? e.src : '*';
+                    t({ iframe: r, domain: n });
+                  }.bind(this)),
+                    e.setAttribute('src', n.toString());
+                });
+              })
+              .then(
+                function (e) {
+                  (this.iframe = e.iframe),
+                    (this.domain = e.domain),
+                    this.commandQueue.length > 0 &&
+                      (this.Invoke(this.commandQueue), (this.commandQueue = []));
+                }.bind(this),
+              );
+            return this;
+          }
+
+          Invoke(e) {
+            if (null != e) {
+              var t = Array.isArray(e) ? e : [e];
+              void 0 !== this.iframe
+                ? t.forEach(
+                    function (e) {
+                      e.hasOwnProperty('ActionName')
+                        ? (e.Parameters &&
+                            'string' != typeof e.Parameters &&
+                            (e.Parameters = JSON.stringify(e.Parameters)),
+                          this.iframe.postMessage(JSON.stringify(e), this.domain))
+                        : console.error("命令错误,缺少'ActionName'" + JSON.stringify(e));
+                    }.bind(this),
+                  )
+                : (this.commandQueue = this.commandQueue.concat(t));
+            }
+          }
+
+          getCamera() {
+            return (
+              (this._cameraDeferred = new a.defer()),
+              this.Invoke({ ActionName: 'getCamera' }),
+              this._cameraDeferred
+            );
+          }
+
+          QueryTask(e) {
+            return (
+              (this._queryDeferred = new a.defer()),
+              this.QueryServiceInfo && this._queryDeferred.resolve(),
+              this._queryDeferred.then(
+                function () {
+                  return (
+                    this._taskjob && !this._taskjob.checkUpdate(this.QueryServiceInfo)
+                      ? console.info('服务地址无变化')
+                      : (this._taskjob = new f(this.QueryServiceInfo)),
+                    a.all([this._taskjob.QueryTask(e), this.QueryLocalTask(e)]).then(
+                      function (e) {
+                        var t = e
+                          .filter(function (e) {
+                            return null != e;
+                          })
+                          .map(function (e) {
+                            return e;
+                          });
+                        return t.length > 0 ? t[0] : void 0;
+                      },
+                      function (e) {
+                        console.error(e);
+                      },
+                    )
+                  );
+                }.bind(this),
+              )
+            );
+          }
+
+          QueryLocalTask(e) {
+            return (
+              (this._queryLocalTaskDeferred = new a.defer()),
+              this.Invoke({
+                ActionName: 'QueryLocalTask',
+                Parameters: e,
+              }),
+              this._queryLocalTaskDeferred
+            );
+          }
+        }
+
+        class f {
+          constructor(e) {
+            var t = [5, 6, 4, 2, 3, 1];
+
+            function r(e, t) {
+              for (
+                var r = '',
+                  o = e.length,
+                  s = Math.floor(t.length / o),
+                  a = t.length % o,
+                  u = [],
+                  c = 0;
+                c < o;
+                c++
+              )
+                u[e[c] - 1] = s + (a-- > 0 ? 1 : 0);
+              for (var f = [], l = 0, h = 0; h < u.length; h++) {
+                var d = t.substr(l, u[h]);
+                f.push(d.split('')), (l += u[h]);
+              }
+              for (var y = i(e), p = 0; p < s + 1; p++)
+                for (var m = 0; m < o; m++) {
+                  r += f[n(y, m + 1)].shift() || '';
+                }
+              return r;
+            }
+
+            var n = function (e, t) {
+                for (var r = e.length - 1; r >= 0; r--) if (e[r] == t) return r;
+                return null;
+              },
+              i = function (e) {
+                for (var t = e.length, r = [], n = 0; n < t; n++) r[e[n] - 1] = n + 1;
+                return r;
+              };
+            (this._optionslayers = e.data),
+              e &&
+                (this.layers = e.data.map(function (e) {
+                  var n = {};
+                  for (var i in e) 'string' == typeof e[i] ? (n[i] = r(t, e[i])) : (n[i] = e[i]);
+                  return n;
+                })),
+              (this.layerinfo = void 0),
+              (this.code = e.code),
+              (this.filter = e.filter),
+              (this._loaded = !1),
+              (this.checkUpdate = function (e) {
+                if (this.code != e.code) return !0;
+                var t = 0;
+                return (
+                  e.data.forEach(
+                    function (e) {
+                      null ==
+                        this._optionslayers.find(function (t) {
+                          return e.url == t.url;
+                        }) && t++;
+                    }.bind(this),
+                  ),
+                  t > 0
+                );
+              });
+            var o = function () {
+                var e = a.defer();
+                if (this._loaded) e.resolve();
+                else {
+                  if (!this.layers) return console.error('服务地址为空'), void e.reject();
+                  var t = [];
+                  this.layers.forEach(function (e) {
+                    if (!e.layerinfo) {
+                      t.push(
+                        ((r = e),
+                        (n = a.defer()),
+                        a.getJSON(r.url + '?f=pjson').then(function (e) {
+                          e.error
+                            ? (console.error('服务地址错误' + JSON.stringify(e.error)), n.reject())
+                            : ((r.layerinfo = e), n.resolve(r));
+                        }),
+                        n),
+                      );
+                    }
+                    var r, n;
+                  }),
+                    a.all(t).then(
+                      function () {
+                        (this._loaded =
+                          0 ==
+                          this.layers.filter(function (e) {
+                            return null == e.layerinfo;
+                          }).length),
+                          e.resolve();
+                      }.bind(this),
+                    );
+                }
+                return e;
+              },
+              s = function (e, t) {
+                var r = a.defer(),
+                  n = this.layers
+                    .map(function (t) {
+                      return t.layerinfo && t.layerinfo.layers
+                        ? {
+                            url: t.url,
+                            currentVersion: Number(t.layerinfo.currentVersion),
+                            spatialReference: t.layerinfo.spatialReference,
+                            layer: t.layerinfo.layers.find(function (t) {
+                              return t.name == e;
+                            }),
+                          }
+                        : {};
+                    })
+                    .filter(function (e) {
+                      return null != e.layer;
+                    });
+                if (0 == n.length) return r.reject(void 0), r;
+                var i = (n = n[0]).layer;
+                if (
+                  0 == i.defaultVisibility &&
+                  ((i.subLayerIds && i.subLayerIds.length > 0) || 'Group Layer' == i.type)
+                ) {
+                  var o = this.layers.find(function (e) {
+                      return e.url == n.url;
+                    }),
+                    s = i.subLayerIds.map(
+                      function (e) {
+                        return o.layerinfo.layers.find(function (t) {
+                          return t.id == e && 0 == t.minScale;
+                        });
+                      }.bind(this),
+                    );
+                  (s = s.filter(function (e) {
+                    return null != e;
+                  })),
+                    n.currentVersion >= 10.7
+                      ? ((t = t || s[0].geometryType.toLowerCase().replace('esrigeometry', '')),
+                        (i = s.find(function (e) {
+                          return (
+                            null != e &&
+                            e.geometryType.toLowerCase().replace('esrigeometry', '') ==
+                              t.toLowerCase()
+                          );
+                        })))
+                      : (i = s.length > 0 ? s[0] : void 0);
+                }
+                return (n.layer = i), r.resolve(n), r;
+              },
+              u = function (e, t) {
+                var r = a.defer();
+                if (t) {
+                  var n = Object.assign({}, e);
+                  delete n.name, delete n.type;
+                  var i = this.filter;
+                  (n.where || n.geometry) && i && (n.where = n.where ? i + ' and ' + n.where : i),
+                    n.geometry &&
+                      'string' != typeof n.geometry &&
+                      ((n.geometryType = 'esriGeometryPoint'),
+                      n.geometry.hasOwnProperty('rings') &&
+                        (n.geometryType = 'esriGeometryPolygon'),
+                      n.geometry.hasOwnProperty('paths') &&
+                        (n.geometryType = 'esriGeometryPolyline'),
+                      delete n.geometry,
+                      (n.geometry = JSON.stringify(e.geometry).replace(/"/g, '')));
+                  var o = t.url + '/' + t.layer.id + '/query';
+                  a.postJSON(o, n).then(
+                    function (n) {
+                      var i = {
+                        geometryType: t.layer.geometryType || n.geometryType,
+                        spatialReference: t.spatialReference,
+                        name: e.name,
+                        features: n.features,
+                      };
+                      r.resolve(i);
+                    }.bind(this),
+                    function (e) {
+                      console.error(e), r.reject(void 0);
+                    },
+                  );
+                } else console.error('无此图层信息'), r.reject();
+                return r;
+              };
+            return (
+              (this.QueryTask = function (e) {
+                if (
+                  (e = Object.assign(
+                    {
+                      name: void 0,
+                      where: void 0,
+                      geometry: void 0,
+                      returnGeometry: !1,
+                      outFields: '*',
+                      f: 'pjson',
+                      type: void 0,
+                      distance: 0,
+                    },
+                    e,
+                  )).name &&
+                  (e.where || e.geometry)
+                )
+                  return o
+                    .call(this)
+                    .then(
+                      function () {
+                        return s.call(this, e.name, e.type);
+                      }.bind(this),
+                    )
+                    .then(
+                      function (t) {
+                        return u.call(this, e, t);
+                      }.bind(this),
+                    );
+                var t = a.defer();
+                return t.reject('查询参数不正确'), t;
+              }),
+              this
+            );
+          }
+        }
+
+        (s = function () {
+          return { MapSocket: u, Bridge: c, Task: f };
+        }),
+          e && e.exports
+            ? (e.exports = s())
+            : void 0 === (i = 'function' == typeof (n = s) ? n.call(t, r, t, e) : n) ||
+              (e.exports = i);
+      }).call(this, r(1)(e));
+    },
+    function (e, t) {
+      e.exports = function (e) {
+        return (
+          e.webpackPolyfill ||
+            ((e.deprecate = function () {}),
+            (e.paths = []),
+            e.children || (e.children = []),
+            Object.defineProperty(e, 'loaded', {
+              enumerable: !0,
+              get: function () {
+                return e.l;
+              },
+            }),
+            Object.defineProperty(e, 'id', {
+              enumerable: !0,
+              get: function () {
+                return e.i;
+              },
+            }),
+            (e.webpackPolyfill = 1)),
+          e
+        );
+      };
+    },
+  ]);
+});

+ 277 - 0
src/utils/map/PointQuery.js

@@ -0,0 +1,277 @@
+let generateTrans = [
+  { value: '', source: 'community_name', target: '小区名称' },
+  { value: '', source: 'grid_name', target: '网格名称' },
+  { value: '', source: 'juwei_name', target: '居委名称' },
+  { value: '', source: 'street_name', target: '街道名称' },
+  { value: '', source: 'dizhi', target: '地址' },
+  { value: '', source: 'xmmc', target: '所属街道' },
+  { value: '', source: 'sbbm', target: '设备编码' },
+  { value: '', source: 'wllx', target: '网络类型' },
+  { value: '', source: 'sbxh', target: '设备型号' },
+  { value: '', source: 'azdz', target: '安装地址' },
+  { value: '', source: 'type', target: '类型' },
+  { value: '', source: 'NAME', target: '名称' },
+  { value: '', source: 'deveui', target: '设备号' },
+  { source: 'corp_type', target: '法人类型' },
+  { source: 'corp_type_name', target: '法人类型名称' },
+  { source: 'trade_start_date', target: '有效期自' },
+  { source: 'trade_end_date', target: '有效期至' },
+  { source: 'uni_sc_id', target: '统一社会信用代码' },
+  { source: 'corp_status_name', target: '法人状态名称' },
+  { source: 'real_area_name_gb', target: '经营地址行政区划名称' },
+  { source: 'cptl_total', target: '注册资金' },
+  { source: 'establish_date', target: '成立日期' },
+  { source: 'addr_area_name_gb', target: '注册地址行政区划名称' },
+  { source: 'real_address', target: '经营地址' },
+  { source: 'address', target: '注册地址住所' },
+  { source: 'corp_status', target: '纳税人状态代码' },
+  { source: 'jhpt_update_time', target: '更新日期' },
+  { source: 'person_name', target: '法定代表人姓名' },
+  { source: 'entity_id', target: '企业标识' },
+  { source: 'trd_scope', target: '经营范围' },
+  { source: 'corp_name', target: '法人名称' },
+  { source: 'person_name', target: '法人名称' },
+  { source: 'industry_code_name_gb', target: '行业类别名称' },
+  { source: 'person_cetf_type_name_gb', target: '法定代表人证件类型名称' },
+  { source: 'corp_info_id', target: '法人实体序号' },
+  { source: 'person_cetf_no', target: '法定代表证件号码' },
+  { source: 'person_name', target: '法人名称' },
+  { source: 'person_cetf_type_gb', target: '法定代表人证件类型' },
+  { source: 'person_mobile', target: '法定代表人手机号' },
+  { source: 'contact_mobile', target: '联系人手机号码' },
+  { source: 'tax_corp_name', target: '纳税人状态名称' },
+  { source: 'organ_code', target: '组织机构代码' },
+  { source: 'contact_name', target: '联系人姓名' },
+  { source: 'reg_people_num', target: '注册从业人数' },
+  { source: 'tax_corp_name', target: '纳税人状态名称' },
+  { source: 'contact_name', target: '联系人姓名' },
+  { source: 'reg_people_num', target: '注册从业人数' },
+  { source: 'tax_corp_name', target: '纳税人状态名称' },
+];
+
+let trans = {
+  'fangwu-dht': [
+    { source: 'atname', target: '管理要点' },
+    { source: 'createtime', target: '立案时间' },
+    { source: 'infobcname', target: '案件大类' },
+    { source: 'infoscname', target: '案件小类' },
+    { source: 'infozcname', target: '案件子类' },
+    { source: 'statusname', target: '案件状态' },
+
+    { source: 'address', target: '案件发生地址' },
+    { source: 'districtEventtype1', target: '案件大类' },
+    { source: 'districtEventtype2', target: '案件小类' },
+    { source: 'districtEventtype3', target: '案件子类' },
+    { source: 'description', target: '案件描述' },
+    { source: 'eventdiscovertype', target: '案件三动' },
+    { source: 'opents', target: '案件发生时间' },
+    { source: 'chsEventsourcetype', target: '案件来源方式' },
+    { source: 'executedeptname', target: '主责单位' },
+    { source: 'reporter', target: '反应人' },
+  ],
+  workorder_point: [
+    { source: 'atname', target: '管理要点' },
+    { source: 'createtime', target: '立案时间' },
+    { source: 'infobcname', target: '案件大类' },
+    { source: 'infoscname', target: '案件小类' },
+    { source: 'infozcname', target: '案件子类' },
+    { source: 'statusname', target: '案件状态' },
+
+    { source: 'address', target: '案件发生地址' },
+    { source: 'districtEventtype1', target: '案件大类' },
+    { source: 'districtEventtype2', target: '案件小类' },
+    { source: 'districtEventtype3', target: '案件子类' },
+    { source: 'description', target: '案件描述' },
+    { source: 'eventdiscovertype', target: '案件三动' },
+    { source: 'opents', target: '案件发生时间' },
+    { source: 'chsEventsourcetype', target: '案件来源方式' },
+    { source: 'executedeptname', target: '主责单位' },
+    { source: 'reporter', target: '反应人' },
+  ],
+  yaofang: [
+    { source: 'name', target: '名称' },
+    { source: 'address', target: '地址' },
+    { source: 'license_number', target: '营业执照' },
+    { source: 'status', target: '状态' },
+    { source: 'type_', target: '类型' },
+  ],
+  bianlidian: [
+    { source: 'NAME', target: '名称' },
+    { source: 'address', target: '地址' },
+    { source: 'street_name', target: '街道名称' },
+    { source: 'grid_name', target: '网格名称' },
+    { source: 'juwei_name', target: '居委名称' },
+  ],
+  tyc: [
+    { source: '名称', target: '名称' },
+    { source: 'address', target: '地址' },
+    { source: 'street_name', target: '街道名称' },
+    { source: 'grid_name', target: '网格名称' },
+    { source: 'juwei_name', target: '居委名称' },
+    { source: 'facility_institutions', target: '机构' },
+    { source: 'facility_scale', target: '场馆面积' },
+    { source: 'facility_type', target: '场馆类型' },
+  ],
+  gujiaozhan: [
+    { source: '名称', target: '名称' },
+    { source: '归属部门', target: '归属部门' },
+    { source: '所属线路', target: '所属线路' },
+    { source: '所属车站', target: '所属车站' },
+    { source: '出入口名称', target: '出入口名称' },
+    { source: 'street_name', target: '街道名称' },
+    { source: 'grid_name', target: '网格名称' },
+    { source: 'juwei_name', target: '居委名称' },
+  ],
+  publicjioatong: [
+    { source: '名称', target: '名称' },
+    { source: '归属部门', target: '归属部门' },
+    { source: 'street_name', target: '街道名称' },
+    { source: 'grid_name', target: '网格名称' },
+    { source: 'juwei_name', target: '居委名称' },
+  ],
+  publiczhanpai: [
+    { source: '名称', target: '名称' },
+    { source: 'street_name', target: '街道名称' },
+    { source: 'grid_name', target: '网格名称' },
+    { source: 'juwei_name', target: '居委名称' },
+  ],
+  rediannandian电动自行车: [
+    { source: 'sg010004', target: '常住地址' },
+    // { source: 'sg010012', target: '车牌类型' },
+    { source: 'sg010013', target: '车牌号' },
+    { source: 'sg010014', target: '购车年月' },
+    // { source: 'sg010015', target: '主要用途' },
+    // { source: 'sg010016', target: '电池电压' },
+    { source: 'sg010017', target: '购电池年月' },
+    // { source: 'sg010018', target: '是否改装' },
+    // { source: 'sg010019', target: '主要停放场所' },
+    // { source: 'sg010020', target: '充电场所' },
+    { source: 'sg010005', target: '所属小区' },
+    { source: 'sg010007', target: '所属居村名称' },
+    { source: 'sg010009', target: '所属街镇名称' },
+    { source: 'sg010011', target: '所属区名称' },
+    { source: 'sgLength', target: '楼栋上报数量' },
+  ],
+};
+
+export function handlePointQuery(res) {
+  console.log(res);
+  let title = res.title;
+  let data = res.data;
+  let returnObj = {};
+  if (title === 'gy') {
+    delete data['st_area(SHAPE)'];
+    delete data['st_perimeter(SHAPE)'];
+  }
+  if (title === 'yiyuan') {
+    delete data.x_ori;
+    delete data.y_ori;
+  }
+  if (title === 'qiyedianwei') {
+    delete data.person_cetf_type_gb;
+    delete data.trade_start_date;
+    delete data.corp_type;
+    delete data.resdata;
+    delete data.bz_address;
+  }
+  if (title === 'rediannandian电动自行车') {
+    data.sg010014 = data.sg010014.substring(0,11);
+    data.sg010017 = data.sg010017.substring(0,11)
+  }
+  let keys = Object.keys(data);
+
+  if (title === 'qiyedianwei') {
+    moveToFirst(keys, 'name');
+    keys = keys.filter((k) => k !== 'type');
+  }
+  if (title === 'zhy_15sadian') {
+    moveToFirst(keys, 'name');
+  }
+  if (title === 'bhfw') {
+    moveToFirst(keys, '原名称');
+    moveToFirst(keys, '现名称');
+  }
+
+  moveToFirst(keys, '名称');
+  moveToFirst(keys, 'name');
+  for (let key of keys) {
+    if (
+      [
+        'objectid',
+        'objectid_1',
+        'id',
+        'xh',
+        'geom',
+        '坐标x',
+        '坐标y',
+        'pointX',
+        'pointY',
+        'pointx',
+        'pointy',
+        'centerX',
+        'centerY',
+        'x',
+        'y',
+        'ori_x',
+        'ori_y',
+        'basijd',
+        'basiwd',
+        'bdjd',
+        'bdwd',
+        'juwei_code',
+        's_last_updatetime',
+        'i_time',
+        'jurge_jingan',
+        '初始时间',
+        '变更时间',
+        '提交日期',
+      ].includes(key)
+    ) {
+      continue;
+    }
+    if (!data[key]) {
+      continue;
+    }
+    if (data[key] == 0) {
+      continue;
+    }
+    let k = generateTrans.find((i) => i.source === key)?.target || key;
+
+    if (k === 'name') {
+      if (title === 'qiyedianwei') {
+        k = '企业名称';
+      } else {
+        k = '名称';
+      }
+    }
+
+    if (k === '案件发生时间') {
+      data[key] = data[key].replace('+08', '');
+    }
+    if (k === '立案时间') {
+      data[key] = new Date(data[key]).toLocaleString();
+    }
+    returnObj[k] = data[key];
+    if (k === 'status' && title.includes('rediannandian')) {
+      delete returnObj[k];
+    }
+  }
+
+  if (trans[title]) {
+    returnObj = {};
+    for (let item of trans[title]) {
+      if (data[item.source]) {
+        returnObj[item.target] = data[item.source];
+      }
+    }
+  }
+  console.log(returnObj);
+  return returnObj;
+}
+
+export function moveToFirst(arr, item) {
+  const index = arr.indexOf(item);
+  if (index !== -1) {
+    arr.unshift(arr.splice(index, 1)[0]);
+  }
+}

+ 414 - 0
src/utils/map/baseMethod.js

@@ -0,0 +1,414 @@
+import {
+  addMapLayer,
+  addMyGraph,
+  clearMap,
+  ClearMap,
+  emptyAllLayers,
+  layerControlNew,
+  LayerQuery,
+  removeMapLayers,
+  setCamera,
+  addMyGraphByData_TJ,
+  addPointMap,
+} from '@/utils/map/AddLayer.js';
+import { getGroupLayers, getLayerInfo } from '@/utils/mapService/local-data.js';
+import { useRoute } from 'vue-router';
+
+export function initDistrict() {
+  ClearMap();
+  setCamera({
+    "position": {
+      "spatialReference": {
+        "wkid": 102100
+      },
+      "x": -3067.368942152511,
+      "y": 659.4091803930714,
+      "z": 597106.9058911303
+    },
+    "heading": 0.2688540229922883,
+    "tilt": 0.49999999999913347
+  });
+  let layerInfo = getLayerInfo('quxian');
+  addMapLayer({
+    ...layerInfo,
+    visible: true
+  })
+}
+
+export function changeStreet(val,isGoto = true, isDraw = true) {
+  ClearMap();
+  let layerInfoCx = getLayerInfo('quxian');
+  LayerQuery({
+    url: layerInfoCx.url + '/0',
+    where: `NAME='${val}'`,
+    queryId: 'fanwei',
+    layerid: 0,
+    title: 'fanwei',
+    is_goto: isGoto,
+    is_draw: isDraw,
+    is_clear: true,
+  });
+}
+
+export function handleLayer(item, val) {
+  let where = getGenerateWhere(item);
+  if (item.group) {
+    let groupLayers = getGroupLayers(item.group);
+    groupLayers.forEach((layer) => {
+      if (layer.sublayers && layer.sublayers.length > 0) {
+        layer.sublayers.forEach((i) => {
+          i.definitionExpression = where;
+        });
+      }
+      addMapLayer({
+        ...layer,
+        id: layer.title,
+        visible: val,
+        is_goto: false,
+        is_legend: false,
+        where: where,
+      });
+    });
+  } else {
+    if (item.sublayers && item.sublayers.length > 0) {
+      item.sublayers.forEach((i) => {
+        i.definitionExpression = where;
+      });
+    }
+    addMapLayer({
+      ...item,
+      id: item.title,
+      visible: item.visible,
+      is_goto: false,
+      is_legend: false,
+      where: where,
+    });
+  }
+}
+
+export const handleCaseLayer = (item, geometry, val) => {
+  if (item.group) {
+    let groupLayers = getGroupLayers(item.group).filter((el) => el.type == 'feature');
+    groupLayers.forEach((layer) => {
+      if (layer.sublayers && layer.sublayers.length > 0) {
+        // layer.sublayers.forEach((i) => {
+        //   i.definitionExpression = where;
+        // });
+      }
+      addMapLayer({
+        ...layer,
+        id: layer.title,
+        visible: val,
+        is_goto: false,
+        is_legend: false,
+        filter: {
+          geometry: geometry,
+          relationship: 'contains',
+        },
+        params: {
+          elevationInfo: {
+            // mode: "relative-to-ground"
+            mode: 'absolute-height',
+            offset: 3,
+          },
+        },
+      });
+    });
+  } else {
+    if (item.sublayers && item.sublayers.length > 0) {
+      // item.sublayers.forEach((i) => {
+      //   i.definitionExpression = where;
+      // });
+    }
+    addMapLayer({
+      ...item,
+      id: item.title,
+      visible: val,
+      is_goto: false,
+      is_legend: false,
+      filter: {
+        geometry: geometry,
+        relationship: 'contains',
+      },
+    });
+  }
+};
+
+export function getGenerateWhere(item) {
+  const eventInteractionStore = useEventInteractionStore();
+  let where = '1 = 1';
+  if (eventInteractionStore.selectStreetValue) {
+    where = "street_name = '" + eventInteractionStore.selectStreetValue + "'";
+  }
+  if (eventInteractionStore.selectGridValue) {
+    where = "street_name = '" + eventInteractionStore.selectStreetValue + "'";
+    where += " and grid_name = '" + eventInteractionStore.selectGridValue + "'";
+
+    if (item?.title === 'wgaj-feature') {
+      where = "res_grid_name = '" + eventInteractionStore.selectGridValue + "'";
+    }
+  }
+  if (eventInteractionStore.selectJuwei) {
+    let juweiName = eventInteractionStore.juweiList.find(
+      (j) => j.juweiCode == eventInteractionStore.selectJuwei,
+    ).juweiName;
+    where = "juwei_name = '" + juweiName + "'";
+    // where = "juwei_name = '" + eventInteractionStore.selectJuwei + "'"
+  }
+  if (eventInteractionStore.selectXiaoqu) {
+    where = "community_name = '" + eventInteractionStore.selectXiaoqu + "'";
+  }
+  return where;
+}
+
+export function addGenerateWhere(item) {
+  let where = getGenerateWhere(item);
+  if (item?.eventdiscovertype) {
+    where = (where ? where + ' and ' : '') + `eventdiscovertype = '${item.eventdiscovertype}'`;
+  }
+  if (item?.chs_eventsourcetype) {
+    where = (where ? where + ' and ' : '') + `chs_eventsourcetype = '${item.chs_eventsourcetype}'`;
+  }
+  if (item?.startTime) {
+    const str = item?.layName == 'wgaj_case' ? 'opents_date' : 'discovertime';
+    where = (where ? where + ' and ' : '') + `${str} >= '${item.startTime}'`;
+  }
+  if (item?.endTime) {
+    const str = item?.layName == 'wgaj_case' ? 'opents_date' : 'discovertime';
+    where = (where ? where + ' and ' : '') + `${str} <= '${item.endTime}'`;
+  }
+  if (item?.district_eventtype1) {
+    where = (where ? where + ' and ' : '') + `district_eventtype1 = '${item.district_eventtype1}'`;
+  }
+  if (item?.district_eventtype2) {
+    where = (where ? where + ' and ' : '') + `district_eventtype2 = '${item.district_eventtype2}'`;
+  }
+  if (item?.district_eventtype3) {
+    where = (where ? where + ' and ' : '') + `district_eventtype3 = '${item.district_eventtype3}'`;
+  }
+  if (item?.chs_synctitle) {
+    where = (where ? where + ' and ' : '') + `chs_synctitle = '${item.chs_synctitle}'`;
+  }
+  if (item?.infobcname) {
+    where = (where ? where + ' and ' : '') + `infobcname = '${item.infobcname}'`;
+  }
+  if (item?.infoscname) {
+    where = (where ? where + ' and ' : '') + `infoscname = '${item.infoscname}'`;
+  }
+  if (item?.infozcname) {
+    where = (where ? where + ' and ' : '') + `infozcname = '${item.infozcname}'`;
+  }
+  if (item?.executedeptname) {
+    where = (where ? where + ' and ' : '') + `executedeptname = '${item.executedeptname}'`;
+  }
+  if (item?.statusname) {
+    where = (where ? where + ' and ' : '') + `statusname = '${item.statusname}'`;
+  }
+
+  return where;
+}
+
+//人口公共设施企业点位图
+export function addMultiImagePoints(layerID, params, imgurl, size = '50px') {
+  if (params?.data) {
+    params.data = params.data.map((item) => {
+      return {
+        ...item,
+        mapz: 3,
+      };
+    });
+  }
+  addMyGraph({
+    is_clear: false,
+    is_goto: false,
+    type: 'points',
+    data: [],
+    attributes: null,
+    symbol: {
+      type: 'picture-marker',
+      url: imgurl || '',
+      width: size,
+      height: size,
+    },
+    is_temp: true,
+    layerID: layerID || 'addImagePoint',
+    ...params,
+  });
+}
+export function addSingleImagePoint(layerID, params, size = '50px') {
+  addMyGraph({
+    is_clear: false,
+    is_goto: false,
+    type: 'points',
+    data: [
+      {
+        ...params,
+        mapz: 3,
+      },
+    ],
+    attributes: null,
+    symbol: {
+      type: 'picture-marker',
+      url: params.imgurl || '',
+      width: size,
+      height: size,
+    },
+    is_temp: true,
+    ...params,
+    layerID: layerID || 'addImagePoint',
+  });
+}
+
+//根据点添加3d标签
+export function addLanel3D(center, text, height = 150) {
+  addMyGraph({
+    is_clear: true,
+    is_goto: false,
+    type: 'point',
+    data: center,
+    attributes: null,
+    symbol: {
+      type: 'point-3d', // autocasts as new PointSymbol3D()
+      symbolLayers: [
+        // {
+        //   type: "icon", // autocasts as new IconSymbol3DLayer()
+        //   resource: {
+        //     href: new URL(`../../assets/images/newnm/户籍1.png`, import.meta.url).href || '',
+        //   },
+        //   size: 50,
+        // },
+        {
+          type: 'icon', // autocasts as new IconSymbol3DLayer()
+          resource: {
+            href: 'images/kuang_mc_1.png',
+          },
+          size: 350,
+          outline: {
+            color: 'white',
+            size: 2,
+          },
+          anchor: 'relative',
+          anchorPosition: {
+            x: 0,
+            y: -0.2,
+          },
+        },
+        {
+          type: 'text', // autocasts as new TextSymbol3DLayer()
+          material: {
+            color: 'white',
+          },
+          halo: {
+            color: [255, 215, 100, 0.5],
+            size: 2,
+          },
+          font: {
+            family: 'Belleza',
+          },
+          size: 30,
+          text: text,
+        },
+      ],
+      verticalOffset: {
+        screenLength: height,
+        maxWorldLength: 300,
+        minWorldLength: 50,
+      },
+      // callout: {
+      //   type: 'line', // autocasts as new LineCallout3D()
+      //   size: 5,
+      //   color: [255, 255, 255],
+      //   border: {
+      //     color: [255, 255, 255],
+      //   },
+      // },
+    },
+    is_temp: true,
+    layerID: 'centerLabel',
+  });
+}
+
+export function clearBaseLayer() {
+  let baseLayerArr = [
+    'jdxz-feature',
+    'zhwg-feature',
+    'centerLabel',
+    'jwh-feature',
+    'xiaoqu_temp',
+    'xiaoqu_temp1',
+    'build-feature',
+    'JAWHITE',
+  ];
+  baseLayerArr.forEach((layer) => {
+    removeMapLayers(layer);
+  });
+
+  // emptyAllLayers([]);
+
+  // const serviceLengendStore = useServiceLengend();
+  // if (serviceLengendStore.JACFIsOpen) {
+  //   let layerInfo = getLayerInfo('JACF');
+  //   addMapLayer({
+  //     ...layerInfo,
+  //     visible: true,
+  //     where: '1=1',
+  //   });
+  // }
+}
+
+export const addNumberMyGraph = (point, count, layerID, visible = false) => {
+  addMyGraph({
+    is_clear: visible,
+    is_goto: false,
+    type: 'point',
+    data: point,
+    attributes: {
+      name: count,
+    },
+    symbol: {
+      type: 'text', // autocasts as new TextSymbol()
+      color: 'white',
+      text: count,
+      backgroundColor: [0, 0, 0, 0.5],
+      xoffset: 0,
+      yoffset: 0,
+      font: {
+        size: 20,
+      },
+    },
+    is_temp: true,
+    layerID: layerID,
+  });
+};
+
+function getQueryParam(name) {
+  let url = window.location.href;
+  let params = new URLSearchParams(url.split('?')[1]);
+  return params.get(name);
+}
+
+//服务去除labelingInfo
+export const handleRegionLayerWithOutLabel = (bol) => {
+  const eventInteractionStore = useEventInteractionStore();
+  let title = 'jdxz-feature';
+  if (eventInteractionStore.selectStreetValue) {
+    title = 'zhwg-feature';
+  }
+  if (eventInteractionStore.selectGridValue) {
+    title = 'jwh-feature';
+  }
+  if (eventInteractionStore.selectJuwei) {
+    title = '';
+
+    layerControlNew('xiaoqu_temp1', !bol, 1, '1=1');
+  }
+
+  if (title !== '') {
+    let layerInfo = getLayerInfo(title);
+    addMapLayer({
+      ...layerInfo,
+      labelingInfo: bol ? undefined : layerInfo.labelingInfo,
+      visible: true,
+    });
+  }
+};

+ 13 - 0
src/utils/map/map.js

@@ -0,0 +1,13 @@
+let myBridge = {
+  bridgeContent:{},
+  smallBridge:{
+ 
+  },
+  testBridge:{
+ 
+  }
+ }
+ 
+ export {
+  myBridge
+}

+ 67 - 0
src/utils/mapService/local-data.js

@@ -0,0 +1,67 @@
+//物面板
+import { addMapLayer } from '@/utils/map/AddLayer.js';
+
+//服务
+export const serviceArr = [
+  {
+    name: '区县',
+    visible: false,
+    opacity: 1,
+    title: 'quxian',
+    id: 'quxian',
+    url: import.meta.env.VITE_LOCAL_CONTENT_URL + '/OneMapServer/rest/services/z02_district_boundary/MapServer',
+    type: 'dynamic',
+  }
+];
+
+export function getLayerInfo(title) {
+  const arr = JSON.parse(JSON.stringify(serviceArr))
+  return arr.filter((item) => item.title === title)[0];
+}
+
+export function getGroupLayers(groupId) {
+  return serviceArr.filter((item) => item.group === groupId);
+}
+
+export function initMap(bol) {
+  let bm = getLayerInfo('JAWHITE');
+  let cx = getLayerInfo('cx');
+
+  addMapLayer({
+    ...bm,
+    visible: bol,
+  });
+  addMapLayer({
+    ...cx,
+    url: cx.url + '/3',
+    type: 'feature',
+    visible: bol,
+    renderer: {
+      type: 'simple',
+      symbol: {
+        type: 'simple-fill',
+        color: [25, 255, 236, 0.1],
+        outline: {
+          color: [255, 255, 255, 1],
+          width: 1,
+        },
+      },
+    },
+    // sublayers: [
+    //   {
+    //     id: 3,
+    //     renderer: {
+    //       type: "simple",
+    //       symbol: {
+    //         type: "simple-fill",
+    //         color: [255, 255, 0, 0.1],
+    //         outline: {
+    //           color: [255, 255, 255, 1],
+    //           width: 1,
+    //         },
+    //       }
+    //     }
+    //   }
+    // ]
+  });
+}

+ 2 - 1
src/views/index.vue

@@ -1,5 +1,6 @@
 <template>
   <div class="home_container">
+    <Map/>
     <!-- 头部 -->
     <div class="home_container_header">
       <div class="home_container_header-left">
@@ -47,7 +48,6 @@
     <div class="home_content_right">
       <RightPage :activeIndex="activeIndex"></RightPage>
     </div>
-
     <!-- 底部片区图层按钮 -->
     <AreaLayerSwitch></AreaLayerSwitch>
   </div>
@@ -56,6 +56,7 @@
 import AreaLayerSwitch from "../components/AreaLayerSwitch/index";
 import LeftPage from "./left/index.vue";
 import RightPage from "./right/index.vue";
+import Map from "@/components/Map.vue";
 import { storeToRefs } from "pinia";
 import { useUserStore } from "../store/user";
 import { useCommonStore } from "../store/common.js";