|
@@ -1,7 +1,6 @@
|
|
|
package cn.com.taiji.web.controller;
|
|
|
|
|
|
|
|
|
-
|
|
|
import cn.com.taiji.common.domain.Result;
|
|
|
import cn.com.taiji.common.model.LayerGroupDsView;
|
|
|
import cn.com.taiji.common.model.LayerStyleView;
|
|
@@ -48,75 +47,47 @@ public class TileWebController {
|
|
|
|
|
|
@RequestMapping(value = {"/queryTile"}, method = {RequestMethod.GET, RequestMethod.POST})
|
|
|
public void queryTile(HttpServletRequest request, HttpServletResponse response) {
|
|
|
-
|
|
|
-
|
|
|
GeoRequestParam geoRequestParam = JSONObject.parseObject(JSONObject.toJSONString(getParameterMap(request)), GeoRequestParam.class);
|
|
|
-
|
|
|
List<String> layerGroupList = new ArrayList<String>();
|
|
|
-
|
|
|
- //图层组
|
|
|
- String layers = geoRequestParam.getLayers();
|
|
|
- if(layers !=null && !"".equals(layers)){
|
|
|
-
|
|
|
- layerGroupList.add(layers);
|
|
|
+ if (StringUtils.isBlank(geoRequestParam.getLayers())) {
|
|
|
+ throw new RuntimeException("请选择图层");
|
|
|
}
|
|
|
- //图层
|
|
|
- String typeName = geoRequestParam.getTypename();
|
|
|
-
|
|
|
- if(typeName !=null && !"".equals(typeName)){
|
|
|
-
|
|
|
- String[] typeNames = typeName.split(",");
|
|
|
-
|
|
|
- layerGroupList.addAll(Arrays.asList(typeNames));
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- if(layerGroupList.size() >0){
|
|
|
-
|
|
|
- try{
|
|
|
-
|
|
|
- List<LayerGroupDsView> layerGroupDsViewList = geoDataSourceService.layerCodeGeoDataSource(layerGroupList);
|
|
|
-
|
|
|
- if(layerGroupDsViewList !=null && layerGroupDsViewList.size()>0){
|
|
|
+ try {
|
|
|
+ List<LayerGroupDsView> layerGroupDsViewList = geoDataSourceService.layerCodeGeoDataSource(geoRequestParam.getLayers(),geoRequestParam.getTypename());
|
|
|
|
|
|
- List<String> layerCodeList = new ArrayList<String>();
|
|
|
+ if (layerGroupDsViewList != null && layerGroupDsViewList.size() > 0) {
|
|
|
|
|
|
- for(LayerGroupDsView layerGroupDsView:layerGroupDsViewList){
|
|
|
+ List<String> layerCodeList = new ArrayList<String>();
|
|
|
|
|
|
- layerCodeList.add(layerGroupDsView.getLayerCode());
|
|
|
- }
|
|
|
+ for (LayerGroupDsView layerGroupDsView : layerGroupDsViewList) {
|
|
|
|
|
|
- Map<String,List<LayerStyleView>> dataMaps = geoDataSourceService.layerCodeShapeStyle(layerCodeList);
|
|
|
-
|
|
|
- if(StringUtils.equals(geoRequestParam.getRequest(),"GetMap")) {
|
|
|
- byte[] ret = tileService.tileData(geoRequestParam, layerGroupDsViewList, dataMaps);
|
|
|
- responseWrite(response, "image/png", ret);
|
|
|
- }else if(StringUtils.equals(geoRequestParam.getRequest(),"GetFeatureInfo")) {
|
|
|
- FeatureInfo featureInfo = tileService.getFeatureInfo(geoRequestParam, layerGroupDsViewList, dataMaps);
|
|
|
- responseWriteJson(response, featureInfo);
|
|
|
- } else if(StringUtils.equals(geoRequestParam.getRequest(),"GetFeature")){
|
|
|
- FeatureInfo feature = tileService.getFeature(geoRequestParam, layerGroupDsViewList, dataMaps);
|
|
|
- responseWriteJson(response, feature);
|
|
|
- }
|
|
|
- }else{
|
|
|
- log.info("根据图层代码:" + StringUtils.join(layerGroupList,",") + "获取图层对应的数据源为空或者为null");
|
|
|
+ layerCodeList.add(layerGroupDsView.getLayerCode());
|
|
|
}
|
|
|
|
|
|
- }catch (Exception exception){
|
|
|
-
|
|
|
- exception.printStackTrace();
|
|
|
-
|
|
|
- log.error("根据图层代码:" + geoRequestParam.getLayers() +"获取数据源信息失败!"+exception);
|
|
|
+ Map<String, List<LayerStyleView>> dataMaps = geoDataSourceService.layerCodeShapeStyle(layerCodeList);
|
|
|
+
|
|
|
+ if (StringUtils.equals(geoRequestParam.getRequest(), "GetMap")) {
|
|
|
+ byte[] ret = tileService.tileData(geoRequestParam, layerGroupDsViewList, dataMaps);
|
|
|
+ responseWrite(response, "image/png", ret);
|
|
|
+ } else if (StringUtils.equals(geoRequestParam.getRequest(), "GetFeatureInfo")) {
|
|
|
+ FeatureInfo featureInfo = tileService.getFeatureInfo(geoRequestParam, layerGroupDsViewList, dataMaps);
|
|
|
+ responseWriteJson(response, featureInfo);
|
|
|
+ } else if (StringUtils.equals(geoRequestParam.getRequest(), "GetFeature")) {
|
|
|
+ FeatureInfo feature = tileService.getFeature(geoRequestParam, layerGroupDsViewList, dataMaps);
|
|
|
+ responseWriteJson(response, feature);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.info("根据图层代码:" + StringUtils.join(layerGroupList, ",") + "获取图层对应的数据源为空或者为null");
|
|
|
}
|
|
|
|
|
|
+ } catch (Exception exception) {
|
|
|
|
|
|
+ exception.printStackTrace();
|
|
|
|
|
|
- }else{
|
|
|
-
|
|
|
- log.info("图层组layers参数为空或者图层typeName参数为空");
|
|
|
+ log.error("根据图层代码:" + geoRequestParam.getLayers() + "获取数据源信息失败!" + exception);
|
|
|
+ throw new RuntimeException("根据图层代码:" + geoRequestParam.getLayers() + "获取数据源信息失败!");
|
|
|
}
|
|
|
|
|
|
-
|
|
|
}
|
|
|
|
|
|
private static void responseWriteJson(HttpServletResponse response, Object featureInfo) throws IOException {
|
|
@@ -186,5 +157,4 @@ public class TileWebController {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
}
|