Browse Source

去除缓冲区的范围

gushoubang 11 months ago
parent
commit
b4475d6216

+ 4 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/mapper/vector/AnalyseUtilsDBMapper.java

@@ -21,6 +21,9 @@ public interface AnalyseUtilsDBMapper {
 
     List<String> intersectsTables(@Param("tableNameA") String tableNameA, @Param("tableNameB") String tableNameB, @Param("tableIdsB") List<String> tableIdsB);
 
+
+    String intersectionEwkt(@Param("ewktA") String ewktA, @Param("ewktB") String ewktB);
+
     /**
      * 计算wkt包含table中的数据,返回table id
      *
@@ -41,6 +44,7 @@ public interface AnalyseUtilsDBMapper {
      */
     List<String> containsTables(@Param("tableNameA") String tableNameA, @Param("tableNameB") String tableNameB, @Param("tableIdsB") List<String> tableIdsB);
 
+
     /**
      * 计算wkt距离范围内table中的数据,返回table id
      *

+ 3 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/RasterServiceImpl.java

@@ -97,6 +97,9 @@ public class RasterServiceImpl implements IRasterService {
             bottomGeom = "SRID=4326;" + bottomGeom;
         }
 
+        // 返回划定范围内的矢量数据
+        midGeom=analyseUtilsDBMapper.intersectionEwkt(bottomGeom, midGeom);
+
         bottomGeom = analyseUtilsDBMapper.differenceWkt(bottomGeom, midGeom);
         resMap.put("midGeom", midGeom);
         resMap.put("bottomGeom", bottomGeom);

+ 4 - 0
onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/vector/AnalyseUtilsDBMapper.xml

@@ -17,6 +17,10 @@
         </if>
     </select>
 
+    <select id="intersectionEwkt" resultType="String">
+        SELECT public.ST_AsEWKT(public.ST_Intersection(public.st_geomfromewkt(#{ewktA}), public.st_geomfromewkt(#{ewktB})))
+    </select>
+
     <select id="intersectsTables" resultType="String">
         SELECT id
         FROM "${tableNameB}" tableB