{"id":5152,"date":"2016-05-04T07:35:47","date_gmt":"2016-05-04T10:35:47","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/?p=5152"},"modified":"2019-07-16T10:12:37","modified_gmt":"2019-07-16T13:12:37","slug":"publicando-mapa-com-dados-do-openstreetmap-parte-2","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2016\/05\/04\/publicando-mapa-com-dados-do-openstreetmap-parte-2\/","title":{"rendered":"Publicando mapa com dados do OpenStreetMap (Parte 2)"},"content":{"rendered":"<p>No <a href=\"http:\/\/www.fernandoquadro.com.br\/html\/2016\/05\/02\/publicando-mapa-com-dados-do-openstreetmap-parte-1\/\" target=\"_blank\" rel=\"noopener noreferrer\">\u00faltimo post<\/a> baixamos os dados do <a href=\"http:\/\/openstreetmap.org\" target=\"_blank\" rel=\"noopener noreferrer\">OpenStreetMap<\/a> e os carregamos no banco de dados PostgreSQL\/PostGIS. Hoje vamos configurar esses dados no <a href=\"http:\/\/www.geoserver.org\" target=\"_blank\" rel=\"noopener noreferrer\">GeoServer<\/a> e depois public\u00e1-los atrav\u00e9s de uma aplica\u00e7\u00e3o com <a href=\"http:\/\/openlayers.org\" target=\"_blank\" rel=\"noopener noreferrer\">OpenLayers 3<\/a>.<\/p>\n<p>N\u00f3s iremos configurar nossa base de dados, e as defini\u00e7\u00f5es de estilo em um \u00fanico &#8220;workspace&#8221; para facilitar a gest\u00e3o da informa\u00e7\u00e3o. Entre no GeoServer, e crie um novo workspace com o nome <strong>osm<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/workspace.png\" alt=\"workspace\" width=\"449\" height=\"288\" class=\"aligncenter size-full wp-image-5161\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/workspace.png 449w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/workspace-300x192.png 300w\" sizes=\"auto, (max-width: 449px) 100vw, 449px\" \/><\/p>\n<p>Precisamos conectar o GeoServer ao nosso banco de dados PostGIS que cont\u00e9m todas as nossas informa\u00e7\u00f5es, e definir uma nova Store (PostGIS).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/datastore.png\" alt=\"datastore\" width=\"331\" height=\"596\" class=\"aligncenter size-full wp-image-5162\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/datastore.png 331w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/datastore-167x300.png 167w\" sizes=\"auto, (max-width: 331px) 100vw, 331px\" \/><\/p>\n<p>1. Escolha <strong>osm <\/strong>como workspace<br \/>\n2. Use <strong>openstreetmap <\/strong>como o nome da Store<br \/>\n3. Adicione os outros par\u00e2metros de conex\u00e3o com o banco de dados<\/p>\n<p>A constru\u00e7\u00e3o de um produto cartogr\u00e1fico de 25 camadas \u00e9 uma tarefa complexa, ent\u00e3o vamos configurar as camadas e os estilos. Para isso voc\u00ea deve fazer o download do arquivo <a href=\"https:\/\/github.com\/boundlessgeo\/OSM\/blob\/master\/sld.zip\" target=\"_blank\" rel=\"noopener noreferrer\">sld.zip<\/a>, que cont\u00e9m todos os estilos.<\/p>\n<p>Agora, h\u00e1 duas abordagens para aplicar os estilos, a abordagem manual e uma abordagem autom\u00e1tica. Para este exemplo, utilizaremos o modo manual que se aplica a todos os sistemas operacionais (Windows, Linux e Mac), mas em outro post mostraremos como realizar o processo de forma autom\u00e1tica.<\/p>\n<p>Para cada arquivo SLD no diret\u00f3rio, voc\u00ea deve realizar os seguintes passos:<\/p>\n<p>1. V\u00e1 para op\u00e7\u00e3o Styles no menu<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.1 Adicionar um novo estilo, usando o nome do seu arquivo de SLD<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.2 Selecione o workspace osm.<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.3 Carregar ou copiar o conte\u00fado do arquivo SLD no editor.<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.4 Salvar.<br \/>\n2. V\u00e1 para op\u00e7\u00e3o Layers no menu<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.1 Adicionar um novo recurso da Store openstreetmap.<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.2 Selecione a tabela que corresponde ao seu arquivo SLD.<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.3 Calcular os limites (Bounding Box).<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.4 V\u00e1 at\u00e9 a aba &#8220;Publishing&#8221;.<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.5 Escolha como o estilo padr\u00e3o, o novo estilo que voc\u00ea acabou de criar e que tem o mesmo nome da camada.<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.6 Salvar.<\/p>\n<p>Voc\u00ea deve repetir esse processo para todos os arquivos SLD, e ao final do processo voc\u00ea ter\u00e1 seu estilo e suas camadas configuradas no GeoServer, clique sobre as op\u00e7\u00f5es Style e Layers 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><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/styles.png\" alt=\"styles\" width=\"557\" height=\"684\" class=\"aligncenter size-full wp-image-5167\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/styles.png 557w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/styles-244x300.png 244w\" sizes=\"auto, (max-width: 557px) 100vw, 557px\" \/><\/p>\n<p>Agora temos 25 camadas, todas muito bem decoradas&#8230; mas n\u00e3o queremos 25 camadas, queremos um mapa!<\/p>\n<p>Agora vamos construir um grupo de camadas, indo na op\u00e7\u00e3o &#8220;Layer Group&#8221; no menu para criar um grupo de camadas chamado <strong>osm<\/strong>, em seguida, siga a imagem abaixo para acrescentar e ordenar as camadas.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/layergroup.png\" alt=\"layergroup\" width=\"741\" height=\"699\" class=\"aligncenter size-full wp-image-5169\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/layergroup.png 741w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/layergroup-300x283.png 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/layergroup-600x566.png 600w\" sizes=\"auto, (max-width: 741px) 100vw, 741px\" \/><\/p>\n<p>Agora que todas as camadas, estilos e grupos est\u00e3o configurados voc\u00ea pode ver o resultado! V\u00e1 para op\u00e7\u00e3o &#8220;Layer Preview&#8221; no menu e encontre a camada osm, provavelmente estar\u00e1 na segunda p\u00e1gina de resultados.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/layerpreview.png\" alt=\"layerpreview\" width=\"559\" height=\"223\" class=\"aligncenter size-full wp-image-5172\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/layerpreview.png 559w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/layerpreview-300x120.png 300w\" sizes=\"auto, (max-width: 559px) 100vw, 559px\" \/><\/p>\n<p>Para abri-lo clique em &#8220;Go&#8221; ap\u00f3s selecionar a op\u00e7\u00e3o OpenLayers no campo View e voc\u00ea vai ver o resultado do nosso trabalho.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/map2.png\" alt=\"map2\" width=\"773\" height=\"545\" class=\"aligncenter size-full wp-image-5173\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/map2.png 773w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/map2-300x212.png 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/map2-768x541.png 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/05\/map2-600x423.png 600w\" sizes=\"auto, (max-width: 773px) 100vw, 773px\" \/><\/p>\n<p>Agora que j\u00e1 conferimos nossas configura\u00e7\u00f5es, vamos criar uma aplica\u00e7\u00e3o utilizando o OpenLayers 3 para que<br \/>\npossamos publicar nossas informa\u00e7\u00f5es atrav\u00e9s de uma interface web amig\u00e1vel.<\/p>\n<p>Abaixo segue um c\u00f3digo para uma simples aplica\u00e7\u00e3o OpenLayers 3 que usa o &#8220;Layer Group&#8221; osm como um elemento do mapa base.<\/p>\n<pre>\r\n&lt;!doctype html&gt;\r\n&lt;html lang=\"en\"&gt;\r\n&nbsp;&nbsp; &lt;head&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;link rel=\"stylesheet\" href=\"http:\/\/openlayers.org\/en\/v3.0.0\/css\/ol.css\" type=\"text\/css\"&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;style&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.map {\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;height: 600px;\r\n&nbsp;&nbsp;&nbsp;&nbsp;width: 100%;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/style&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;script src=\"http:\/\/openlayers.org\/en\/v3.0.0\/build\/ol.js\" type=\"text\/javascript\"&gt;&lt;\/script&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;OpenStreetMap Base&lt;\/title&gt;\r\n&nbsp;&nbsp;&lt;\/head&gt;\r\n&nbsp;&nbsp;&lt;body&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id=\"map\" class=\"map\"&gt;&lt;\/div&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;script type=\"text\/javascript\"&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var map = new ol.Map({\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target: 'map',\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/** Display map in web mercator *\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;layers: [\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new ol.layer.Tile({\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source: new ol.source.TileWMS({\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/** Note use of workspace osm in the WMS url *\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url: 'http:\/\/localhost:8080\/geoserver\/wms',\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;projection: 'EPSG:3857',\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extent: [-20037508.34,-20037508.34,20037508.34,20037508.34],\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params: {\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/** Workspace spec'ed above means we don't need it here *\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'LAYERS': 'osm',\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/** PNG for street maps, JPG for aerials *\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'FORMAT': 'image\/png',\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'TILED' : 'true'\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/** @type {ol.source.wms.ServerType} *\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serverType: 'geoserver'\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;],\r\n&nbsp;&nbsp;&nbsp;&nbsp;view: new ol.View({\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/** Coordinates in lon\/lat, easy to understand, transform to web mercator *\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;center: ol.proj.transform([-123.36310, 48.42484], 'EPSG:4326', 'EPSG:3857'),\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zoom: 14\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/script&gt;\r\n&nbsp;&nbsp;&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/pre>\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\" rel=\"noopener noreferrer\">Boundless<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>No \u00faltimo post baixamos os dados do OpenStreetMap e os carregamos no banco de dados PostgreSQL\/PostGIS. Hoje vamos configurar esses dados no GeoServer e depois public\u00e1-los atrav\u00e9s de uma aplica\u00e7\u00e3o com OpenLayers 3. N\u00f3s iremos configurar nossa base de dados,&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2016\/05\/04\/publicando-mapa-com-dados-do-openstreetmap-parte-2\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":5139,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,24,132],"tags":[208,223,250,166],"class_list":["post-5152","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-geoserver","category-gis","category-openlayers","tag-geoserver","tag-gis","tag-openlayers","tag-openstreetmap"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/5152","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=5152"}],"version-history":[{"count":17,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/5152\/revisions"}],"predecessor-version":[{"id":8359,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/5152\/revisions\/8359"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/5139"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=5152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=5152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=5152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}