Просмотр исходного кода

套合分析生成导出相关接口提交

wanger 1 год назад
Родитель
Сommit
f532fe0bf1

+ 6 - 3
onemap-modules/onemap-overlap/src/main/java/com/onemap/overlap/service/impl/DataImp.java

@@ -70,6 +70,8 @@ public class DataImp implements DataService {
     String checkedstyle;
     @Value("${spotstyle}")
     String spotstyle;
+    @Value("${charset}")
+    String charset;
 
 
     @Override
@@ -241,7 +243,7 @@ public class DataImp implements DataService {
             String geoserverusername = resultSet.getString("username");
             String geoserverpassword = resultSet.getString("password");
             String geoserverworkspace = resultSet.getString("workspace");
-            GeoServer.publishShp(geoserverurl, geoserverusername, geoserverpassword, geoserverworkspace, shpPath, style, datasource);
+            GeoServer.publishShp(geoserverurl, geoserverusername, geoserverpassword, geoserverworkspace, shpPath, style, datasource, charset);
             //注册数据到属性表 http://192.168.60.52:28085/geoserver/spot/wms spot:基本农田 EPSG:4525
             String layerurl = geoserverurl + "/" + geoserverworkspace + "/wms";
             String layername = geoserverworkspace + ":" + datasource;
@@ -252,8 +254,8 @@ public class DataImp implements DataService {
                         "'" + layerurl + "', 'WMS', '" + layername + "', '" + epsg + "')";
             } else if ("analyse".equals(type)) {//分析图斑
 //                resourcesConfig.publishResourceMappingEvent(tablename, folderpath);
-                insertSQL = "insert into t_analyse_vector (layername , tablename, path, serviceuri , servicetype, servicename, serviceproj) values ('" + name + "', '" + tablename + "', '" + folderpath + "'," +
-                        "'" + layerurl + "', 'WMS', '" + layername + "', '" + epsg + "')";
+                insertSQL = "insert into t_analyse_vector (layername , tablename, path, serviceuri , servicetype, servicename, serviceproj, ufield) values ('" + name + "', '" + tablename + "', '" + folderpath + "'," +
+                        "'" + layerurl + "', 'WMS', '" + layername + "', '" + epsg + "', '" + ufield + "')";
             }
             statement.execute(insertSQL);
             connection.close();
@@ -675,6 +677,7 @@ public class DataImp implements DataService {
                 cur.put("servicetype", resultSet.getString("servicetype"));
                 cur.put("servicename", resultSet.getString("servicename"));
                 cur.put("serviceproj", resultSet.getString("serviceproj"));
+                cur.put("ufield", resultSet.getString("ufield"));
                 res.add(cur);
             }
             connection.close();

+ 8 - 1
onemap-modules/onemap-overlap/src/main/java/com/onemap/overlap/utils/AchievementPackage.java

@@ -131,7 +131,8 @@ public class AchievementPackage {
             }
             //TODO 创建Excel工作簿和工作表
             Workbook workbook = new XSSFWorkbook();
-
+            //TODO 压覆截图外扩的比例  0-1表示0%-100%
+            Double sizeBuffer = 0.1;
             //TODO 遍历管控数据,根据重叠的swid集合查询属性表并保存到excel的sheet
             for (int i = 0; i < tables.size(); i++) {
                 String curtablename = (String) tables.get(i).get("tablename");
@@ -146,6 +147,12 @@ public class AchievementPackage {
                     Double xmax = Double.valueOf(geometry.getXmax());
                     Double ymin = Double.valueOf(geometry.getYmin());
                     Double ymax = Double.valueOf(geometry.getYmax());
+                    //TODO wanger 压覆截图统一根据sizeBuffer外扩
+                    xmin = xmin - (xmax - xmin) * sizeBuffer;
+                    xmax = xmax + (xmax - xmin) * sizeBuffer;
+                    ymin = ymin - (ymax - ymin) * sizeBuffer;
+                    ymax = ymax + (ymax - ymin) * sizeBuffer;
+
                     params.put("SERVICE", "WMS");
                     params.put("VERSION", "1.1.1");
                     params.put("REQUEST", "GetMap");

+ 2 - 2
onemap-modules/onemap-overlap/src/main/java/com/onemap/overlap/utils/GeoServer.java

@@ -80,7 +80,7 @@ public class GeoServer {
      * @param stylename
      * @throws IOException
      */
-    public static void publishShp(String geoserverurl, String username, String password, String workspace, String filepath, String stylename, String datasource) throws IOException {
+    public static void publishShp(String geoserverurl, String username, String password, String workspace, String filepath, String stylename, String datasource, String charset) throws IOException {
 //        File file = new File(filepath);
 //        String fileName = file.getName();
 //        int dotIndex = fileName.lastIndexOf('.');
@@ -97,7 +97,7 @@ public class GeoServer {
                 "<connectionParameters>" +
                 "<entry key=\"url\">file:" + filepath + "</entry>" +
                 "<entry key=\"connector\">Shapefile</entry>" +
-                "<entry key=\"charset\">UTF-8</entry>" +
+                "<entry key=\"charset\">" + charset + "</entry>" +
                 "</connectionParameters>" +
                 "</dataStore>";
         HttpPost postRequest = new HttpPost(geoserverurl + "/rest/workspaces/" + workspace + "/datastores");

+ 4 - 2
onemap-modules/onemap-overlap/src/main/resources/application.yml

@@ -16,7 +16,7 @@ spring:
 # tomcat配置
 server:
   port: 9206
-  host: http://127.0.0.1
+  host: http://192.168.60.52
 # swagger配置
 swagger:
   title: 系统模块接口文档
@@ -51,4 +51,6 @@ mapExport:
   size: 600
 # 套合分析完成后更新geoserver的符号样式配置
 checkedstyle: spot:spotcheck
-spotstyle: spot:spot
+spotstyle: spot:spot
+# GeoServer 发布shp配置字符编码
+charset: GB2312