3 votos

Cómo añadir SLD a una capa wms dinámicamente desde javascript

Cómo añadir un estilo SLD escrito en formato String y almacenado en una variable 'var' de javascript y asignarlo a una capa WMS al crearla.

3voto

Adam Ernst Puntos 6939

Todo lo que tiene que hacer es sustituir el parámetro styles por un parámetro SLD que contenga su estilo. El siguiente código de este ejemplo demuestra el concepto.

            theSLD_BODY= '<?xml version="1.0" encoding="utf-8"?>' + '<StyledLayerDescriptor version="1.0.0" xmlns="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengeospatial.net/sld/1.0.0/StyledLayerDescriptor.xsd"><NamedLayer><Name>COUNTRY</Name><UserStyle><FeatureTypeStyle><Rule><ogc:Filter><ogc:PropertyIsLike wildCard="*" singleChar="#" escape="!"><ogc:PropertyName>Continent</ogc:PropertyName><ogc:Literal>Africa</ogc:Literal></ogc:PropertyIsLike></ogc:Filter><PolygonSymbolizer><Fill><CssParameter name="fill">#5599DD</CssParameter></Fill><Stroke><CssParameter name="stroke">#000000</CssParameter></Stroke></PolygonSymbolizer></Rule></FeatureTypeStyle></UserStyle></NamedLayer></StyledLayerDescriptor>';
        layer2 = new OpenLayers.Layer.WMS( "Africa (SLD_BODY)",
                "http://gis.ibbeck.de/include/mapserver/mapserv.exe?map=/daten/mapfiles/world/World.map",
                {   "layers": "COUNTRY",
                    "format": "image/png",
                    "version": "1.1.1",
                    "transparent": "TRUE",
                    "SLD_BODY": theSLD_BODY
                });

Puede tener problemas si el SLD es demasiado largo, ya que puede superar la longitud máxima de URL de su navegador. En ese caso, tendrá que cambiar a peticiones POST en lugar de GET.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X