[OpenLayers-Commits] r12180 - in sandbox/august/trunk: lib lib/OpenLayers/Format lib/OpenLayers/Format/Filter playground playground/sld

commits-20090109 at openlayers.org commits-20090109 at openlayers.org
Fri Jul 22 17:00:44 EDT 2011


Author: augusttown
Date: 2011-07-22 14:00:44 -0700 (Fri, 22 Jul 2011)
New Revision: 12180

Added:
   sandbox/august/trunk/playground/sld/
   sandbox/august/trunk/playground/sld/agsstyles2sld.generated.corine.xml
   sandbox/august/trunk/playground/sld/agsstyles2sld.html
   sandbox/august/trunk/playground/sld/agsstyles2sld.js
Modified:
   sandbox/august/trunk/lib/OpenLayers.js
   sandbox/august/trunk/lib/OpenLayers/Format/AgsJsAdapter.js
   sandbox/august/trunk/lib/OpenLayers/Format/Filter/v1.js
   sandbox/august/trunk/playground/index.html
Log:
Add support and sample for convert ArcGIS Server Map Service styles to SLD.

Modified: sandbox/august/trunk/lib/OpenLayers/Format/AgsJsAdapter.js
===================================================================
--- sandbox/august/trunk/lib/OpenLayers/Format/AgsJsAdapter.js	2011-07-22 15:10:34 UTC (rev 12179)
+++ sandbox/august/trunk/lib/OpenLayers/Format/AgsJsAdapter.js	2011-07-22 21:00:44 UTC (rev 12180)
@@ -687,7 +687,7 @@
 	    			var pointSymbolizer = new OpenLayers.Symbolizer.Point({});	// no parameters needed for initialization
 	    			// TODO: shall I give default values if it doesn't exist on original ags symbol?
 	    			pointSymbolizer.strokeColor = agsSimpleMarkerSymbol.outline.color.toHex() || pointSymbolizer.strokeColor;
-	    			pointSymbolizer.strokeWidth = agsSimpleMarkerSymbol.outline.width || pointSymbolizer.strokeWidth; 
+	    			pointSymbolizer.strokeWidth = agsSimpleMarkerSymbol.outline.width; 
 	    			pointSymbolizer.strokeOpacity = agsSimpleMarkerSymbol.outline.color.toRgba()[3] || pointSymbolizer.strokeOpacity;
 	    			pointSymbolizer.strokeDashstyle = _AGS_OL_SIMPLE_LINESYMBOL_MAP[agsSimpleMarkerSymbol.outline.style] || pointSymbolizer.strokeDashstyle;
 	    			//pointSymbolizer.strokeLinecap = pointSymbolizer.strokeLinecap;	// 'strokeLinecap' not supported in AGS JS API    			
@@ -751,8 +751,8 @@
 	    			//pointSymbolizer.fillOpacity = agsPictureMarkerSymbol.color.toRgba()[3] || pointSymbolizer.fillOpacity;	// not applicable to agsPictureMarkerSymbol	    			
 	    			pointSymbolizer.pointRadius = agsPictureMarkerSymbol.size || pointSymbolizer.pointRadius;
 	    			pointSymbolizer.externalGraphic = agsPictureMarkerSymbol.url || pointSymbolizer.externalGraphic;	
-	    			pointSymbolizer.graphicWidth = agsPictureMarkerSymbol.width || pointSymbolizer.graphicWidth;	
-	    			pointSymbolizer.graphicHeight = agsPictureMarkerSymbol.height || pointSymbolizer.graphicHeight;
+	    			pointSymbolizer.graphicWidth = Math.floor(agsPictureMarkerSymbol.width) || pointSymbolizer.graphicWidth;	
+	    			pointSymbolizer.graphicHeight = Math.floor(agsPictureMarkerSymbol.height) || pointSymbolizer.graphicHeight;
 	    			pointSymbolizer.graphicXOffset = agsPictureMarkerSymbol.xoffset || pointSymbolizer.graphicXOffset;	
 	    			pointSymbolizer.graphicYOffset = agsPictureMarkerSymbol.yoffset || pointSymbolizer.graphicYOffset;
 	    			// 'angle' is 'location'
@@ -796,7 +796,7 @@
 	    		if(_isDefined(agsSimpleLineSymbol) && agsSimpleLineSymbol instanceof esri.symbol.SimpleLineSymbol) {
 		    		var lineSymbolizer = new OpenLayers.Symbolizer.Line({});
 		    		lineSymbolizer.strokeColor = agsSimpleLineSymbol.color.toHex() || lineSymbolizer.strokeColor;
-		    		lineSymbolizer.strokeWidth = agsSimpleLineSymbol.width || lineSymbolizer.strokeWidth;
+		    		lineSymbolizer.strokeWidth = Math.floor(agsSimpleLineSymbol.width);
 		    		lineSymbolizer.strokeOpacity = agsSimpleLineSymbol.color.toRgba()[3] || lineSymbolizer.strokeOpacity;
 		    		lineSymbolizer.strokeDashstyle = _AGS_OL_SIMPLE_LINESYMBOL_MAP[agsSimpleLineSymbol.style] || lineSymbolizer.strokeDashstyle;
 		    		return lineSymbolizer;
@@ -859,7 +859,7 @@
 	    		if(_isDefined(agsSimpleFillSymbol) && agsSimpleFillSymbol instanceof esri.symbol.SimpleFillSymbol) {
 		    		var polygonSymbolizer = new OpenLayers.Symbolizer.Polygon({});
 		    		polygonSymbolizer.strokeColor = agsSimpleFillSymbol.outline.color.toHex() || polygonSymbolizer.strokeColor;
-		    		polygonSymbolizer.strokeWidth = agsSimpleFillSymbol.outline.width || polygonSymbolizer.strokeWidth; 
+		    		polygonSymbolizer.strokeWidth = Math.floor(agsSimpleFillSymbol.outline.width); 
 		    		polygonSymbolizer.strokeOpacity = agsSimpleFillSymbol.outline.color.toRgba()[3] || polygonSymbolizer.strokeOpacity;
 		    		polygonSymbolizer.strokeDashstyle = _AGS_OL_SIMPLE_LINESYMBOL_MAP[agsSimpleFillSymbol.outline.style] || polygonSymbolizer.strokeDashstyle;
 	    			//polygonSymbolizer.strokeLinecap = polygonSymbolizer.strokeLinecap;	// 'strokeLinecap' not supported in AGS JS API    			
@@ -960,7 +960,7 @@
 	    			var olSymbolPasrserType = _AGS_OL_SYMBOL_PARSER_MAP[agsSimpleRenderer.symbol.type];	    			
 	    			var olSymbolizer = this.parseAgsSymbol[olSymbolPasrserType].apply(this,[agsSimpleRenderer.symbol]);
 	    			var olRule = new OpenLayers.Rule({
-	    				symbolizer: olSymbolizer
+	    				symbolizers: [olSymbolizer]
 	    			});
 	    			olRule.name = agsSimpleRenderer.label;
 	    			olRule.title = agsSimpleRenderer.label;
@@ -971,9 +971,13 @@
 	    					rules: [olRule]
 	    				}
 	    			);
-	    			olStyle.name = "SimpleRendererStyle";
-	    			olStyle.title = "SimpleRenderer Style";
+	    			//olStyle.name = "SimpleRendererStyle";
+	    			//olStyle.title = "SimpleRenderer Style";
+	    			olStyle.name = agsSimpleRenderer.label;
+	    			olStyle.title = agsSimpleRenderer.label;
+	    			
 	    			olStyle.description = "An OpenLayers Style converted from an esri SimpleRenderer";	    			
+	    			
 	    			return olStyle;
 	    		} else{
 	    			OpenLayers.Console.error("...AgsAdapter.parseAgsRenderer.SimpleRenderer...missing or invalid esri.renderer.SimpleRenderer...");
@@ -991,10 +995,30 @@
     	     *   {OpenLayers.Style} object 
     	     */
 	    	"ClassBreaksRenderer": function(agsClassBreaksRenderer) {
-	    		if(_isDefined(agsClassBreaksRenderer) && agsClassBreaksRenderer instanceof esri.renderer.ClassBreaksRenderer) {
-		    		var filterProperty = agsClassBreaksRenderer.attributeField;	// property is used to create filter
+	    		if(_isDefined(agsClassBreaksRenderer) && agsClassBreaksRenderer instanceof esri.renderer.ClassBreaksRenderer) {	    			
+	    			var filterProperty = agsClassBreaksRenderer.attributeField;	// property is used to create filter
 		    		if(agsClassBreaksRenderer.infos!=null && agsClassBreaksRenderer.infos.length>0) {
 		    			var olRules = [];
+		    			// !!! The reason to put defaultSymbol in the front is because ArcGIS Server WMS SLD doesn't support elseFilter
+		    			//   so include defaultSymol with elseFilter in SLD will apply to all feature in the layer. The workaround here is
+		    			//   to put it in the front such that when style is encoded as SLD xml, it will be the first rule in one style, which 
+		    			//	 will be rendered first so it won't affect the rendering of other rules
+		    			//
+		    			// create a rule with elseFilter=true for unmatched features with default symbol		    					    			
+		    			//
+		    			var agsDefaultSymbol = agsClassBreaksRenderer.defaultSymbol;		    			
+		    			if(agsDefaultSymbol != null) {
+		    				var olDefaultSymbolizer = this.parseAgsSymbol[_AGS_OL_SYMBOL_PARSER_MAP[agsDefaultSymbol.type]].apply(this,[agsDefaultSymbol]);
+		    				var olDefaultRule = new OpenLayers.Rule({
+		    					symbolizers: [olDefaultSymbolizer],
+		    					elseFilter: true
+		    				});
+		    				olDefaultRule.name = "defaultRuleName";
+		    				olDefaultRule.title = "default rule title";
+		    				olDefaultRule.description = "default rule description";
+		    				olRules.push(olDefaultRule);
+		    			}	
+		    			//
 		    			for(var i=0; i<agsClassBreaksRenderer.infos.length; i++) {
 				    		var info = agsClassBreaksRenderer.infos[i];
 				    		var olSymbolPasrserType = _AGS_OL_SYMBOL_PARSER_MAP[info.symbol.type];	    			
@@ -1008,7 +1032,7 @@
 			    				}
 			    			);
 			    			var olRule = new OpenLayers.Rule({
-			    				symbolizer: olSymbolizer,
+			    				symbolizers: [olSymbolizer],
 			    				filter: olFilter
 			    			});
 			    			olRule.name = info.label;
@@ -1016,27 +1040,18 @@
 			    			olRule.description = info.description;
 			    			olRules.push(olRule);			    		
 			    		}
-		    			// create a rule with elseFilter=true for unmatched features with default symbol		    					    			
-		    			var agsDefaultSymbol = agsClassBreaksRenderer.defaultSymbol;		    			
-		    			if(agsDefaultSymbol != null) {
-		    				var olDefaultSymbolizer = this.parseAgsSymbol[_AGS_OL_SYMBOL_PARSER_MAP[agsDefaultSymbol.type]].apply(this,[agsDefaultSymbol]);
-		    				var olDefaultRule = new OpenLayers.Rule({
-		    					symbolizer: olDefaultSymbolizer,
-		    					elseFilter: true
-		    				});
-		    				olDefaultRule.name = "defaultRuleName";
-		    				olDefaultRule.title = "default rule title";
-		    				olDefaultRule.description = "default rule description";
-		    				olRules.push(olDefaultRule);
-		    			}		    			
+		    				    			
 		    			var olStyle = new OpenLayers.Style(
 		    				null,
 		    				{
 			    				rules: olRules
 			    			}
 			    		);
-			    		olStyle.name = "ClassBreaksRendererStyle";	// TODO: come up something better
-			    		olStyle.title = "ClassBreaksRenderer Style";	// TODO: come up something better
+			    		//olStyle.name = "ClassBreaksRendererStyle";	// TODO: come up something better
+			    		//olStyle.title = "ClassBreaksRenderer Style";	// TODO: come up something better
+		    			olStyle.name = agsClassBreaksRenderer.label;	
+			    		olStyle.title = agsClassBreaksRenderer.label;
+			    		
 			    		olStyle.description = "An OpenLayers Style converted from an esri ClassBreaksRenderer";	// TODO: come up something better	
 			    		return olStyle;
 		    		} else {
@@ -1063,6 +1078,29 @@
 	    			var filterProperty = agsUniqueValueRenderer.attributeField;	// property is used to create filter
 		    		if(agsUniqueValueRenderer.infos!=null && agsUniqueValueRenderer.infos.length>0) {
 		    			var olRules = [];
+		    			
+		    			// !!! The reason to put defaultSymbol in the front is because ArcGIS Server WMS SLD doesn't support elseFilter
+		    			//   so include defaultSymol with elseFilter in SLD will apply to all feature in the layer. The workaround here is
+		    			//   to put it in the front such that when style is encoded as SLD xml, it will be the first rule in one style, which 
+		    			//	 will be rendered first so it won't affect the rendering of other rules
+		    			//
+		    			// create a rule with elseFilter=true for unmatched features with default symbol		    					    			
+		    			// 
+		    			var agsDefaultSymbol = agsUniqueValueRenderer.defaultSymbol;		    			
+		    			if(agsDefaultSymbol != null) {
+		    				var olDefaultSymbolizer = this.parseAgsSymbol[_AGS_OL_SYMBOL_PARSER_MAP[agsDefaultSymbol.type]].apply(this,[agsDefaultSymbol]);
+		    				var olDefaultSymbolizers = [];
+		    				olDefaultSymbolizers.push(olDefaultSymbolizer);
+		    				var olDefaultRule = new OpenLayers.Rule({
+		    					symbolizers: olDefaultSymbolizers,
+		    					elseFilter: true
+		    				});
+		    				olDefaultRule.name = "defaultRuleName";
+		    				olDefaultRule.title = "default rule title";
+		    				olDefaultRule.description = "default rule description";
+		    				olRules.push(olDefaultRule);
+		    			}		    		
+		    			//
 		    			for(var i=0; i<agsUniqueValueRenderer.infos.length; i++) {
 				    		var info = agsUniqueValueRenderer.infos[i];
 				    		var olSymbolPasrserType = _AGS_OL_SYMBOL_PARSER_MAP[info.symbol.type];	    			
@@ -1074,8 +1112,10 @@
 			    					value: info.value 							
 			    				}
 			    			);
+			    			var olSymbolizers = [];
+			    			olSymbolizers.push(olSymbolizer);
 			    			var olRule = new OpenLayers.Rule({
-			    				symbolizer: olSymbolizer,
+			    				symbolizers: olSymbolizers,
 			    				filter: olFilter
 			    			});
 			    			olRule.name = info.label;
@@ -1083,27 +1123,17 @@
 			    			olRule.description = info.description;
 			    			olRules.push(olRule);			    			
 			    		}
-		    			// create a rule with elseFilter=true for unmatched features with default symbol		    					    			
-		    			var agsDefaultSymbol = agsUniqueValueRenderer.defaultSymbol;		    			
-		    			if(agsDefaultSymbol != null) {
-		    				var olDefaultSymbolizer = this.parseAgsSymbol[_AGS_OL_SYMBOL_PARSER_MAP[agsDefaultSymbol.type]].apply(this,[agsDefaultSymbol]);
-		    				var olDefaultRule = new OpenLayers.Rule({
-		    					symbolizer: olDefaultSymbolizer,
-		    					elseFilter: true
-		    				});
-		    				olDefaultRule.name = "defaultRuleName";
-		    				olDefaultRule.title = "default rule title";
-		    				olDefaultRule.description = "default rule description";
-		    				olRules.push(olDefaultRule);
-		    			}
+		    			
 		    			var olStyle = new OpenLayers.Style(
 		    				null,
 		    				{
 			    				rules: olRules
 			    			}
 			    		);
-			    		olStyle.name = "UniqueValueRendererStyle";	// TODO: come up something better
-			    		olStyle.title = "UniqueValueRenderer Style";	// TODO: come up something better
+			    		//olStyle.name = "UniqueValueRendererStyle";	// TODO: come up something better
+			    		//olStyle.title = "UniqueValueRenderer Style";	// TODO: come up something better
+			    		olStyle.name = agsUniqueValueRenderer.label;
+			    		olStyle.title = agsUniqueValueRenderer.label;
 			    		olStyle.description = "An OpenLayers Style converted from an esri UniqueValueRenderer";	// TODO: come up something better	
 			    		return olStyle;
 		    		} else {

Modified: sandbox/august/trunk/lib/OpenLayers/Format/Filter/v1.js
===================================================================
--- sandbox/august/trunk/lib/OpenLayers/Format/Filter/v1.js	2011-07-22 15:10:34 UTC (rev 12179)
+++ sandbox/august/trunk/lib/OpenLayers/Format/Filter/v1.js	2011-07-22 21:00:44 UTC (rev 12180)
@@ -250,8 +250,8 @@
      * Returns:
      * {DOMElement} Updated node element.
      */
-    writeOgcExpression: function(value, node) {
-        if(value instanceof OpenLayers.Filter.Function){
+    writeOgcExpression: function(value, node) {    	
+    	if(value instanceof OpenLayers.Filter.Function){
             var child = this.writeNode("Function", value, node);
             node.appendChild(child);
         } else {

Modified: sandbox/august/trunk/lib/OpenLayers.js
===================================================================
--- sandbox/august/trunk/lib/OpenLayers.js	2011-07-22 15:10:34 UTC (rev 12179)
+++ sandbox/august/trunk/lib/OpenLayers.js	2011-07-22 21:00:44 UTC (rev 12180)
@@ -248,6 +248,7 @@
             "OpenLayers/Strategy/Refresh.js",
             "OpenLayers/Filter.js",
             "OpenLayers/Filter/FeatureId.js",
+            "OpenLayers/Filter/Function.js",
             "OpenLayers/Filter/Logical.js",
             "OpenLayers/Filter/Comparison.js",
             "OpenLayers/Filter/Spatial.js",

Modified: sandbox/august/trunk/playground/index.html
===================================================================
--- sandbox/august/trunk/playground/index.html	2011-07-22 15:10:34 UTC (rev 12179)
+++ sandbox/august/trunk/playground/index.html	2011-07-22 21:00:44 UTC (rev 12180)
@@ -6,6 +6,7 @@
 	</head>
     <body>    	 
 		<table border="0" cellspacing="0" style="margin-top:0px;margin-left:0px;">
+			<tr><td><a href="../examples/wmts.html"><b>examples/wmts.html</b></a></td></tr>
 			<tr><td><a href="ags/agsfeatureaccess.html"><b>ags/agsfeatureaccess.html</b></a></td></tr>
 			<tr><td><a href="ags/ags-tiled-customized-tilingschema.html"><b>ags/ags-tiled-customized-tilingschema.html</b></a></td></tr>
 			<tr><td><a href="gwc/gwc-client.html"><b>gwc/gwc-client</b></a></td></tr>
@@ -19,15 +20,19 @@
 			<tr><td><a href="others/export-svg.html"><b>others/export-svg.html</b></a></td></tr>
 			<tr><td><a href="outofbox/graticule.html"><b>outofbox/graticule</b></a></td></tr>
 			<tr><td><a href="outofbox/wms-capabilities.html"><b>outofbox/wms-capabilities.html</b></a></td></tr>
-			<tr><td><a href="outofbox/proxyhost-function.html"><b>outofbox/proxyhost-function</b></a></td></tr>
-			<tr><td><a href="wps/pywps-wps-client.html"><b>outofbox/pywps-wps-client.html</b></a></td></tr>
+			<tr><td><a href="outofbox/proxyhost-function.html"><b>outofbox/proxyhost-function</b></a></td></tr>			
 			<tr><td><a href="outofbox/bing-tiles.html"><b>outofbox/bing-tiles</b></a></td></tr>
 			<tr><td><a href="outofbox/sos.html"><b>outofbox/sos</b></a></td></tr>
 			<tr><td><a href="outofbox/transform-feature.html"><b>outofbox/transform-feature</b></a></td></tr>
+			<tr><td><a href="outofbox/wms-v13.html"><b>outofbox/wms-v13</b></a></td></tr>
+			<tr><td><a href="outofbox/wmts.html"><b>outofbox/wmts.html</b></a></td></tr>
+			<tr><td><a href="outofbox/wmts-capabilities.html"><b>outofbox/wmts-capabilities.html</b></a></td></tr>
+			<tr><td><a href="outofbox/zoomify.html"><b>outofbox/zoomify</b></a></td></tr>
+			<tr><td><a href="sld/agsstyles2sld.html"><b>sld/agsstyles2sld.html</b></a></td></tr>
 			<tr><td><a href="wfst/wfst-with-lock.html"><b>wfst/wfst-with-lock.html</b></a></td></tr>
 			<tr><td><a href="wfst/wfst-with-lock-no-map.html"><b>wfst/wfst-with-lock-no-map.html</b></a></td></tr>
-			<tr><td><a href="wfst/wfst-test.html"><b>wfst/wfst-test.html</b></a></td></tr>
-			<tr><td><a href="outofbox/wms-v13.html"><b>outofbox/wms-v13</b></a></td></tr>
+			<tr><td><a href="wfst/wfst-test.html"><b>wfst/wfst-test.html</b></a></td></tr>			
+			<tr><td><a href="webmap.wms/webmap-wms-reqrecorder.html"><b>webmap.wms/webmap-wms-reqrecorder.html</b></a></td></tr>
 			<tr><td><a href="wmts/wmts.html"><b>wmts/wmts.html</b></a></td></tr>
 			<tr><td><a href="wmts/wmts-ags-epsg3857.html"><b>wmts/wmts-ags-epsg3857.html</b></a></td></tr>
 			<tr><td><a href="wmts/wmts-ags-epsg3857-load-capa.html"><b>wmts/wmts-ags-epsg3857-load-capa.html</b></a></td></tr>
@@ -46,10 +51,7 @@
 			<tr><td><a href="wmts/jsapi-wmts-customized-tilingschema.html"><b>wmts/jsapi-wmts-customized-tilingschema.html</b></a></td></tr>
 			<tr><td><a href="wmts/jsapi-wmts-ags-customized-tilingschema.html"><b>wmts/jsapi-wmts-ags-customized-tilingschema.html</b></a></td></tr>
 			<tr><td><a href="wmts/jsapi-wmts-customized-tilingschema-swiss.html"><b>wmts/jsapi-wmts-customized-tilingschema-swiss.html</b></a></td></tr>
-			<tr><td><a href="wmts/wmts2tileinfo.html"><b>wmts/wmts2tileinfo.html</b></a></td></tr>
-			<tr><td><a href="../examples/wmts.html"><b>examples/wmts.html</b></a></td></tr>
-			<tr><td><a href="outofbox/wmts.html"><b>outofbox/wmts.html</b></a></td></tr>
-			<tr><td><a href="outofbox/wmts-capabilities.html"><b>outofbox/wmts-capabilities.html</b></a></td></tr>
+			<tr><td><a href="wmts/wmts2tileinfo.html"><b>wmts/wmts2tileinfo.html</b></a></td></tr>			
 			<tr><td><a href="wps/wps.html"><b>wps/wps.html</b></a></td></tr>
 			<tr><td><a href="wps/wpscommon.html"><b>wps/wpscommon.html</b></a></td></tr>
 			<tr><td><a href="wps/wps-zooapi.html"><b>wps/wps-zooapi.html</b></a></td></tr>
@@ -58,8 +60,7 @@
 			<tr><td><a href="wps/wps-process-ags-wgs84.html"><b>wps/wps-process-ags-wgs84.html</b></a></td></tr>
 			<tr><td><a href="wps/wps-process-ags-primitive-types.html"><b>wps/wps-process-ags-primitive-types.html</b></a></td></tr>
 			<tr><td><a href="wps/wps-process-geosvr.html"><b>wps/wps-process-geosvr.html</b></a></td></tr>
-			<tr><td><a href="webmap.wms/webmap-wms-reqrecorder.html"><b>webmap.wms/webmap-wms-reqrecorder.html</b></a></td></tr>
-			<tr><td><a href="outofbox/zoomify.html"><b>outofbox/zoomify</b></a></td></tr>																
+			<tr><td><a href="wps/pywps-wps-client.html"><b>outofbox/pywps-wps-client.html</b></a></td></tr>																							
 		</table>
     </body>
 </html>

Added: sandbox/august/trunk/playground/sld/agsstyles2sld.generated.corine.xml
===================================================================
--- sandbox/august/trunk/playground/sld/agsstyles2sld.generated.corine.xml	                        (rev 0)
+++ sandbox/august/trunk/playground/sld/agsstyles2sld.generated.corine.xml	2011-07-22 21:00:44 UTC (rev 12180)
@@ -0,0 +1,1081 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sld:StyledLayerDescriptor xmlns:sld="http://www.opengis.net/sld" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml">
+	<sld:NamedLayer>
+		<sld:Name>5</sld:Name>
+		<!--<sld:Name>Artificial_Surfaces</sld:Name>-->
+		<sld:UserStyle>
+			<sld:Name>Artificial_Surfaces_style</sld:Name>
+			<sld:Title>Artificial_Surfaces_style</sld:Title>
+			<sld:Abstract>An OpenLayers Style converted from an esri UniqueValueRenderer</sld:Abstract>
+			<sld:FeatureTypeStyle>
+				<sld:Rule>
+					<sld:Name>defaultRuleName</sld:Name>
+					<sld:Title>default rule title</sld:Title>
+					<sld:Abstract>default rule description</sld:Abstract>
+					<sld:ElseFilter/>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#73b273</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>111</sld:Name>
+					<sld:Title>111</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>111</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#5c9e93</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>112</sld:Name>
+					<sld:Title>112</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>112</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#c8cc74</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>121</sld:Name>
+					<sld:Title>121</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>121</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#68b06d</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>122</sld:Name>
+					<sld:Title>122</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>122</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#a8e3c7</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>123</sld:Name>
+					<sld:Title>123</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>123</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#90a377</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>124</sld:Name>
+					<sld:Title>124</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>124</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#a0e080</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>131</sld:Name>
+					<sld:Title>131</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>131</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#80e0aa</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>132</sld:Name>
+					<sld:Title>132</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>132</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#84dbdb</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>133</sld:Name>
+					<sld:Title>133</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>133</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#a2c785</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>141</sld:Name>
+					<sld:Title>141</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>141</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#71b088</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>142</sld:Name>
+					<sld:Title>142</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>142</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#90a35b</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+			</sld:FeatureTypeStyle>
+		</sld:UserStyle>
+	</sld:NamedLayer>
+	<sld:NamedLayer>
+		<sld:Name>4</sld:Name>
+		<!--<sld:Name>Agricultural_Areas</sld:Name>-->
+		<sld:UserStyle>
+			<sld:Name>Agricultural_Areas_style</sld:Name>
+			<sld:Title>Agricultural_Areas_style</sld:Title>
+			<sld:Abstract>An OpenLayers Style converted from an esri UniqueValueRenderer</sld:Abstract>
+			<sld:FeatureTypeStyle>
+				<sld:Rule>
+					<sld:Name>defaultRuleName</sld:Name>
+					<sld:Title>default rule title</sld:Title>
+					<sld:Abstract>default rule description</sld:Abstract>
+					<sld:ElseFilter/>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#97dbf2</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>211</sld:Name>
+					<sld:Title>211</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>211</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#c89deb</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>212</sld:Name>
+					<sld:Title>212</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>212</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#7731e8</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>213</sld:Name>
+					<sld:Title>213</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>213</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#8252c4</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>221</sld:Name>
+					<sld:Title>221</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>221</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#be81f7</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>222</sld:Name>
+					<sld:Title>222</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>222</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#b452fa</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>223</sld:Name>
+					<sld:Title>223</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>223</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#d0bceb</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>231</sld:Name>
+					<sld:Title>231</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>231</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#7c48db</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>241</sld:Name>
+					<sld:Title>241</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>241</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#9075c9</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>242</sld:Name>
+					<sld:Title>242</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>242</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#a55de8</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>243</sld:Name>
+					<sld:Title>243</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>243</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#9f8fc2</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>244</sld:Name>
+					<sld:Title>244</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>244</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#a839f7</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+			</sld:FeatureTypeStyle>
+		</sld:UserStyle>
+	</sld:NamedLayer>
+	<sld:NamedLayer>
+		<sld:Name>3</sld:Name>
+		<!--<sld:Name>Forest_and_semi_natural_areas</sld:Name>-->
+		<sld:UserStyle>
+			<sld:Name>Forest_and_semi_natural_areas_style</sld:Name>
+			<sld:Title>Forest_and_semi_natural_areas_style</sld:Title>
+			<sld:Abstract>An OpenLayers Style converted from an esri UniqueValueRenderer</sld:Abstract>
+			<sld:FeatureTypeStyle>
+				<sld:Rule>
+					<sld:Name>defaultRuleName</sld:Name>
+					<sld:Title>default rule title</sld:Title>
+					<sld:Abstract>default rule description</sld:Abstract>
+					<sld:ElseFilter/>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#bce0f5</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#000000</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>311</sld:Name>
+					<sld:Title>311</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>311</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#e8b095</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#000000</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>312</sld:Name>
+					<sld:Title>312</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>312</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#f79f34</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#000000</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>313</sld:Name>
+					<sld:Title>313</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>313</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#c46b3f</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#000000</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>321</sld:Name>
+					<sld:Title>321</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>321</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#c49552</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#000000</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>322</sld:Name>
+					<sld:Title>322</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>322</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#eb7836</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#000000</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>323</sld:Name>
+					<sld:Title>323</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>323</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#bd7f5e</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#000000</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>324</sld:Name>
+					<sld:Title>324</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>324</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#f5b556</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#000000</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>331</sld:Name>
+					<sld:Title>331</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>331</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#fac27d</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#000000</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>332</sld:Name>
+					<sld:Title>332</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>332</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#faddb9</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#000000</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>333</sld:Name>
+					<sld:Title>333</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>333</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#b89d77</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#000000</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>334</sld:Name>
+					<sld:Title>334</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>334</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#b8822c</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#000000</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>335</sld:Name>
+					<sld:Title>335</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>335</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#f2a061</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#000000</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+			</sld:FeatureTypeStyle>
+		</sld:UserStyle>
+	</sld:NamedLayer>
+	<sld:NamedLayer>
+		<sld:Name>2</sld:Name>
+		<!--<sld:Name>Wetlands</sld:Name>-->
+		<sld:UserStyle>
+			<sld:Name>Wetlands_style</sld:Name>
+			<sld:Title>Wetlands_style</sld:Title>
+			<sld:Abstract>An OpenLayers Style converted from an esri UniqueValueRenderer</sld:Abstract>
+			<sld:FeatureTypeStyle>
+				<sld:Rule>
+					<sld:Name>defaultRuleName</sld:Name>
+					<sld:Title>default rule title</sld:Title>
+					<sld:Abstract>default rule description</sld:Abstract>
+					<sld:ElseFilter/>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#97dbf2</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>411</sld:Name>
+					<sld:Title>411</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>411</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#9fcfa0</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>412</sld:Name>
+					<sld:Title>412</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>412</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#b896d4</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>421</sld:Name>
+					<sld:Title>421</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>421</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#c7a295</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>422</sld:Name>
+					<sld:Title>422</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>422</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#97c1d1</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>423</sld:Name>
+					<sld:Title>423</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>423</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#9da9d4</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+			</sld:FeatureTypeStyle>
+		</sld:UserStyle>
+	</sld:NamedLayer>
+	<sld:NamedLayer>
+		<sld:Name>1</sld:Name>
+		<!--<sld:Name>Water_bodies</sld:Name>-->
+		<sld:UserStyle>
+			<sld:Name>Water_bodies_style</sld:Name>
+			<sld:Title>Water_bodies_style</sld:Title>
+			<sld:Abstract>An OpenLayers Style converted from an esri UniqueValueRenderer</sld:Abstract>
+			<sld:FeatureTypeStyle>
+				<sld:Rule>
+					<sld:Name>defaultRuleName</sld:Name>
+					<sld:Title>default rule title</sld:Title>
+					<sld:Abstract>default rule description</sld:Abstract>
+					<sld:ElseFilter/>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#97dbf2</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>511</sld:Name>
+					<sld:Title>511</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>511</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#fcc7ea</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>512</sld:Name>
+					<sld:Title>512</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>512</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#b3fcb6</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>521</sld:Name>
+					<sld:Title>521</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>521</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#bbeffc</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>522</sld:Name>
+					<sld:Title>522</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>522</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#fcddb6</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+				<sld:Rule>
+					<sld:Name>523</sld:Name>
+					<sld:Title>523</sld:Title>
+					<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
+						<ogc:PropertyIsEqualTo>
+							<ogc:PropertyName>CODE_00</ogc:PropertyName>
+							<ogc:Literal>523</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+					</ogc:Filter>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#b8b9fc</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+			</sld:FeatureTypeStyle>
+		</sld:UserStyle>
+	</sld:NamedLayer>
+	<sld:NamedLayer>
+		<sld:Name>0</sld:Name>
+		<!--<sld:Name>Other</sld:Name>-->
+		<sld:UserStyle>
+			<sld:Name>Other_style</sld:Name>
+			<sld:Title>Other_style</sld:Title>
+			<sld:Abstract>An OpenLayers Style converted from an esri SimpleRenderer</sld:Abstract>
+			<sld:FeatureTypeStyle>
+				<sld:Rule>
+					<sld:Name>Other_style</sld:Name>
+					<sld:Title>Other_style</sld:Title>
+					<sld:Abstract>Other_style</sld:Abstract>
+					<sld:PolygonSymbolizer>
+						<sld:Fill>
+							<sld:CssParameter name="fill">#97dbf2</sld:CssParameter>
+							<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
+						</sld:Fill>
+						<sld:Stroke>
+							<sld:CssParameter name="stroke">#6e6e6e</sld:CssParameter>
+							<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
+							<sld:CssParameter name="stroke-width">0</sld:CssParameter>
+						</sld:Stroke>
+					</sld:PolygonSymbolizer>
+				</sld:Rule>
+			</sld:FeatureTypeStyle>
+		</sld:UserStyle>
+	</sld:NamedLayer>
+</sld:StyledLayerDescriptor>

Added: sandbox/august/trunk/playground/sld/agsstyles2sld.html
===================================================================
--- sandbox/august/trunk/playground/sld/agsstyles2sld.html	                        (rev 0)
+++ sandbox/august/trunk/playground/sld/agsstyles2sld.html	2011-07-22 21:00:44 UTC (rev 12180)
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+	<head>
+		<title>ArcGIS Map Service Style to OGC SLD Sample</title>
+		<link rel="stylesheet" href="../../theme/default/style.css" type="text/css"/>
+		<link rel="stylesheet" href="../style.css" type="text/css" />
+		
+		<!-- ArcGIS JS API -->
+		<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/2.0/js/dojo/dijit/themes/tundra/tundra.css">
+    	<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=2.0"></script>
+    	<!--  
+    		Manually reference FeatureLayer.xd.js and iframe.xd.js which are required for support FeatureLayer in AGS JS API
+    		  You must explicitly reference those two js files here because JS API loads them dynamically when dojo.addOnLoad() is called, which
+    		  doesn't work quite friendly with TestAnotherWay
+    	-->
+    	<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/2.0/js/esri/layers/FeatureLayer.xd.js"></script>
+    	<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/2.0/js/dojo/dojo/io/iframe.xd.js"></script>
+    	
+    	<script type="text/javascript" src="../../lib/Firebug/firebug.js"></script>		
+		
+		<script type="text/javascript" src="../../lib/OpenLayers.js"></script>			 
+		<!--  
+		<script type="text/javascript" src="../../OpenLayers.js"></script>		
+		-->
+		<script type="text/javascript" src="agsstyles2sld.js"></script>
+	</head>
+	<body onload="init();">
+		<div id="map" class="bigmap"></div>  
+		<input id="agsstyles2sld_btn" type="button" value="Styles2SLD" onclick="agsStyles2SLD();"/>
+	</body>
+</html>
\ No newline at end of file

Added: sandbox/august/trunk/playground/sld/agsstyles2sld.js
===================================================================
--- sandbox/august/trunk/playground/sld/agsstyles2sld.js	                        (rev 0)
+++ sandbox/august/trunk/playground/sld/agsstyles2sld.js	2011-07-22 21:00:44 UTC (rev 12180)
@@ -0,0 +1,127 @@
+var map;
+var url = "http://sazabiii:6080/arcgis/rest/services/WM_M_Corine_M5_FGDB_Local_P_HIGH/MapServer";
+
+function init() {
+    map = new OpenLayers.Map({
+        div: "map",
+        projection: new OpenLayers.Projection("EPSG:900913"),
+        units: "m",
+        maxResolution: 156543.0339,
+        maxExtent: new OpenLayers.Bounds(
+            -20037508, -20037508, 20037508, 20037508.34
+        )
+    });
+    
+    OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
+        name: "MapQuestOSM",
+        //attribution: "Data CC-By-SA by <a href='http://openstreetmap.org/'>OpenStreetMap</a>",
+        sphericalMercator: true,
+        url: ' http://otile1.mqcdn.com/tiles/1.0.0/osm/${z}/${x}/${y}.png',
+        clone: function(obj) {
+            if (obj == null) {
+                obj = new OpenLayers.Layer.OSM(
+                    this.name, this.url, this.getOptions());
+            }
+            obj = OpenLayers.Layer.XYZ.prototype.clone.apply(this, [obj]);
+            return obj;
+        },
+        CLASS_NAME: "OpenLayers.Layer.MapQuestOSM"
+   });     
+   var mapquestosm = new OpenLayers.Layer.MapQuestOSM();                   
+   map.addLayer(mapquestosm);
+   
+   var wms = new OpenLayers.Layer.WMS(
+       "WMS",
+	   "http://sazabiii:6080/arcgis/services/WM_M_Corine_M5_FGDB_Local_P_HIGH/MapServer/WMSServer?",
+	   {
+    	   version:			"1.3.0",	       
+    	   layers:			"0,1,2,3,4,5,6",
+    	   //styles: 			"",
+	       styles:			"Other_style,Water_bodies_style,Wetlands_style,Forest_and_semi_natural_areas_style,Agricultural_Areas_style,Artificial_Surfaces_style,",
+	       sld: 			"http://nightingale2:8080/openlayers-trunk/openlayers/trunk+/playground/sld/agsstyles2sld.generated.corine.xml",
+	       format:			"image/png8",
+	       CRS:				"EPSG:3857",
+	       transparent: 	true
+	   },
+	   {
+	       singleTile: true,
+	       isBaseLayer: false
+	   }
+    );
+    wms.setVisibility(false);
+    map.addLayer(wms);
+    
+   
+    map.addControl(new OpenLayers.Control.LayerSwitcher());
+    map.setCenter(
+        new OpenLayers.LonLat(15.0, 36.0).transform(
+            new OpenLayers.Projection("EPSG:4326"),
+            map.getProjectionObject()
+        ), 
+        5
+    );
+}
+
+function agsStyles2SLD() {
+	//
+	var agsDynamicServiceLayer = new esri.layers.ArcGISDynamicMapServiceLayer(url);
+	if(agsDynamicServiceLayer.loaded) {
+		onDynamicServiceLayerLoaded(agsDynamicServiceLayer);
+    } else {
+        dojo.connect(agsDynamicServiceLayer, "onLoad", onDynamicServiceLayerLoaded);
+    }
+}
+
+function onDynamicServiceLayerLoaded(layer) {
+	var layerInfos = layer.layerInfos;
+		
+	for(var i=0; i<layerInfos.length; i++) {
+		var layerId = layerInfos[i].id;
+		var layerName = layerInfos[i].name;
+		OpenLayers.Console.debug("layer: " + layerName);		
+		var featureLayerUrl = url + "/" + layerId;		
+		var agsFeatureLayer = new esri.layers.FeatureLayer(
+			featureLayerUrl,
+			{
+				mode: esri.layers.FeatureLayer.MODE_SELECTION
+			}
+		);
+		if(agsFeatureLayer.loaded) {
+			onFeatureLayerLoaded(agsFeatureLayer);
+	    } else {
+	        dojo.connect(agsFeatureLayer, "onLoad", onFeatrueLayerLoaded);
+	    }
+	}
+}
+
+function onFeatrueLayerLoaded(featureLayer) {
+	//OpenLayers.Console.debug("...feature layer loaded...");	
+	var agsJsAdapter = new OpenLayers.Format.AgsJsAdapter();
+	var agsRenderer = featureLayer.renderer;
+	if(agsRenderer) {
+		agsRenderer.label = featureLayer.name + "_style";
+		agsRenderer.description = featureLayer.name + "_style";	
+		var rendererType = agsRenderer.declaredClass;
+		if(rendererType=="esri.renderer.SimpleRenderer" || rendererType=="esri.renderer.ClassBreaksRenderer" || rendererType=="esri.renderer.UniqueValueRenderer") {
+			var rendererParserType = rendererType.split(".")[2];
+			var olStyle = agsJsAdapter.parseAgsRenderer[rendererParserType].apply(agsJsAdapter, [agsRenderer]);			
+			//OpenLayers.Console.debug("olStyle name: " + olStyle.name);
+			//OpenLayers.Console.debug("olStyle title: " + olStyle.title);			
+			var sld = {
+				namedLayers: [
+				    {
+				    	name: featureLayer.name,
+				    	userStyles: [olStyle]		    	
+				    }              
+				]	
+			};			
+			var sldFormat = new OpenLayers.Format.SLD({
+				multipleSymbolizers: true
+			});
+			var sldStr = sldFormat.write(sld);
+			OpenLayers.Console.debug("sld xml: " + sldStr);
+		}		
+	}	
+}
+
+



More information about the Commits mailing list