feiyu02
2025-03-03 7eb2abf43167d9db3fca2e7958b90ff1bea0cead
src/views/satellitetelemetry/SatelliteProxy.js
@@ -7,6 +7,9 @@
  mapViews;
  districtPolygon;
  events = new Map();
  // 绘制区县边界
  drawDistrict(districtName, isNew) {
    onMapMounted(() => {
@@ -93,7 +96,11 @@
        ]
          // eslint-disable-next-line no-undef
          .map((d) => new AMap.LngLat(d[0], d[1])),
        extData: points[i]
        extData: {
          centerPoint: points[i],
          // gridPoints,
          gridCell: v
        }
      };
    });
    const gridViews = gridMapUtil.drawPolylines({ points: gridPoints, event });
@@ -189,7 +196,7 @@
  // 绘制网格遥感数据值和网格颜色
  drawGrid({
    gridData,
    gridDataDetail,
    useCustomColor,
    opacity,
    zIndex,
@@ -200,7 +207,7 @@
    const { resGridViews, pointsRes } = this.drawColor({
      gridViews: this.mapViews.gridViews,
      points: this.mapViews.points,
      gridDataDetail: gridData,
      gridDataDetail: gridDataDetail,
      lastGridViews: this.mapViews.lastGridViews,
      customColor: useCustomColor,
      opacity: opacity,
@@ -212,7 +219,7 @@
    // 数据标记
    const { textViews: dataTxt, labelsLayer: dataLayer } = this.drawDataText(
      this.mapViews.lastPoints,
      gridData,
      gridDataDetail,
      this.mapViews.dataTxt,
      this.mapViews.dataLayer
    );
@@ -221,7 +228,7 @@
    const { textViews: rankTxt, labelsLayer: rankLayer } = this.drawRankText(
      this.mapViews.lastPoints,
      gridData,
      gridDataDetail,
      this.mapViews.rankTxt,
      this.mapViews.rankLayer
    );
@@ -264,13 +271,38 @@
    });
  }
  setGridEvent(event) {
  setGridEvent(name, event) {
    if (!this.events.has(name)) {
      this.events.set(name, []);
    }
    const list = this.events.get(name);
    if (list.length > 0) {
      const lastEvent = list[list.length - 1];
    this.mapViews.gridViews.forEach((polygon) => {
      event(polygon);
        polygon.off(name, lastEvent);
      });
    }
    this.events.get(name).push(event);
    this.mapViews.gridViews.forEach((polygon) => {
      polygon.on(name, event);
    });
  }
  goBackGridEvent(name) {
    if (this.events.has(name)) {
      const eventList = this.events.get(name);
      //先移除原有的事件
      const lastEvent = eventList.pop();
      this.mapViews.gridViews.forEach((polygon) => {
        polygon.off(name, lastEvent);
      });
      //获取上一个事件
      const event = eventList.pop();
      this.mapViews.gridViews.forEach((polygon) => {
        polygon.on(name, event);
      });
    }
  }
}
// // 地图网格相关对象