{"id":5186,"date":"2016-05-06T07:56:47","date_gmt":"2016-05-06T10:56:47","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/?p=5186"},"modified":"2025-09-11T15:40:06","modified_gmt":"2025-09-11T18:40:06","slug":"configuracao-automatica-de-estilos-e-camadas-no-geoserver-via-script-bash","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2016\/05\/06\/configuracao-automatica-de-estilos-e-camadas-no-geoserver-via-script-bash\/","title":{"rendered":"Configura\u00e7\u00e3o autom\u00e1tica de estilos e camadas no GeoServer via script bash"},"content":{"rendered":"<p>No post <a href=\"http:\/\/www.fernandoquadro.com.br\/html\/2016\/05\/02\/publicando-mapa-com-dados-do-openstreetmap-parte-1\/\" target=\"_blank\">&#8220;Publicando mapa com dados do OpenStreetMap&#8221;<\/a> citei que existiam duas maneiras de realizar a configura\u00e7\u00e3o dos estilos e camadas no GeoServer, e \u00e9 o que vamos fazer neste post, realizar a configura\u00e7\u00e3o autom\u00e1tica dos estilos e camadas a partir de um script bash. <\/p>\n<p>Se voc\u00ea usa Linux ou OSX, voc\u00ea pode usar a abordagem autom\u00e1tica (se voc\u00ea \u00e9 bom em scripts do Windows, voc\u00ea provavelmente conseguir\u00e1 adaptar esta abordagem). Isto requer a utiliza\u00e7\u00e3o do <a href=\"https:\/\/curl.haxx.se\/download.html\" target=\"_blank\">cURL<\/a>, que est\u00e1 dispon\u00edvel por padr\u00e3o para Linux, Windows e OSX.<\/p>\n<p>Este script assume que voc\u00ea est\u00e1 usando por padr\u00e3o um shell bash . Ele usa a <a href=\"http:\/\/suite.opengeo.org\/opengeo-docs\/geoserver\/rest\/index.html\" target=\"_blank\">API REST do GeoServer<\/a> para alterar o cat\u00e1logo de configura\u00e7\u00e3o sem a necessidade de que voc\u00ea precise interagir com a interface web administrativa.<\/p>\n<p>1. Digite o diret\u00f3rio que cont\u00e9m os arquivos SLD.<br \/>\n2. Execute o SLD_create.sh conforme o roteiro abaixo. (Se voc\u00ea tiver alterado sua senha &#8220;admin&#8221;, ou usado nomes diferentes para a workspace ou store, pode ser necess\u00e1rio alterar o script.)<\/p>\n<pre>\r\n# script to add layer\/style information\r\n# for every SLD file in our collection\r\n#\r\nrestapi=http:\/\/localhost:8080\/geoserver\/rest\r\nlogin=admin:geoserver\r\nworkspace=osm\r\nstore=openstreetmap\r\n\r\nfor sldfile in *.sld; do\r\n\r\n# strip the extension from the filename to use for layer\/style names\r\nlayername=`basename $sldfile .sld`\r\n\r\n# create a new featuretype in the store, assuming the table\r\n# already exists in the database and is named $layername\r\n# this step automatically creates a layer of the same name\r\n# as a side effect\r\ncurl -v -u $login -XPOST -H \"Content-type: text\/xml\" \\\r\n-d \"<featuretype><name>$layername<\/name><\/featuretype>\" \\\r\n$restapi\/workspaces\/$workspace\/datastores\/$store\/featuretypes?recalculate=nativebbox,latlonbbox\r\n\r\n# create an empty style object in the workspace, using the same name\r\ncurl -v -u $login -XPOST -H \"Content-type: text\/xml\" \\\r\n-d \"<style><name>$layername<\/name><filename>$sldfile<\/filename><\/style>\" \\\r\n$restapi\/workspaces\/$workspace\/styles\r\n\r\n# upload the SLD definition to the style\r\ncurl -v -u $login -XPUT -H \"Content-type: application\/vnd.ogc.sld+xml\" \\\r\n-d @$sldfile \\\r\n$restapi\/workspaces\/$workspace\/styles\/$layername\r\n\r\n# associate the style with the layer as the default style\r\ncurl -v -u $login -XPUT -H \"Content-type: text\/xml\" \\\r\n-d \"<layer><enabled>true<\/enabled><defaultstyle><name>$layername<\/name><workspace>$workspace<\/workspace><\/defaultstyle><\/layer>\" \\\r\n$restapi\/layers\/$workspace:$layername\r\n\r\ndone\r\n<\/pre>\n<p>O script executa uma itera\u00e7\u00e3o para cada arquivo SLD, usando o nome do arquivo para criar uma camada que corresponde a tabela com mesmo nome no banco de dados, e preenche um estilo associado a ele.<\/p>\n<p>Assim que estiver pronto, clique sobre os &#8220;Styles&#8221; e &#8220;Layers&#8221; no menu para ver os resultados.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/layers.png\" alt=\"layers\" width=\"691\" height=\"680\" class=\"aligncenter size-full wp-image-5165\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/layers.png 691w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/layers-300x295.png 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/layers-600x590.png 600w\" sizes=\"auto, (max-width: 691px) 100vw, 691px\" \/><\/p>\n<p>Este post \u00e9 uma tradu\u00e7\u00e3o e adapta\u00e7\u00e3o livre do post &#8220;Publishing an OpenStreetMap&#8221; publicado no site da Boundless.<\/p>\n<p>Fonte: <a href=\"http:\/\/workshops.boundlessgeo.com\/tutorial-osm\/\" target=\"_blank\">Boundless<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>No post &#8220;Publicando mapa com dados do OpenStreetMap&#8221; citei que existiam duas maneiras de realizar a configura\u00e7\u00e3o dos estilos e camadas no GeoServer, e \u00e9 o que vamos fazer neste post, realizar a configura\u00e7\u00e3o autom\u00e1tica dos estilos e camadas a&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2016\/05\/06\/configuracao-automatica-de-estilos-e-camadas-no-geoserver-via-script-bash\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":5187,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,24],"tags":[208,223],"class_list":["post-5186","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-geoserver","category-gis","tag-geoserver","tag-gis"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/5186","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=5186"}],"version-history":[{"count":12,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/5186\/revisions"}],"predecessor-version":[{"id":9963,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/5186\/revisions\/9963"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/5187"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=5186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=5186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=5186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}