[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