From 1d2de0f2873c66bf7a9567eb7f2b4bee7330ff6c Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Fri, 12 Dec 2025 15:16:12 +0800
Subject: [PATCH] 优化禁飞区距离算法

---
 ard-system/src/main/java/com/ard/data/noflyzone/domain/ArdNoFlyZone.java |   34 ++++++++++++++++++++++++++++++----
 1 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/ard-system/src/main/java/com/ard/data/noflyzone/domain/ArdNoFlyZone.java b/ard-system/src/main/java/com/ard/data/noflyzone/domain/ArdNoFlyZone.java
index ea87870..1b88dd3 100644
--- a/ard-system/src/main/java/com/ard/data/noflyzone/domain/ArdNoFlyZone.java
+++ b/ard-system/src/main/java/com/ard/data/noflyzone/domain/ArdNoFlyZone.java
@@ -1,17 +1,22 @@
 package com.ard.data.noflyzone.domain;
 
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
 import com.ard.common.annotation.Excel;
 import com.ard.common.core.domain.BaseEntity;
+import com.ard.data.noflyzone.utils.NoFlyZoneUtils;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
 
 /**
  * 禁飞区管理对象 ard_no_fly_zone
  * 
- * @author ruoyi
+ * @author ard
  * @date 2025-10-14
  */
+@EqualsAndHashCode(callSuper = true)
 @Data
 @NoArgsConstructor
 @AllArgsConstructor
@@ -29,4 +34,25 @@
     /** 数据json */
     @Excel(name = "数据json")
     private FeatureCollection geojson;
+
+    /** 禁飞区外接矩形 */
+    private ArdNoFlyBox ardNoFlyBox;
+
+    private List<Vertex> vertices;
+
+    // 懒加载 / 动态计算
+    public ArdNoFlyBox getArdNoFlyBox() {
+        if (ardNoFlyBox == null && geojson != null) {
+            ardNoFlyBox = NoFlyZoneUtils.getArdNoFlyBox(geojson);
+        }
+        return ardNoFlyBox;
+    }
+
+    public List<Vertex> getVertices() {
+        if (vertices == null && geojson != null) {
+            vertices = NoFlyZoneUtils.toVertexes(geojson);
+        }
+        return vertices;
+    }
+
 }

--
Gitblit v1.9.3