Mercurial > mxd2map
annotate src/java/de/intevation/mxd/reader/WMSLayerReader.java @ 311:c8b8f887ef80
Add write support for Fgdb layers and make it possible
to remove a prefix from the expressions. The expressions
returned by arcgis for Fgdb data contain the data source
name as a prefix. Mapserver does not need it and does not
match those expressions so they have to be removed
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Fri, 14 Sep 2012 11:54:03 +0200 |
parents | 2cb2d8eb56ed |
children | 5e3a40a84539 |
rev | line source |
---|---|
301
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1 /* |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
2 * Copyright (c) 2011 by Intevation GmbH, Germany <info@intevation.de> |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
3 * |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
4 * This file is part of MXD2map. |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
5 * |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
6 * This program is free software under the LGPL (>=v2.1) |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
7 * Read the file LICENCE.txt coming with the software for details |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
8 * or visit http://www.gnu.org/licenses/ if it does not exist. |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
9 * |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
10 * MXD2map has been developed on behalf of the |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
11 * Bundesamt fuer Seeschifffahrt und Hydrographie (BSH) in Hamburg |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
12 * by Intevation GmbH. |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
13 * |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
14 * Authors: |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
15 * Raimund Renkert <raimund.renkert@intevation.de> |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
16 * Bjoern Schilberg <bjoern.schilberg@intevation.de> |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
17 * Stephan Holl <stephan.holl@intevation.de> |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
18 */ |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
19 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
20 package de.intevation.mxd.reader; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
21 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
22 import java.io.IOException; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
23 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
24 import org.apache.log4j.Logger; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
25 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
26 import com.esri.arcgis.carto.ILayer; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
27 import com.esri.arcgis.carto.IFeatureRenderer; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
28 import com.esri.arcgis.carto.WMSMapLayer; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
29 import com.esri.arcgis.carto.WMSGroupLayer; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
30 import com.esri.arcgis.carto.WMSLayer; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
31 import com.esri.arcgis.gisclient.IWMSServiceDescription; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
32 import com.esri.arcgis.gisclient.IWMSLayerDescription; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
33 import com.esri.arcgis.geometry.Envelope; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
34 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
35 import org.w3c.dom.Element; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
36 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
37 import de.intevation.mxd.utils.MapToXMLUtils; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
38 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
39 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
40 /** |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
41 * Reads Layer information. |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
42 * |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
43 * @author <a href="mailto:aheinecke@intevation.de">Andre Heinecke</a> |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
44 */ |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
45 public class WMSLayerReader { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
46 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
47 /** |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
48 * The logger. |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
49 */ |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
50 private static final Logger logger = |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
51 Logger.getLogger(FeatureLayerReader.class); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
52 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
53 /** |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
54 * Privte member. |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
55 */ |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
56 private WMSLayer layer; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
57 private MapToXMLUtils util; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
58 private int invalidLayerCount; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
59 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
60 /** |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
61 * Constructor with layer. |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
62 * |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
63 * @param layer The ArcGIS layer object. |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
64 */ |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
65 public WMSLayerReader(ILayer layer) |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
66 throws Exception { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
67 if(layer instanceof WMSLayer) { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
68 this.layer = (WMSLayer)layer; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
69 invalidLayerCount = 0; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
70 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
71 else { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
72 throw new Exception("Not an instance of WMSLayer: " + |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
73 layer.getClass().toString()); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
74 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
75 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
76 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
77 /** |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
78 * Setter for XML document helper. |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
79 * |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
80 * @param util The helper for storing map information. |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
81 */ |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
82 public void setUtil(MapToXMLUtils util) { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
83 this.util = util; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
84 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
85 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
86 /** |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
87 * Reads the Layer content. |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
88 * |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
89 * @return The layer XML element. |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
90 */ |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
91 public Element read() |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
92 throws IOException{ |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
93 logger.debug("read()"); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
94 Element layerElement = null; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
95 try { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
96 layerElement = util.addLayer(); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
97 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
98 catch(Exception e) { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
99 logger.error("Failed to create DOM-Element for Layer."); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
100 return null; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
101 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
102 try { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
103 layerElement.setAttribute("name", layer.getName()); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
104 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
105 catch(IOException ioe) { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
106 logger.warn( |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
107 "Could not read layer name." + |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
108 " Stopped reading layer."); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
109 throw new IOException("Error reading layer name."); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
110 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
111 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
112 try { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
113 layerElement.setAttribute("min_scale", |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
114 String.valueOf(layer.getMinimumScale())); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
115 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
116 catch(IOException ioe) { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
117 logger.warn("Could not read minimum scale."); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
118 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
119 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
120 try { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
121 layerElement.setAttribute("max_scale", |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
122 String.valueOf(layer.getMaximumScale())); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
123 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
124 catch(IOException ioe) { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
125 logger.warn( |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
126 "Could not read maximum scale."); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
127 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
128 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
129 try { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
130 if(layer.isVisible()) { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
131 layerElement.setAttribute("status", "on"); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
132 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
133 else { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
134 layerElement.setAttribute("status", "off"); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
135 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
136 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
137 catch(IOException ioe) { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
138 logger.warn( |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
139 "Could not read layer status." + |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
140 " Setting layer status to \"on\"."); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
141 layerElement.setAttribute("status", "on"); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
142 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
143 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
144 layerElement.setAttribute("connection_type", "WMS"); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
145 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
146 try{ |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
147 // Set the WMS Connection parameters |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
148 IWMSServiceDescription wmsconn = layer.getWMSServiceDescription(); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
149 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
150 String connectionURL = wmsconn.getBaseURL("GetMap", "Get"); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
151 if (!connectionURL.endsWith("?")) { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
152 connectionURL += "?"; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
153 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
154 layerElement.setAttribute("connection", connectionURL); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
155 logger.debug(connectionURL); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
156 layerElement.setAttribute("imageType", wmsconn.getImageFormat(0)); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
157 logger.debug(wmsconn.getImageFormat(0)); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
158 if (wmsconn.getSRSCount() > 0) { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
159 layerElement.setAttribute("projection", wmsconn.getSRS(0)); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
160 logger.debug(wmsconn.getSRS(0)); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
161 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
162 layerElement.setAttribute("wms_server_version", wmsconn.getWMSVersion()); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
163 logger.debug(wmsconn.getWMSVersion()); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
164 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
165 catch(Exception e) { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
166 logger.debug(e); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
167 logger.error("Error Setting Connection parameters. " + layer.getName()); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
168 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
169 |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
170 try{ |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
171 // Set the WMS Layer parameters |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
172 IWMSLayerDescription wmslayer = layer.getWMSLayerDescription(); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
173 layerElement.setAttribute("wms_name", wmslayer.getName()); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
174 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
175 catch(Exception e) { |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
176 logger.debug(e); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
177 logger.error("Error Setting Layer parameters. " + layer.getName()); |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
178 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
179 return layerElement; |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
180 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
181 } |
2cb2d8eb56ed
Add WMS Support in the Reader classes and
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
182 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |