From d594d7ee5f331b82f8de83e779be5b42501fdd81 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期三, 03 十二月 2025 15:10:17 +0800
Subject: [PATCH] #

---
 src/main/webapp/components/MapCanvas.js |   40 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 39 insertions(+), 1 deletions(-)

diff --git a/src/main/webapp/components/MapCanvas.js b/src/main/webapp/components/MapCanvas.js
index bcdab17..9c69671 100644
--- a/src/main/webapp/components/MapCanvas.js
+++ b/src/main/webapp/components/MapCanvas.js
@@ -96,7 +96,7 @@
   },
   methods: {
     createMap() {
-      this.pixiApp = new PIXI.Application({ backgroundColor: 0xF5F7F9FF });
+      this.pixiApp = new PIXI.Application({ backgroundColor: 0xF5F7F9FF, antialias: true });
       this.$refs.pixiView.appendChild(this.pixiApp.view);
       this.pixiApp.view.style.width = '100%';
       this.pixiApp.view.style.height = '100%';
@@ -151,6 +151,7 @@
         const newPosX = sx - worldX * newZoom;
         const newPosY = sy - worldY * newZoom;
         this.pixiApp.stage.setTransform(newPosX, newPosY, newZoom, newZoom, 0, 0, 0, 0, 0);
+        this.adjustLabelScale();
       });
       //*******************缂╂斁鐢诲竷*******************
 
@@ -380,6 +381,7 @@
       const posX = (vw - contentW * scale) / 2 - minX * scale;
       const posY = (vh - contentH * scale) / 2 - minY * scale;
       this.pixiApp.stage.setTransform(posX, posY, scale, scale, 0, 0, 0, 0, 0);
+      this.adjustLabelScale();
       this.map = map;
     },
     initWidth(map) {
@@ -500,6 +502,7 @@
               }
             }
           }
+          this.adjustLabelScale();
         }
       });
     },
@@ -560,6 +563,7 @@
               }
             }
           }
+          this.adjustLabelScale();
         }
       });
     },
@@ -858,5 +862,39 @@
     getTrackSiteNo(obj) {
       if (this.isJson(obj)) { let data = JSON.parse(obj); if (data.trackSiteNo == null || data.trackSiteNo == undefined) { return -1; } return data.trackSiteNo; } else { return -1; }
     },
+    adjustLabelScale() {
+      const s = this.pixiApp && this.pixiApp.stage ? (this.pixiApp.stage.scale.x || 1) : 1;
+      const minPx = 14;
+      this.pixiStaMap && this.pixiStaMap.forEach((sprite) => {
+        const textObj = sprite && sprite.textObj;
+        if (!textObj) { return; }
+        const base = (textObj.style && textObj.style.fontSize) ? textObj.style.fontSize : 10;
+        let scale = minPx / (base * s);
+        if (!isFinite(scale)) { scale = 1; }
+        scale = Math.max(0.8, Math.min(scale, 3));
+        textObj.scale.set(scale);
+        textObj.position.set(sprite.width / 2, sprite.height / 2);
+      });
+      this.pixiCrnMap && this.pixiCrnMap.forEach((sprite) => {
+        const textObj = sprite && sprite.textObj;
+        if (!textObj) { return; }
+        const base = (textObj.style && textObj.style.fontSize) ? textObj.style.fontSize : 12;
+        let scale = minPx / (base * s);
+        if (!isFinite(scale)) { scale = 1; }
+        scale = Math.max(0.8, Math.min(scale, 3));
+        textObj.scale.set(scale);
+        textObj.position.set(sprite.width / 2, sprite.height / 2);
+      });
+      this.pixiRgvMap && this.pixiRgvMap.forEach((sprite) => {
+        const textObj = sprite && sprite.textObj;
+        if (!textObj) { return; }
+        const base = (textObj.style && textObj.style.fontSize) ? textObj.style.fontSize : 12;
+        let scale = minPx / (base * s);
+        if (!isFinite(scale)) { scale = 1; }
+        scale = Math.max(0.8, Math.min(scale, 3));
+        textObj.scale.set(scale);
+        textObj.position.set(sprite.width / 2, sprite.height / 2);
+      });
+    }
   }
 });

--
Gitblit v1.9.1