gushoubang 9 mesiacov pred
rodič
commit
21fdbbcbba

+ 21 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/controller/analyse/ImageController.java

@@ -0,0 +1,21 @@
+package com.onemap.analyse.controller.analyse;
+
+import com.onemap.analyse.service.ISlopService;
+import com.onemap.common.core.web.domain.RequestResult;
+import com.onemap.common.datasource.annotation.Slave;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.annotation.Resource;
+
+public class ImageController {
+    // @Resource
+    // private IImageService iSlopService;
+
+    @GetMapping("/average")
+    @Slave
+    public RequestResult getAveSlop(@RequestParam(value = "geom") String geom) {
+        // return RequestResult.success(iSlopService.getAveSlop(geom));
+        return RequestResult.success(null);
+    }
+}

+ 1 - 1
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/domain/FzxzGeomInfoDTO.java → onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/domain/FzxzGeomInfoDTO1.java

@@ -9,7 +9,7 @@ import java.util.List;
 // 辅助选址分析列表
 @TableName("t_fzss_fzxz_geom_info")
 @Data
-public class FzxzGeomInfoDTO {
+public class FzxzGeomInfoDTO1 {
     private int objectid;
     // 选址标识码
     private String rwbsm;

+ 2 - 2
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/mapper/FzxzTbMapper.java

@@ -1,12 +1,12 @@
 package com.onemap.analyse.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.onemap.analyse.domain.FzxzGeomInfoDTO;
+import com.onemap.analyse.domain.FzxzGeomInfoDTO1;
 
 /**
  * 辅助选址图斑
  *
  * @author onemap
  */
-public interface FzxzTbMapper extends BaseMapper<FzxzGeomInfoDTO> {
+public interface FzxzTbMapper extends BaseMapper<FzxzGeomInfoDTO1> {
 }

+ 5 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/IImageService.java

@@ -0,0 +1,5 @@
+package com.onemap.analyse.service;
+
+public interface IImageService {
+    String getSensingImage(String geomWkt);
+}

+ 138 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/ImageServiceImpl.java

@@ -0,0 +1,138 @@
+package com.onemap.analyse.service.impl;
+
+import com.onemap.analyse.service.IImageService;
+import org.geotools.coverage.grid.GridCoverage2D;
+import org.geotools.coverage.grid.io.AbstractGridCoverage2DReader;
+import org.geotools.data.DataStoreFinder;
+import org.geotools.data.FeatureSource;
+import org.geotools.data.simple.SimpleFeatureCollection;
+import org.geotools.data.simple.SimpleFeatureSource;
+import org.opengis.feature.simple.SimpleFeature;
+import org.geotools.feature.simple.SimpleFeatureBuilder;
+import org.geotools.feature.simple.SimpleFeatureTypeBuilder;
+import org.geotools.geometry.jts.ReferencedEnvelope;
+import org.geotools.map.FeatureLayer;
+import org.geotools.map.GridReaderLayer;
+import org.geotools.map.Layer;
+import org.geotools.map.MapContent;
+import org.geotools.referencing.crs.DefaultGeographicCRS;
+import org.geotools.renderer.lite.StreamingRenderer;
+import org.geotools.renderer.style.Style;
+import org.geotools.styling.SLD;
+import org.geotools.util.factory.Hints;
+import org.locationtech.jts.geom.Geometry;
+import org.locationtech.jts.io.ParseException;
+import org.locationtech.jts.io.WKTReader;
+
+import org.opengis.feature.simple.SimpleFeatureType;
+import org.opengis.feature.type.FeatureType;
+
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 生成图片服务
+ */
+public class ImageServiceImpl implements IImageService {
+    /**
+     * 获取遥感图像
+     *
+     * @param geomWkt
+     * @return
+     */
+    @Override
+    public String getSensingImage(String geomWkt) {
+
+        //     try {
+        //
+        //
+        //         SimpleFeatureSource geometrySource = DataStoreFinder.getDataStore(postgisParams).getFeatureSource("your_geometry_table");
+        //
+        //         // 加载影像数据
+        //         Hints hints = new Hints(Hints.FORCE_LONGITUDE_FIRST_AXIS_ORDER, Boolean.TRUE);
+        //         AbstractGridCoverage2DReader rasterReader = (AbstractGridCoverage2DReader) DataStoreFinder.getDataStore(postgisParams).getFeatureSource("your_raster_table").getGridCoverageReader(new Hints());
+        //
+        //         // 创建样式
+        //         Style geometryStyle = (Style) SLD.createSimpleStyle(geometrySource.getSchema());
+        //         GridCoverage2D coverage = (GridCoverage2D) rasterReader.read(null);
+        //         Style rasterStyle = SLD.wrapGridCoverage(coverage);
+        //
+        //         // 创建地图内容
+        //         MapContent map = new MapContent();
+        //         map.setTitle("PostGIS Raster and Geometry Screenshot");
+        //
+        //         // 添加几何图层
+        //         Layer geometryLayer = new FeatureLayer(geometrySource, geometryStyle);
+        //         map.addLayer(geometryLayer);
+        //
+        //         // 添加影像图层
+        //         Layer rasterLayer = new GridReaderLayer(rasterReader, rasterStyle);
+        //         map.addLayer(rasterLayer);
+        //
+        //         // 创建渲染器
+        //         StreamingRenderer renderer = new StreamingRenderer();
+        //         renderer.setMapContent(map);
+        //
+        //         // 创建BufferedImage
+        //         int imageWidth = 800;
+        //         int imageHeight = 600;
+        //         BufferedImage image = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_ARGB);
+        //         Graphics2D graphics = image.createGraphics();
+        //
+        //         // 设置背景颜色
+        //         graphics.setPaint(Color.WHITE);
+        //         graphics.fillRect(0, 0, imageWidth, imageHeight);
+        //
+        //         // 设置视图
+        //         ReferencedEnvelope mapBounds = map.getMaxBounds();
+        //         renderer.paint(graphics, new java.awt.Rectangle(imageWidth, imageHeight), mapBounds);
+        //
+        //         // 保存截图
+        //         File outputfile = new File("screenshot.png");
+        //         ImageIO.write(image, "png", outputfile);
+        //
+        //         System.out.println("截图已保存到: " + outputfile.getAbsolutePath());
+        //
+        //     } catch (Exception e) {
+        //         e.printStackTrace();
+        //     }
+        //     return "";
+        // }
+        return "";
+    }
+}
+// public FeatureSource getFeatureResource(String geomWkt) throws ParseException {
+//     // // 1. 解析WKT数据为Geometry对象
+//     // WKTReader reader = new WKTReader();
+//     // Geometry geometry = reader.read(geomWkt);
+//     //
+//     // // 2. 创建SimpleFeatureType,定义Feature的结构
+//     // SimpleFeatureTypeBuilder typeBuilder = new SimpleFeatureTypeBuilder();
+//     // typeBuilder.setName("PolygonFeatureType");
+//     // typeBuilder.setCRS(org.geotools.referencing.crs.DefaultGeographicCRS.WGS84);
+//     // typeBuilder.add("geometry", Geometry.class);
+//     // SimpleFeatureType featureType = typeBuilder.buildFeatureType();
+//     //
+//     // // 3. 创建SimpleFeature,将Geometry对象放入Feature中
+//     // SimpleFeatureBuilder featureBuilder = new SimpleFeatureBuilder(featureType);
+//     // featureBuilder.add(geometry);
+//     // SimpleFeature feature = featureBuilder.buildFeature(null);
+//     //
+//     //
+//     // // 4. 创建FeatureCollection,将Feature放入其中
+//     // List<SimpleFeature> features = new ArrayList<>();
+//     // features.add(feature);
+//     // SimpleFeatureCollection collection = DataUtilities.collection(features);
+//     //
+//     // // 5. 创建FeatureSource
+//     // FeatureType ft = collection.getSchema();
+//     // FeatureSource featureSource = DataUtilities.source(collection);
+//     //
+//     // return featureSource;
+//     return "";
+// }

+ 4 - 5
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/ReportServiceImpl.java

@@ -25,7 +25,6 @@ import java.io.*;
 import java.math.BigInteger;
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * 生成报告
@@ -175,10 +174,10 @@ public class ReportServiceImpl implements IReportService {
             // TODO 二、选址范围分析
             NpoiHelper.catalog(document, "二、选址范围分析", pos++);
             // 查询辅助选址分析图斑
-            QueryWrapper<FzxzGeomInfoDTO> wrapperTb = new QueryWrapper<>();
-            wrapperTb.eq("rwbsm", res.getBsm());
-            wrapperTb.groupBy("objectid", "rwbsm", "ydyhfldm", "ydyhflmc", "frequency", "sum_mj");
-            List<FzxzGeomInfoDTO> fzxzTbEntityDTOList = fzxzTbMapper.selectList(wrapperTb);
+            // QueryWrapper<FzxzGeomInfoDTO1> wrapperTb = new QueryWrapper<>();
+            // wrapperTb.eq("rwbsm", res.getBsm());
+            // wrapperTb.groupBy("objectid", "rwbsm", "ydyhfldm", "ydyhflmc", "frequency", "sum_mj");
+            // List<FzxzGeomInfoDTO1> fzxzTbEntityDTOList = fzxzTbMapper.selectList(wrapperTb);
             // 计算面积总和
             // TODO
             double sumcount = 0;

+ 1 - 1
onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/fzss/FzxzMapper.xml

@@ -51,7 +51,7 @@
         where t.bsm = #{bsm}
         order by t.cjsj desc
     </select>
-    <select id="GetOneByBsm" parameterType="java.lang.String" resultType="com.onemap.analyse.domain.FzxzGeomInfoDTO">
+    <select id="GetOneByBsm" parameterType="java.lang.String" resultType="com.onemap.analyse.domain.FzxzGeomInfoDTO1">
         select t.OBJECTID as "objectid",
         t.RWBSM as "rwbsm",
         t.YDYHFLDM as "ydyhfldm",