|
@@ -50,7 +50,7 @@ public class TileServiceImpl implements ITileService {
|
|
|
if (result.pageResult != null && result.pageResult.getRecordCount() > 0) {
|
|
|
List<Map<String, Object>> cqlDataList = (List<Map<String, Object>>) result.pageResult.getDatas();
|
|
|
//3根据空间地理数据生成图层二进制数据
|
|
|
- BufferedImage bufferedImage = ShapeUtils.drawImage(requestParam.getBbox(), cqlDataList, layerGroupDsView.getBoxColumn(), result.layerStyleViewList);
|
|
|
+ BufferedImage bufferedImage = ShapeUtils.drawImage(requestParam.getGeoType(),requestParam.getBbox(), cqlDataList, layerGroupDsView.getBoxColumn(), result.layerStyleViewList);
|
|
|
biMap.put(layerGroupDsView.getLayerCode(),bufferedImage);
|
|
|
} else {
|
|
|
// log.info("根据查询过滤规则条件:" + filterCqlStr.toString() + "和图层代码:" + requestParam.getLayers() + " 没有找到图层对应的数据源的空间地理数据");
|
|
@@ -250,10 +250,8 @@ public class TileServiceImpl implements ITileService {
|
|
|
if (result.pageResult != null && result.pageResult.getRecordCount() > 0) {
|
|
|
List<Map<String, Object>> cqlDataList = (List<Map<String, Object>>) result.pageResult.getDatas();
|
|
|
//3根据空间地理数据生成图层二进制数据
|
|
|
- List<Map<String, Object>> maps = ShapeUtils.detectClick(requestParam.getBbox(), cqlDataList, layerGroupDsView.getBoxColumn(), result.layerStyleViewList, requestParam.getX(), requestParam.getY());
|
|
|
+ List<Map<String, Object>> maps = ShapeUtils.detectClick(requestParam.getBbox(),requestParam.getGeoType(), cqlDataList, layerGroupDsView.getBoxColumn(), result.layerStyleViewList, requestParam.getX(), requestParam.getY());
|
|
|
features.addAll(maps);
|
|
|
- } else {
|
|
|
-// log.info("根据查询过滤规则条件:" + filterCqlStr.toString() + "和图层代码:" + requestParam.getLayers() + " 没有找到图层对应的数据源的空间地理数据");
|
|
|
}
|
|
|
});
|
|
|
featureInfo.setFeatures(features);
|
|
@@ -263,36 +261,20 @@ public class TileServiceImpl implements ITileService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<Map<String, Object>> getFeature(GeoRequestParam requestParam, List<LayerGroupDsView> layerGroupDsViewList, Map<String, List<LayerStyleView>> dataMaps) {
|
|
|
- List<Map<String, Object>> list = new CopyOnWriteArrayList<>();
|
|
|
+ public FeatureInfo getFeature(GeoRequestParam requestParam, List<LayerGroupDsView> layerGroupDsViewList, Map<String, List<LayerStyleView>> dataMaps) {
|
|
|
+ FeatureInfo featureInfo = new FeatureInfo();
|
|
|
+ List<Map<String, Object>> features = new CopyOnWriteArrayList<>();
|
|
|
layerGroupDsViewList.parallelStream().forEach(layerGroupDsView -> {
|
|
|
Result result = getResult(requestParam, dataMaps, layerGroupDsView);
|
|
|
if (result.pageResult != null && result.pageResult.getRecordCount() > 0) {
|
|
|
List<Map<String, Object>> cqlDataList = (List<Map<String, Object>>) result.pageResult.getDatas();
|
|
|
- list.addAll(cqlDataList);
|
|
|
- } else {
|
|
|
-// log.info("根据查询过滤规则条件:" + filterCqlStr.toString() + "和图层代码:" + requestParam.getLayers() + " 没有找到图层对应的数据源的空间地理数据");
|
|
|
+ features.addAll(cqlDataList);
|
|
|
}
|
|
|
});
|
|
|
- return list;
|
|
|
- }
|
|
|
-
|
|
|
- public static double[] parseBbox(String bboxString) {
|
|
|
- String[] bboxValuesStr = bboxString.split(",");
|
|
|
- if (bboxValuesStr.length != 4) {
|
|
|
- return new double[0]; // 返回空数组表示无效的 BBOX 格式
|
|
|
- }
|
|
|
-
|
|
|
- double[] bboxValues = new double[4];
|
|
|
- try {
|
|
|
- for (int i = 0; i < 4; i++) {
|
|
|
- bboxValues[i] = Double.parseDouble(bboxValuesStr[i]);
|
|
|
- }
|
|
|
- } catch (NumberFormatException e) {
|
|
|
- return new double[0]; // 返回空数组表示无效的 BBOX 格式
|
|
|
- }
|
|
|
-
|
|
|
- return bboxValues;
|
|
|
+ featureInfo.setFeatures(features);
|
|
|
+ featureInfo.setNumberReturned(features.size());
|
|
|
+ featureInfo.setTimeStamp(DateUtil.format(new Date(),DateTimeFormatter.ISO_INSTANT));
|
|
|
+ return featureInfo;
|
|
|
}
|
|
|
|
|
|
private static class Result {
|