|
@@ -1,5 +1,6 @@
|
|
package com.shkpr.service.alambizplugin.commtools;
|
|
package com.shkpr.service.alambizplugin.commtools;
|
|
|
|
|
|
|
|
+import com.shkpr.service.alambizplugin.constants.GisMetadataDefine;
|
|
import com.shkpr.service.alambizplugin.constants.GisSurveyExcelDefine;
|
|
import com.shkpr.service.alambizplugin.constants.GisSurveyExcelDefine;
|
|
import org.geotools.data.Transaction;
|
|
import org.geotools.data.Transaction;
|
|
import org.geotools.data.collection.ListFeatureCollection;
|
|
import org.geotools.data.collection.ListFeatureCollection;
|
|
@@ -16,6 +17,8 @@ import java.nio.file.Paths;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
+import java.util.Objects;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
* ShapeFile工具
|
|
* ShapeFile工具
|
|
@@ -38,8 +41,33 @@ public class ShapeUtils {
|
|
for (Map.Entry<SimpleFeatureType, List<Map<String, Object>>> entry : datas.entrySet()) {
|
|
for (Map.Entry<SimpleFeatureType, List<Map<String, Object>>> entry : datas.entrySet()) {
|
|
final SimpleFeatureType KEY = entry.getKey();
|
|
final SimpleFeatureType KEY = entry.getKey();
|
|
List<Map<String, Object>> value = entry.getValue();
|
|
List<Map<String, Object>> value = entry.getValue();
|
|
-
|
|
|
|
- writeShape(KEY, value, Paths.get(directoryPath + "/" + KEY.getTypeName() + ".shp"));
|
|
|
|
|
|
+ //点类型处理
|
|
|
|
+ if (Objects.equals(GisMetadataDefine.TYPE_KINE.POINT, KEY.getTypeName())) {
|
|
|
|
+ //按图层名称分组
|
|
|
|
+ Map<Object, List<Map<String, Object>>> group = value.stream()
|
|
|
|
+ .collect(Collectors.groupingBy(it ->
|
|
|
|
+ it.get(GisSurveyExcelDefine.FILE.POINT_LAYER))
|
|
|
|
+ );
|
|
|
|
+ //按组导出
|
|
|
|
+ for (Map.Entry<Object, List<Map<String, Object>>> groupEntry : group.entrySet()) {
|
|
|
|
+ writeShape(KEY, groupEntry.getValue(),
|
|
|
|
+ Paths.get(directoryPath + "/" + groupEntry.getKey() + ".shp")
|
|
|
|
+ );
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //线类型处理
|
|
|
|
+ if (Objects.equals(GisMetadataDefine.TYPE_KINE.LINE, KEY.getTypeName())) {
|
|
|
|
+ //按图层名称分组
|
|
|
|
+ Map<Object, List<Map<String, Object>>> group = value.stream()
|
|
|
|
+ .collect(Collectors.groupingBy(it ->
|
|
|
|
+ it.get(GisSurveyExcelDefine.FILE.LINE_LAYER)
|
|
|
|
+ ));
|
|
|
|
+ //按组导出
|
|
|
|
+ for (Map.Entry<Object, List<Map<String, Object>>> mapEntry : group.entrySet()) {
|
|
|
|
+ writeShape(KEY, mapEntry.getValue(),
|
|
|
|
+ Paths.get(directoryPath + "/" + mapEntry.getKey() + ".shp"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|