{"id":7369,"date":"2018-09-24T07:30:42","date_gmt":"2018-09-24T10:30:42","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/?p=7369"},"modified":"2018-09-21T16:19:37","modified_gmt":"2018-09-21T19:19:37","slug":"substituicao-de-variaveis-no-sld","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2018\/09\/24\/substituicao-de-variaveis-no-sld\/","title":{"rendered":"Substitui\u00e7\u00e3o de vari\u00e1veis no SLD"},"content":{"rendered":"<p>A substitui\u00e7\u00e3o de vari\u00e1veis \u200b\u200bno SLD \u00e9 uma funcionalidade do GeoServer (adicionada na vers\u00e3o 2.0.2) que permite passar valores nas requisi\u00e7\u00f5es WMS para estilos. Isso permite definir valores dinamicamente, como cores, fontes, tamanhos e limites de filtro.<\/p>\n<p>As vari\u00e1veis \u200b\u200bs\u00e3o especificadas nas requisi\u00e7\u00f5es <em>GetMap<\/em> do WMS usando o par\u00e2metro <strong><em>env<\/em><\/strong> seguido por uma lista de nomes e valores separados por ponto e v\u00edrgula conforme demonstrado abaixo:<\/p>\n<pre>\r\n...&env=name1:value1;name2=value2&...\r\n<\/pre>\n<p>Em um SLD, os valores das vari\u00e1veis \u200b\u200bs\u00e3o acessados \u200b\u200busando a fun\u00e7\u00e3o <strong><em>env<\/em><\/strong> que recupera um valor de vari\u00e1vel especificado substituindo na solicita\u00e7\u00e3o atual:<\/p>\n<pre>\r\n&lt;ogc:Function&nbsp;name=\"env\"&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;ogc:Literal&gt;size&lt;\/ogc:Literal&gt;\r\n&lt;\/ogc:Function&gt;\r\n<\/pre>\n<p>Um valor padr\u00e3o pode ser fornecido, e ser\u00e1 usado se a vari\u00e1vel n\u00e3o for especificada na solicita\u00e7\u00e3o:<\/p>\n<pre>\r\n&lt;ogc:Function&nbsp;name=\"env\"&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;ogc:Literal&gt;size&lt;\/ogc:Literal&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;ogc:Literal&gt;6&lt;\/ogc:Literal&gt;\r\n&lt;\/ogc:Function&gt;\r\n<\/pre>\n<p>A fun\u00e7\u00e3o <strong><em>env<\/em><\/strong> pode ser usada em um SLD em qualquer lugar onde uma express\u00e3o OGC \u00e9 permitida. Por exemplo, ele pode ser usado em elemento <em>CSSParameter<\/em>, em elementos de tamanho e deslocamento e at\u00e9 em express\u00f5es de filtros nas regra. Tamb\u00e9m \u00e9 aceito em alguns lugares onde express\u00f5es completas n\u00e3o s\u00e3o permitidas, como no elemento <em>Mark\/WellKnownName<\/em>.<\/p>\n<p>O seguinte elemento <em>Symbolizer<\/em> foi parametrizado em tr\u00eas locais, com os valores padr\u00e3o fornecidos em cada caso, veja:<\/p>\n<pre>\r\n&lt;PointSymbolizer&gt;\r\n&nbsp;&nbsp;&lt;Graphic&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;Mark&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;WellKnownName&gt;&lt;ogc:Function&nbsp;name=\"env\"&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ogc:Literal&gt;name&lt;\/ogc:Literal&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ogc:Literal&gt;square&lt;\/ogc:Literal&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/ogc:Function&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/WellKnownName&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Fill&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;CssParameter&nbsp;name=\"fill\"&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ogc:Function&nbsp;name=\"env\"&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ogc:Literal&gt;color&lt;\/ogc:Literal&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ogc:Literal&gt;FF0000&lt;\/ogc:Literal&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/ogc:Function&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/CssParameter&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Fill&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Mark&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;Size&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ogc:Function&nbsp;name=\"env\"&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ogc:Literal&gt;size&lt;\/ogc:Literal&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ogc:Literal&gt;6&lt;\/ogc:Literal&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/ogc:Function&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Size&gt;\r\n&nbsp;&nbsp;&lt;\/Graphic&gt;\r\n&lt;\/PointSymbolizer&gt;\r\n<\/pre>\n<p>Quando nenhuma vari\u00e1vel \u00e9 fornecida na requisi\u00e7\u00e3o WMS, o SLD usa os valores padr\u00e3o e renderiza o conjunto de dados, conforme mostrado abaixo na camada <em>sf:bugsites<\/em>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/09\/sf_bugsites_standard.png\" alt=\"\" width=\"623\" height=\"317\" class=\"aligncenter size-full wp-image-7379\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/09\/sf_bugsites_standard.png 623w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/09\/sf_bugsites_standard-300x153.png 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/09\/sf_bugsites_standard-600x305.png 600w\" sizes=\"auto, (max-width: 623px) 100vw, 623px\" \/><\/p>\n<p>Se a solicita\u00e7\u00e3o for alterada para especificar os seguintes valores de vari\u00e1veis:<\/p>\n<pre>\r\n&env=color:00FF00;name:triangle;size:12\r\n<\/pre>\n<p>O resultado ent\u00e3o ser\u00e1:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/09\/sf_bugsites_changed.png\" alt=\"\" width=\"622\" height=\"318\" class=\"aligncenter size-full wp-image-7380\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/09\/sf_bugsites_changed.png 622w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/09\/sf_bugsites_changed-300x153.png 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/09\/sf_bugsites_changed-600x307.png 600w\" sizes=\"auto, (max-width: 622px) 100vw, 622px\" \/><\/p>\n<p>Agora basta voc\u00ea aplicar nos seus estilos SLD.<\/p>\n<p>Fonte: <a href=\"http:\/\/docs.geoserver.org\/stable\/en\/user\/styling\/sld\/extensions\/substitution.html\" rel=\"noopener\" target=\"_blank\">GeoServer Documentation<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A substitui\u00e7\u00e3o de vari\u00e1veis \u200b\u200bno SLD \u00e9 uma funcionalidade do GeoServer (adicionada na vers\u00e3o 2.0.2) que permite passar valores nas requisi\u00e7\u00f5es WMS para estilos. Isso permite definir valores dinamicamente, como cores, fontes, tamanhos e limites de filtro. As vari\u00e1veis \u200b\u200bs\u00e3o&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2018\/09\/24\/substituicao-de-variaveis-no-sld\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":7371,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[208,214],"class_list":["post-7369","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis","tag-geoserver","tag-sld"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/7369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/users\/275"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/comments?post=7369"}],"version-history":[{"count":7,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/7369\/revisions"}],"predecessor-version":[{"id":7383,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/7369\/revisions\/7383"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/7371"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=7369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=7369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=7369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}