From 2291ad94887c724209ce42a03443476324d7bd00 Mon Sep 17 00:00:00 2001
From: rain <1679827795@qq.com>
Date: Thu, 29 Jan 2026 14:38:39 +0800
Subject: [PATCH] 派出所根据区域面查询
---
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwPoliceStationMapper.xml | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwPoliceStationMapper.xml b/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwPoliceStationMapper.xml
index fe2ddb7..38283de 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwPoliceStationMapper.xml
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwPoliceStationMapper.xml
@@ -83,4 +83,26 @@
SELECT * FROM ja_fw_police_station ${ew.customSqlSegment}
</select>
+ <!-- 根据多边形区域查询派出所 -->
+ <!--
+ 历史遗留问题:数据库表中 longitude 字段实际存储的是纬度值,latitude 字段实际存储的是经度值
+ 解决方案:
+ 1. POLYGON:用户输入是标准格式(经度 纬度),不做坐标交换
+ 2. POINT:数据库字段存反,构建时交换为 POINT(latitude, longitude)
+ -->
+ <select id="selectByPolygons" resultMap="fwPoliceStationResultMap">
+ SELECT * FROM ja_fw_police_station
+ WHERE is_deleted = 0
+ AND longitude IS NOT NULL
+ AND latitude IS NOT NULL
+ AND (
+ <foreach collection="polygons" item="polygon" separator=" OR ">
+ ST_Contains(
+ ST_SRID(ST_GeomFromText(#{polygon}), 4326),
+ ST_GeomFromText(CONCAT('POINT(', latitude, ' ', longitude, ')'), 4326)
+ )
+ </foreach>
+ )
+ </select>
+
</mapper>
--
Gitblit v1.9.3