From bbaf4ed875548c854622b55a177c8d35ab9238dc Mon Sep 17 00:00:00 2001 From: Dennis Kao <ulysseskao@ximple.com.tw> Date: Thu, 08 Aug 2013 18:00:49 +0800 Subject: [PATCH] geoserver layer setting --- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeoserverIntegrateConfigJob.java | 57 ++++++++++++++++++++++++++------------------------------- 1 files changed, 26 insertions(+), 31 deletions(-) diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeoserverIntegrateConfigJob.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeoserverIntegrateConfigJob.java index 2246470..27143a7 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeoserverIntegrateConfigJob.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeoserverIntegrateConfigJob.java @@ -13,6 +13,7 @@ import it.geosolutions.geoserver.rest.decoder.utils.NameLinkElem; import it.geosolutions.geoserver.rest.encoder.GSLayerEncoder; import it.geosolutions.geoserver.rest.encoder.GSLayerGroupEncoder; +import it.geosolutions.geoserver.rest.encoder.GSLayerGroupEncoder23; import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder; import it.geosolutions.geoserver.rest.encoder.datastore.GSPostGISDatastoreEncoder; import it.geosolutions.geoserver.rest.encoder.feature.GSFeatureTypeEncoder; @@ -24,6 +25,7 @@ import org.geotools.data.Transaction; import org.geotools.data.jdbc.JDBCUtils; import org.geotools.geometry.GeneralEnvelope; +import org.jdom.Element; import org.opengis.feature.type.FeatureType; import org.opengis.feature.type.GeometryDescriptor; import org.quartz.JobDataMap; @@ -528,21 +530,19 @@ } XGeosDataConfig xgeosConfig = (XGeosDataConfig) value; - StringBuilder sbFullName = new StringBuilder(namespace); - sbFullName.append(':'); - StringBuilder sbLayerName = new StringBuilder(namespace); + sbLayerName.append(':'); sbLayerName.append("fsc-"); sbLayerName.append(xgeosConfig.getFSC()).append("-c"); sbLayerName.append(xgeosConfig.getCOMP()).append("-l"); sbLayerName.append(xgeosConfig.getLEV()).append("-w"); sbLayerName.append(xgeosConfig.getWEIGHT()); + String layerName = sbLayerName.toString(); + sbLayers.append(layerName); if (lgEncoder != null) { lgEncoder.addLayer(layerName); } - sbFullName.append(layerName); - sbLayers.append(sbFullName.toString()); } return sbLayers.toString(); @@ -585,16 +585,8 @@ return; } - Set<String> styles = new TreeSet<String>(); - RESTStyleList styleList = reader.getStyles(); - for (NameLinkElem style : styleList) { - styles.add(style.getName()); - } - RESTLayerList layers = reader.getLayers(); - for (NameLinkElem layer : layers) { - layer.getName(); - } - // Map styles = dataConfig.getStyles(); + List<String> styleList = reader.getStyles().getNames(); + Set<String> styles = new TreeSet<String>(styleList); XGeosDataConfigMapping mapping = getConfigMapping(); HashMap<String, String> defaultStyles = buildDefaultStylesMapping(mapping); @@ -817,13 +809,7 @@ GeoServerRESTReader reader = manager.getReader(); GeoServerRESTPublisher publisher = manager.getPublisher(); - RESTLayerList layers = reader.getLayers(); - - ArrayList<String> baseMapNames = new ArrayList<String>(); - for (NameLinkElem elm : layers) { - baseMapNames.add(elm.getName()); - } - + List<String> baseMapNames = reader.getLayers().getNames(); XGeosDataConfigMapping configMapping = getConfigMapping(); if (configMapping.getMapping().isEmpty()) { logger.warn("XGeosDataConfigMapping is empty! Pleace check XGeosDataConfig file."); @@ -853,14 +839,27 @@ for (Object key : defaultMapNames) { List configs = (List) configMapping.getMapping().get(key); - GSLayerGroupEncoder lge = new GSLayerGroupEncoder(); + GSLayerGroupEncoder lge = new GSLayerGroupEncoder23() { + @Override + protected void addToRoot(Element... elements) { + for (Element e : elements) { + if (e != null) { + getRoot().addContent(e.cloneContent()); + } + } + } + }; + lge.setBounds("EPSG:3826",293838.061931726,2758423.49415501,311845.457747425,2768966.72993585); String defaultLayerNames = buildDefaultWMSLayerNames(DEFAULT_NAMESPACE, configs, lge); logger.info(key + ":" + defaultLayerNames); + logger.info(lge.toString()); // wmsConfig.getBaseMapLayers().put(key, defaultLayerNames); String layerGroupName = key.toString(); RESTLayerGroup layerGroup = reader.getLayerGroup(DEFAULT_NAMESPACE, layerGroupName); if (layerGroup == null) { - publisher.createLayerGroup(DEFAULT_NAMESPACE, layerGroupName, lge); + if (!publisher.createLayerGroup(DEFAULT_NAMESPACE, layerGroupName, lge)) { + logger.warn("Cannot create layergroups:" + layerGroupName + "-" + lge.toString()); + } } else { publisher.configureLayerGroup(DEFAULT_NAMESPACE, layerGroupName, lge); @@ -876,14 +875,10 @@ } GeoServerRESTReader reader = manager.getReader(); - RESTLayerList layers = reader.getLayers(); - + List<String> layernames = reader.getLayers().getNames(); + ArrayList<String> baseMapNames = new ArrayList<String>(layernames); // Map baseMapLayers = wmsConfig.getBaseMapLayers(); // Map baseMapEnvelopes = wmsConfig.getBaseMapEnvelopes(); - ArrayList<String> baseMapNames = new ArrayList<String>(); - for (NameLinkElem elm : layers) { - baseMapNames.add(elm.getName()); - } for (Object key : baseMapNames) { String baseMapTitle = (String) key; @@ -894,7 +889,7 @@ // String baseLayersValue = (String) wmsConfig.getBaseMapLayers().get(baseMapTitle); RESTLayerGroup layerGroup = reader.getLayerGroup(DEFAULT_NAMESPACE, baseMapTitle); String baseLayersValue = layerGroup.getName(); - String[] layerNames = null; + String[] layerNames = null; if (baseLayersValue != null) { layerNames = baseLayersValue.split(","); } else { -- Gitblit v0.0.0-SNAPSHOT