From 8abe7be454c66e842fa7fd33d1d952108900474a Mon Sep 17 00:00:00 2001
From: lcj <2331845269@qq.com>
Date: Thu, 24 Apr 2025 18:03:59 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B0=86GeoJson=E8=BD=AC=E6=8D=A2=EF=BC=8C?=
=?UTF-8?q?=E5=B9=B6=E5=AD=98=E5=82=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
RuoYi-Vue-Plus/pom.xml | 9 ++
RuoYi-Vue-Plus/ruoyi-common/pom.xml | 2 +-
.../ruoyi-common/ruoyi-common-bom/pom.xml | 7 ++
.../common/json/config/JacksonConfig.java | 2 +-
.../ruoyi-common/ruoyi-common-jts/pom.xml | 26 ++++++
.../ruoyi-common/ruoyi-common-mapbox/pom.xml | 54 -----------
.../ruoyi-modules/ruoyi-system/pom.xml | 5 +
.../org/dromara/constant/GeoJsonConstant.java | 15 +++
.../controller/FacMatrixController.java | 12 +++
.../FacPhotovoltaicPanelController.java | 12 +++
.../FacPhotovoltaicPanelPartsController.java | 15 ++-
.../facility/domain/req/geojson/Feature.java | 22 +++++
.../domain/req/geojson/FeatureByLine.java | 22 +++++
.../domain/req/geojson/FeatureByPlane.java | 22 +++++
.../domain/req/geojson/FeatureByPoint.java | 22 +++++
.../facility/domain/req/geojson/GeoJson.java | 24 +++++
.../domain/req/geojson/GeoJsonByLine.java | 25 +++++
.../domain/req/geojson/GeoJsonByPlane.java | 25 +++++
.../domain/req/geojson/GeoJsonByPoint.java | 25 +++++
.../facility/domain/req/geojson/Geometry.java | 24 +++++
.../domain/req/geojson/GeometryByLine.java | 24 +++++
.../domain/req/geojson/GeometryByPlane.java | 24 +++++
.../domain/req/geojson/GeometryByPoint.java | 24 +++++
.../domain/req/geojson/Properties.java | 20 ++++
.../req/matrix/MatrixCreateByGeoJsonReq.java | 35 +++++++
.../PhotovoltaicPanelCreateByGeoJsonReq.java | 35 +++++++
...tovoltaicPanelPartsCreateByGeoJsonReq.java | 29 ++++++
.../facility/service/IFacMatrixService.java | 9 ++
.../IFacPhotovoltaicPanelPartsService.java | 9 ++
.../service/IFacPhotovoltaicPanelService.java | 9 ++
.../service/impl/FacMatrixServiceImpl.java | 82 +++++++++++++++++
.../FacPhotovoltaicPanelPartsServiceImpl.java | 91 +++++++++++++++++++
.../impl/FacPhotovoltaicPanelServiceImpl.java | 76 ++++++++++++++++
.../java/org/dromara/utils/GeoJsonUtils.java | 83 +++++++++++++++++
34 files changed, 863 insertions(+), 57 deletions(-)
create mode 100644 RuoYi-Vue-Plus/ruoyi-common/ruoyi-common-jts/pom.xml
delete mode 100644 RuoYi-Vue-Plus/ruoyi-common/ruoyi-common-mapbox/pom.xml
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/constant/GeoJsonConstant.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/Feature.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/FeatureByLine.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/FeatureByPlane.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/FeatureByPoint.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeoJson.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeoJsonByLine.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeoJsonByPlane.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeoJsonByPoint.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/Geometry.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeometryByLine.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeometryByPlane.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeometryByPoint.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/Properties.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/matrix/MatrixCreateByGeoJsonReq.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/photovoltaicpanel/PhotovoltaicPanelCreateByGeoJsonReq.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/photovoltaicpanelparts/PhotovoltaicPanelPartsCreateByGeoJsonReq.java
create mode 100644 RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/utils/GeoJsonUtils.java
diff --git a/RuoYi-Vue-Plus/pom.xml b/RuoYi-Vue-Plus/pom.xml
index bef08020..3885d66f 100644
--- a/RuoYi-Vue-Plus/pom.xml
+++ b/RuoYi-Vue-Plus/pom.xml
@@ -58,6 +58,8 @@
3.11.0
3.1.2
1.3.0
+
+ 1.20.0
@@ -357,6 +359,13 @@
${revision}
+
+
+ org.locationtech.jts
+ jts-core
+ ${jts.version}
+
+
diff --git a/RuoYi-Vue-Plus/ruoyi-common/pom.xml b/RuoYi-Vue-Plus/ruoyi-common/pom.xml
index 385d7114..b0bde13e 100644
--- a/RuoYi-Vue-Plus/ruoyi-common/pom.xml
+++ b/RuoYi-Vue-Plus/ruoyi-common/pom.xml
@@ -34,7 +34,7 @@
ruoyi-common-tenant
ruoyi-common-websocket
ruoyi-common-sse
- ruoyi-common-mapbox
+ ruoyi-common-jts
ruoyi-common
diff --git a/RuoYi-Vue-Plus/ruoyi-common/ruoyi-common-bom/pom.xml b/RuoYi-Vue-Plus/ruoyi-common/ruoyi-common-bom/pom.xml
index 24acb086..547640fd 100644
--- a/RuoYi-Vue-Plus/ruoyi-common/ruoyi-common-bom/pom.xml
+++ b/RuoYi-Vue-Plus/ruoyi-common/ruoyi-common-bom/pom.xml
@@ -179,6 +179,13 @@
${revision}
+
+
+ org.dromara
+ ruoyi-common-jts
+ ${revision}
+
+
diff --git a/RuoYi-Vue-Plus/ruoyi-common/ruoyi-common-json/src/main/java/org/dromara/common/json/config/JacksonConfig.java b/RuoYi-Vue-Plus/ruoyi-common/ruoyi-common-json/src/main/java/org/dromara/common/json/config/JacksonConfig.java
index 8f5a45d1..36400bc9 100644
--- a/RuoYi-Vue-Plus/ruoyi-common/ruoyi-common-json/src/main/java/org/dromara/common/json/config/JacksonConfig.java
+++ b/RuoYi-Vue-Plus/ruoyi-common/ruoyi-common-json/src/main/java/org/dromara/common/json/config/JacksonConfig.java
@@ -4,8 +4,8 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
-import org.dromara.common.json.handler.BigNumberSerializer;
import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.json.handler.BigNumberSerializer;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
diff --git a/RuoYi-Vue-Plus/ruoyi-common/ruoyi-common-jts/pom.xml b/RuoYi-Vue-Plus/ruoyi-common/ruoyi-common-jts/pom.xml
new file mode 100644
index 00000000..b4565041
--- /dev/null
+++ b/RuoYi-Vue-Plus/ruoyi-common/ruoyi-common-jts/pom.xml
@@ -0,0 +1,26 @@
+
+
+
+ org.dromara
+ ruoyi-common
+ ${revision}
+
+ 4.0.0
+
+ ruoyi-common-jts
+
+
+ ruoyi-common-jts 地图工具模块
+
+
+
+
+
+ org.locationtech.jts
+ jts-core
+
+
+
+
diff --git a/RuoYi-Vue-Plus/ruoyi-common/ruoyi-common-mapbox/pom.xml b/RuoYi-Vue-Plus/ruoyi-common/ruoyi-common-mapbox/pom.xml
deleted file mode 100644
index be0f26fd..00000000
--- a/RuoYi-Vue-Plus/ruoyi-common/ruoyi-common-mapbox/pom.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
- org.dromara
- ruoyi-common
- ${revision}
-
- 4.0.0
-
- ruoyi-common-mapbox
-
-
- ruoyi-common-mapbox 地图工具模块
-
-
-
-
- com.mapbox.mapboxsdk
- mapbox-sdk-geojson
- 7.4.0
-
-
-
- com.mapbox.mapboxsdk
- mapbox-sdk-services
- 7.4.0
-
-
-
- com.mapbox.mapboxsdk
- mapbox-sdk-turf
- 7.4.0
-
-
-
- com.mapbox.mapboxsdk
- mapbox-sdk-core
- 7.4.0
-
-
-
-
-
- mapbox-repo
- https://api.mapbox.com/downloads/v2/releases/maven
-
- false
-
-
-
-
-
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/pom.xml b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/pom.xml
index 0fc6d551..784a305b 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/pom.xml
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/pom.xml
@@ -100,6 +100,11 @@
ruoyi-common-sse
+
+ org.dromara
+ ruoyi-common-jts
+
+
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/constant/GeoJsonConstant.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/constant/GeoJsonConstant.java
new file mode 100644
index 00000000..a4638756
--- /dev/null
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/constant/GeoJsonConstant.java
@@ -0,0 +1,15 @@
+package org.dromara.constant;
+
+/**
+ * @author lcj
+ * @date 2025/4/24 17:44
+ */
+public interface GeoJsonConstant {
+
+ String POINT = "Point";
+
+ String LINE = "LineString";
+
+ String POLYGON = "Polygon";
+
+}
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacMatrixController.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacMatrixController.java
index 3e946e64..b6857a01 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacMatrixController.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacMatrixController.java
@@ -15,6 +15,7 @@ import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
+import org.dromara.facility.domain.req.matrix.MatrixCreateByGeoJsonReq;
import org.dromara.facility.domain.req.matrix.MatrixCreateReq;
import org.dromara.facility.domain.req.matrix.MatrixQueryReq;
import org.dromara.facility.domain.req.matrix.MatrixUpdateReq;
@@ -71,6 +72,17 @@ public class FacMatrixController extends BaseController {
return R.ok(facMatrixService.queryById(id));
}
+ /**
+ * 通过GeoJson新增设施-方阵
+ */
+ @SaCheckPermission("facility:matrix:add")
+ @Log(title = "设施-方阵", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping("/geoJson")
+ public R insertByGeoJson(@RequestBody MatrixCreateByGeoJsonReq req) {
+ return toAjax(facMatrixService.insertByGeoJson(req));
+ }
+
/**
* 新增设施-方阵
*/
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacPhotovoltaicPanelController.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacPhotovoltaicPanelController.java
index 4b43564f..0b86850c 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacPhotovoltaicPanelController.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacPhotovoltaicPanelController.java
@@ -15,6 +15,7 @@ import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
+import org.dromara.facility.domain.req.photovoltaicpanel.PhotovoltaicPanelCreateByGeoJsonReq;
import org.dromara.facility.domain.req.photovoltaicpanel.PhotovoltaicPanelCreateReq;
import org.dromara.facility.domain.req.photovoltaicpanel.PhotovoltaicPanelQueryReq;
import org.dromara.facility.domain.req.photovoltaicpanel.PhotovoltaicPanelUpdateReq;
@@ -82,6 +83,17 @@ public class FacPhotovoltaicPanelController extends BaseController {
return R.ok(facPhotovoltaicPanelService.insertByBo(req));
}
+ /**
+ * 通过GeoJson新增设施-光伏板
+ */
+ @SaCheckPermission("facility:photovoltaicPanel:add")
+ @Log(title = "设施-光伏板", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping("/geoJson")
+ public R insertByGeoJson(@RequestBody PhotovoltaicPanelCreateByGeoJsonReq geoJson) {
+ return toAjax(facPhotovoltaicPanelService.insertByGeoJson(geoJson));
+ }
+
/**
* 修改设施-光伏板
*/
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacPhotovoltaicPanelPartsController.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacPhotovoltaicPanelPartsController.java
index ba72aba6..9e4eb5e4 100644
--- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacPhotovoltaicPanelPartsController.java
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacPhotovoltaicPanelPartsController.java
@@ -5,10 +5,13 @@ import org.dromara.common.core.domain.R;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.facility.domain.req.photovoltaicpanelparts.PhotovoltaicPanelPartsCreateByGeoJsonReq;
import org.dromara.facility.domain.req.photovoltaicpanelparts.PhotovoltaicPanelPartsCreateReq;
import org.dromara.facility.service.IFacPhotovoltaicPanelPartsService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -21,11 +24,21 @@ import org.springframework.web.bind.annotation.RestController;
@Validated
@RestController
@RequestMapping("/facility/photovoltaicPanelPoint/parts")
-public class FacPhotovoltaicPanelPartsController {
+public class FacPhotovoltaicPanelPartsController extends BaseController {
@Resource
private IFacPhotovoltaicPanelPartsService photovoltaicPanelPartsService;
+ /**
+ * 通过GeoJson新增设施-光伏板桩点、立柱、支架
+ */
+ @Log(title = "设施-光伏板(桩点、立柱、支架)", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping("/geoJson")
+ public R insertPartsByGeoJson(@RequestBody PhotovoltaicPanelPartsCreateByGeoJsonReq req) {
+ return toAjax(photovoltaicPanelPartsService.insertPartsByGeoJson(req));
+ }
+
/**
* 新增设施-光伏板桩点、立柱、支架
*/
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/Feature.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/Feature.java
new file mode 100644
index 00000000..05602534
--- /dev/null
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/Feature.java
@@ -0,0 +1,22 @@
+package org.dromara.facility.domain.req.geojson;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author lcj
+ * @date 2025/4/24 17:38
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class Feature {
+
+ private String type;
+
+ private Geometry geometry;
+
+ private Properties properties;
+
+}
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/FeatureByLine.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/FeatureByLine.java
new file mode 100644
index 00000000..beaa7604
--- /dev/null
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/FeatureByLine.java
@@ -0,0 +1,22 @@
+package org.dromara.facility.domain.req.geojson;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author lcj
+ * @date 2025/4/24 10:40
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class FeatureByLine {
+
+ private String type;
+
+ private GeometryByLine geometry;
+
+ private Properties properties;
+
+}
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/FeatureByPlane.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/FeatureByPlane.java
new file mode 100644
index 00000000..9dee3724
--- /dev/null
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/FeatureByPlane.java
@@ -0,0 +1,22 @@
+package org.dromara.facility.domain.req.geojson;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author lcj
+ * @date 2025/4/24 10:32
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class FeatureByPlane {
+
+ private String type;
+
+ private GeometryByPlane geometry;
+
+ private Properties properties;
+
+}
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/FeatureByPoint.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/FeatureByPoint.java
new file mode 100644
index 00000000..59e9e64c
--- /dev/null
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/FeatureByPoint.java
@@ -0,0 +1,22 @@
+package org.dromara.facility.domain.req.geojson;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author lcj
+ * @date 2025/4/24 10:40
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class FeatureByPoint {
+
+ private String type;
+
+ private GeometryByPoint geometry;
+
+ private Properties properties;
+
+}
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeoJson.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeoJson.java
new file mode 100644
index 00000000..e6117815
--- /dev/null
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeoJson.java
@@ -0,0 +1,24 @@
+package org.dromara.facility.domain.req.geojson;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @author lcj
+ * @date 2025/4/24 17:37
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class GeoJson {
+
+ private String name;
+
+ private String type;
+
+ private List features;
+
+}
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeoJsonByLine.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeoJsonByLine.java
new file mode 100644
index 00000000..470385eb
--- /dev/null
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeoJsonByLine.java
@@ -0,0 +1,25 @@
+package org.dromara.facility.domain.req.geojson;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author lcj
+ * @date 2025/4/24 10:38
+ */
+@Data
+public class GeoJsonByLine implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = -1019429627483913266L;
+
+ private String name;
+
+ private String type;
+
+ private List features;
+
+}
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeoJsonByPlane.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeoJsonByPlane.java
new file mode 100644
index 00000000..508635d8
--- /dev/null
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeoJsonByPlane.java
@@ -0,0 +1,25 @@
+package org.dromara.facility.domain.req.geojson;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author lcj
+ * @date 2025/4/24 10:32
+ */
+@Data
+public class GeoJsonByPlane implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 7407176569611285023L;
+
+ private String name;
+
+ private String type;
+
+ private List features;
+
+}
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeoJsonByPoint.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeoJsonByPoint.java
new file mode 100644
index 00000000..d63a391c
--- /dev/null
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/GeoJsonByPoint.java
@@ -0,0 +1,25 @@
+package org.dromara.facility.domain.req.geojson;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author lcj
+ * @date 2025/4/24 10:38
+ */
+@Data
+public class GeoJsonByPoint implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 3829419654737988678L;
+
+ private String name;
+
+ private String type;
+
+ private List features;
+
+}
diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/Geometry.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/Geometry.java
new file mode 100644
index 00000000..fbd5558c
--- /dev/null
+++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/req/geojson/Geometry.java
@@ -0,0 +1,24 @@
+package org.dromara.facility.domain.req.geojson;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @author lcj
+ * @date 2025/4/24 17:38
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class Geometry {
+
+ private String type;
+
+ private List