FzxzPlanSchedule.java 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. package com.onemap.analyse.task;
  2. import com.onemap.analyse.domain.FzxzDTO;
  3. import com.onemap.analyse.domain.FzxzXzyzDTO;
  4. import com.onemap.common.core.web.domain.StatusMsg;
  5. // import com.supermap.analyst.spatialanalyst.OverlayAnalyst;
  6. // import com.supermap.analyst.spatialanalyst.OverlayAnalystParameter;
  7. // import com.supermap.data.*;
  8. // import com.supermap.data.conversion.DataImport;
  9. // import com.supermap.data.conversion.ImportMode;
  10. // import com.supermap.data.conversion.ImportResult;
  11. // import com.supermap.data.conversion.ImportSettingSHP;
  12. import org.springframework.stereotype.Component;
  13. import java.io.File;
  14. import java.util.List;
  15. /**
  16. * 辅助规划选址,通过超图iObject分析
  17. */
  18. @Component
  19. public class FzxzPlanSchedule {
  20. /**
  21. * @param fzxzDTO 选址任务
  22. * @param xzyzList 选址因子
  23. */
  24. public static void startPlan(FzxzDTO fzxzDTO, List<FzxzXzyzDTO> xzyzList) {
  25. // StatusMsg statusMsg = new StatusMsg();
  26. // //初始化失败返回结果
  27. // if (fzxzDTO.getFwlx() == 1) {
  28. // //statusMsg = setWorkspace();
  29. // // 绘制
  30. // String geoWkt = fzxzDTO.getXzfw();
  31. // Geometry geometry = Toolkit.WKTToGeometry(geoWkt);
  32. // statusMsg = siteAnalysis(geometry, xzyzList);
  33. // //拿到图层
  34. // } else if (fzxzDTO.getFwlx() == 2) {
  35. // // shp文件
  36. // statusMsg = siteAnalysis(fzxzDTO.getXzfw());
  37. // }
  38. }
  39. //private static StatusMsg setWorkspace() {
  40. // StatusMsg statusMsg = new StatusMsg();
  41. //
  42. // DatasourceConnectionInfo info = new DatasourceConnectionInfo();
  43. // info.setEngineType(EngineType.PGGIS);
  44. // //TODO:配置信息放到配置文件中
  45. // info.setServer("192.168.60.202:5432");
  46. // info.setDatabase("real3d");
  47. // info.setUser("postgres");
  48. // info.setPassword("postgres");
  49. //
  50. // Workspace mWorkspace = new Workspace();
  51. // Datasource datasource = mWorkspace.getDatasources().open(info);
  52. //
  53. // if (datasource == null) {
  54. // statusMsg.setMsg("创建数据源失败");
  55. // statusMsg.setB(false);
  56. // return statusMsg;
  57. // }
  58. // return statusMsg;
  59. //}
  60. // //TODO:这里暂时导入不成功
  61. // private static StatusMsg siteAnalysis(String filePath) {
  62. // StatusMsg statusMsg = new StatusMsg();
  63. //
  64. // //1.创建数据源
  65. // DatasourceConnectionInfo info = new DatasourceConnectionInfo();
  66. // info.setEngineType(EngineType.PGGIS);
  67. // //TODO:配置信息放到配置文件中
  68. // info.setServer("192.168.60.202:5432");
  69. // info.setDatabase("plan");
  70. // info.setUser("postgres");
  71. // info.setPassword("postgres");
  72. //
  73. // Workspace mWorkspace = new Workspace();
  74. // Datasource datasource = mWorkspace.getDatasources().open(info);
  75. //
  76. // if (datasource == null) {
  77. // statusMsg.setMsg("创建数据源失败");
  78. // statusMsg.setB(false);
  79. // return statusMsg;
  80. // }
  81. //
  82. // //2.导入数据
  83. // // 构建目标文件路径
  84. // String projectRootDir = System.getProperty("user.dir");
  85. // String targetFilePath = projectRootDir + File.separator + "data" + File.separator + "shp" + File.separator + "xzqh.shp";
  86. //
  87. // //导入shp文件
  88. // String originalRegions = "original_regions";
  89. // ImportSettingSHP importSettingSHP = new ImportSettingSHP();
  90. // importSettingSHP.setImportMode(ImportMode.OVERWRITE);
  91. // importSettingSHP.setSourceFilePath(targetFilePath);
  92. // //设置需要导入的数据编码类型,因为有中文字段,所以用ASCII编码
  93. // importSettingSHP.setSourceFileCharset(Charset.ANSI);
  94. // importSettingSHP.setTargetDatasetName(originalRegions);
  95. //
  96. // //设置要导入的目标数据源
  97. // importSettingSHP.setTargetDatasource(datasource);
  98. // DataImport dataImport = new DataImport();
  99. // dataImport.getImportSettings().add(importSettingSHP);
  100. //
  101. // ImportResult result = dataImport.run();
  102. // if (result.getFailedSettings().length != 0) {
  103. // statusMsg.setMsg("数据导入失败");
  104. // statusMsg.setB(false);
  105. // return statusMsg;
  106. // }
  107. //
  108. // //3.圈选数据
  109. // //源数据
  110. // DatasourceConnectionInfo infoReal3d = new DatasourceConnectionInfo();
  111. // infoReal3d.setEngineType(EngineType.PGGIS);
  112. // //TODO:配置信息放到配置文件中
  113. // infoReal3d.setServer("192.168.60.202:5432");
  114. // infoReal3d.setDatabase("real3d");
  115. // infoReal3d.setUser("postgres");
  116. // infoReal3d.setPassword("postgres");
  117. //
  118. // Workspace real3dWorkspace = new Workspace();
  119. // Datasource real3dResource = real3dWorkspace.getDatasources().open(infoReal3d);
  120. // DatasetVector ghdkaDataset = (DatasetVector) real3dResource.getDatasets().get("vector_GHDKA");
  121. //
  122. // //圈选区域
  123. // Datasets datasets = datasource.getDatasets();
  124. // DatasetVector originalDataset = (DatasetVector) datasets.get(originalRegions);
  125. //
  126. // QueryParameter parameter = new QueryParameter();
  127. // parameter.setCursorType(CursorType.STATIC);
  128. // parameter.setSpatialQueryMode(SpatialQueryMode.CONTAIN);
  129. // parameter.setSpatialQueryObject(originalDataset);
  130. // // 进行查询
  131. // Recordset recordsetRes = ghdkaDataset.query(parameter);
  132. // int featureCount = recordsetRes.getAllFeatures().size();
  133. //
  134. // //4.创建圈选后的数据集,并存储数据
  135. // DatasetVector dataset_result = (DatasetVector) datasets.createFromTemplate(datasets.getAvailableDatasetName("new_GHDKA"), ghdkaDataset);
  136. // // 将空间查询结果追加到新建的数据集中
  137. // dataset_result.append(recordsetRes);
  138. //
  139. // //释放工作空间占有的资源
  140. // infoReal3d.dispose();
  141. // real3dWorkspace.dispose();
  142. //
  143. // info.dispose();
  144. // mWorkspace.dispose();
  145. // return statusMsg;
  146. // }
  147. // 选址分析
  148. // private static StatusMsg siteAnalysis(Geometry geometry, List<FzxzXzyzDTO> xzyzList) {
  149. // StatusMsg statusMsg = new StatusMsg();
  150. // //1.创建数据源
  151. // DatasourceConnectionInfo info = new DatasourceConnectionInfo();
  152. // info.setEngineType(EngineType.PGGIS);
  153. // //TODO:配置信息放到配置文件中
  154. // info.setServer("192.168.60.202:5432");
  155. // info.setDatabase("real3d");
  156. // info.setUser("postgres");
  157. // info.setPassword("postgres");
  158. //
  159. // Workspace mWorkspace = new Workspace();
  160. // Datasource datasource = mWorkspace.getDatasources().open(info);
  161. //
  162. // //1.打开数据源
  163. // Datasets datasets = datasource.getDatasets();
  164. // DatasetVector ghdkaDataset = (DatasetVector) datasets.get("vector_GHDKA");
  165. // //int allSize = ghdkaDataset.getAllFeatures().size();
  166. //
  167. // //2.空间数据圈选
  168. // QueryParameter parameter = new QueryParameter();
  169. // parameter.setCursorType(CursorType.STATIC);
  170. // parameter.setSpatialQueryMode(SpatialQueryMode.CONTAIN);
  171. // parameter.setSpatialQueryObject(geometry);
  172. // // 进行查询
  173. // Recordset recordsetRes = ghdkaDataset.query(parameter);
  174. // int featureCount = recordsetRes.getAllFeatures().size();
  175. //
  176. // //3.创建圈选后的数据集,并存储数据
  177. // DatasetVector dataset_result = (DatasetVector) datasets.createFromTemplate(datasets.getAvailableDatasetName("new_GHDKA"), ghdkaDataset);
  178. // // 将空间查询结果追加到新建的数据集中
  179. // dataset_result.append(recordsetRes);
  180. //
  181. // // 释放工作空间占有的资源
  182. // dataset_result.close();
  183. // ghdkaDataset.close();
  184. // mWorkspace.dispose();
  185. //
  186. // return statusMsg;
  187. // }
  188. }