From 79ea3f0c589bd5a60fd9b3852b0148c080eaf2f9 Mon Sep 17 00:00:00 2001 From: "hukekuan@163.com" Date: Sat, 24 Feb 2018 18:30:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gis3c/ol/entity/LayerSource.java | 32 ++++++++++++++ .../java/com/gis3c/ol/entity/MapLayer.java | 31 +++++++++++++ .../com/gis3c/ol/service/LayerService.java | 12 ++++- .../ol/service/impl/LayerServiceImpl.java | 44 +++++++++++++++---- src/test/java/com/gis3c/spatial/App.java | 36 +++++++++++++-- 5 files changed, 141 insertions(+), 14 deletions(-) create mode 100644 src/main/java/com/gis3c/ol/entity/LayerSource.java create mode 100644 src/main/java/com/gis3c/ol/entity/MapLayer.java diff --git a/src/main/java/com/gis3c/ol/entity/LayerSource.java b/src/main/java/com/gis3c/ol/entity/LayerSource.java new file mode 100644 index 0000000..f0e1a9f --- /dev/null +++ b/src/main/java/com/gis3c/ol/entity/LayerSource.java @@ -0,0 +1,32 @@ +package com.gis3c.ol.entity; + +/** + * Created by hukekuan on 2018/2/24. + */ +public class LayerSource { + private Layer layer; + private Source source; + + public LayerSource(){} + + public LayerSource(Layer layer,Source source){ + this.layer = layer; + this.source = source; + } + + public Layer getLayer() { + return layer; + } + + public void setLayer(Layer layer) { + this.layer = layer; + } + + public Source getSource() { + return source; + } + + public void setSource(Source source) { + this.source = source; + } +} diff --git a/src/main/java/com/gis3c/ol/entity/MapLayer.java b/src/main/java/com/gis3c/ol/entity/MapLayer.java new file mode 100644 index 0000000..dfd3b5c --- /dev/null +++ b/src/main/java/com/gis3c/ol/entity/MapLayer.java @@ -0,0 +1,31 @@ +package com.gis3c.ol.entity; + +/** + * Created by hukekuan on 2018/2/24. + */ +public class MapLayer { + private Layer layer; + private Boolean isBinded = Boolean.FALSE; + + public MapLayer(){} + public MapLayer(Layer layer,Boolean isBinded){ + this.layer = layer; + this.isBinded = isBinded; + } + + public Layer getLayer() { + return layer; + } + + public void setLayer(Layer layer) { + this.layer = layer; + } + + public Boolean getBinded() { + return isBinded; + } + + public void setBinded(Boolean binded) { + isBinded = binded; + } +} diff --git a/src/main/java/com/gis3c/ol/service/LayerService.java b/src/main/java/com/gis3c/ol/service/LayerService.java index ef8ba23..ffd62a0 100644 --- a/src/main/java/com/gis3c/ol/service/LayerService.java +++ b/src/main/java/com/gis3c/ol/service/LayerService.java @@ -2,6 +2,8 @@ package com.gis3c.ol.service; import com.gis3c.ol.entity.Layer; +import com.gis3c.ol.entity.LayerSource; +import com.gis3c.ol.entity.MapLayer; import java.util.List; import java.util.Map; @@ -11,8 +13,14 @@ import java.util.Set; * Created by hukekuan on 2017/12/15. */ public interface LayerService { - public List> findLayerList(); - public List findSimpleLayerList(); + public List findLayerList(); + + /** + * 获取地图中需要设置的图层列表 + * @param layerIdList 地图中已加入的图层编号 + * @return 在图层列表基础上新增已添加标记 + */ + public List findSimpleLayerList(List layerIdList); public List> findLayersByPage(Integer pageSize,Integer currentPage); public Layer findeLayerById(String layerId); diff --git a/src/main/java/com/gis3c/ol/service/impl/LayerServiceImpl.java b/src/main/java/com/gis3c/ol/service/impl/LayerServiceImpl.java index ffaa770..d6bc26f 100644 --- a/src/main/java/com/gis3c/ol/service/impl/LayerServiceImpl.java +++ b/src/main/java/com/gis3c/ol/service/impl/LayerServiceImpl.java @@ -4,6 +4,8 @@ import com.gis3c.common.exception.BusinessException; import com.gis3c.ol.dao.LayerDao; import com.gis3c.ol.dao.SourceDao; import com.gis3c.ol.entity.Layer; +import com.gis3c.ol.entity.LayerSource; +import com.gis3c.ol.entity.MapLayer; import com.gis3c.ol.service.LayerService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -22,17 +24,17 @@ public class LayerServiceImpl implements LayerService { private SourceDao sourceDao; @Override - public List> findLayerList() { - List> result = new ArrayList<>(); - Map layerMap; + public List findLayerList() { + List result = new ArrayList<>(); + LayerSource layerMap; String sourceId; List layerList = layerDao.findLayerList(); for(int i = 0,len = layerList.size();i < len;i++){ - layerMap = new HashMap<>(); - layerMap.put("layer",layerList.get(i)); + layerMap = new LayerSource(); + layerMap.setLayer(layerList.get(i)); sourceId = layerList.get(i).getSource(); if(sourceId != null && !"".equals(sourceId)){ - layerMap.put("source",sourceDao.findSourceById(sourceId)); + layerMap.setSource(sourceDao.findSourceById(sourceId)); } result.add(layerMap); } @@ -40,8 +42,34 @@ public class LayerServiceImpl implements LayerService { } @Override - public List findSimpleLayerList() { - return layerDao.findLayerList(); + public List findSimpleLayerList(List layerIdList) { + List result = new ArrayList<>(); + List layerList = layerDao.findLayerList(); + MapLayer mapLayer; + Layer queryLayer; + if(layerIdList != null && layerIdList.size() > 0){ + for(String layerId : layerIdList){ + mapLayer = new MapLayer(); + queryLayer = layerList.stream() + .filter(layer -> layer.getLayerId().equals(layerId)) + .findFirst() + .orElse(null); + if(queryLayer != null){ + mapLayer.setLayer(queryLayer); + mapLayer.setBinded(true); + result.add(mapLayer); + + layerList.remove(queryLayer); + } + } + } + for(Layer layer : layerList){ + mapLayer = new MapLayer(); + mapLayer.setLayer(layer); + result.add(mapLayer); + } + + return result; } @Override diff --git a/src/test/java/com/gis3c/spatial/App.java b/src/test/java/com/gis3c/spatial/App.java index 32498db..aa5af4e 100644 --- a/src/test/java/com/gis3c/spatial/App.java +++ b/src/test/java/com/gis3c/spatial/App.java @@ -1,9 +1,8 @@ package com.gis3c.spatial; import com.gis3c.common.bean.BeanUtil; -import com.gis3c.ol.entity.Layer; +import com.gis3c.ol.entity.*; import com.gis3c.ol.entity.Map; -import com.gis3c.ol.entity.Source; import com.gis3c.ol.service.LayerService; import com.gis3c.ol.service.MapService; import com.gis3c.ol.service.SourceService; @@ -30,8 +29,37 @@ public class App { TestService testService = context.getBean(TestService.class); - List layerList = layerService.findSimpleLayerList(); - System.out.println(layerList); + List layerIdList = new ArrayList<>(Arrays.asList(new String[]{ + "a2d69fcd-fa4a-4fe5-8696-ae3e30042126", + "aabb842e-239e-491d-9c70-a2cec1f65886" + })); + List result = layerService.findSimpleLayerList(layerIdList); + System.out.println(result.size()); + System.out.println(result.get(0).getLayer().getLayerId()); + System.out.println(result.get(1).getLayer().getLayerId()); + + +// String result = testList.stream().filter(test-> "2".equals(test)).findFirst().orElse(null); +// System.out.println(result); +// System.out.println(testList); +// System.out.println(testList.get(0)); +// testList.remove(0); +// System.out.println(testList); +// System.out.println(testList.get(0)); + + + + + + + + + +// List layerSources = layerService.findLayerList(); +// System.out.println(layerSources.get(0)); + +// List layerList = layerService.findSimpleLayerList("e8819b8e-9397-4609-8b23-9f18c9588d6b"); +// System.out.println(layerList.get(2).getBinded()); // java.util.Map layerOptions = new HashMap<>(); // layerOptions.put("a","aaaaaaaa");