{"id":1183,"date":"2008-12-29T09:36:00","date_gmt":"2008-12-29T12:36:00","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/?p=1183"},"modified":"2008-12-29T09:43:49","modified_gmt":"2008-12-29T12:43:49","slug":"introducao-ao-openlayers-parte-4","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2008\/12\/29\/introducao-ao-openlayers-parte-4\/","title":{"rendered":"Introdu\u00e7\u00e3o ao OpenLayers: Vetores"},"content":{"rendered":"<p>No m\u00f3dulo 2 n\u00f3s vimos que era possivel carregar imagens atrav\u00e9s do WMS, e tamb\u00e9m carregar as fei\u00e7\u00f5es das geometrias atrav\u00e9s do WFS. Neste m\u00f3dulo iremos explorar um pouco as funcionalidades do OpenLayers quando se trata de dados vetoriais.<\/p>\n<p><strong>M\u00f3dulo 4: Vetores<\/strong><\/p>\n<p><em><strong>1. Formatos Vetoriais<\/strong><\/em><\/p>\n<p>Com o OpenLayers \u00e9 poss\u00edvel ler e escrever em diversos formatos de dados vetoriais serializ\u00e1veis como o GeoJSON, KML, GeoRSS, GML e WKT.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2008\/12\/openlayers_vetores_01.png\" alt=\"\" title=\"\" width=\"512\" height=\"225\" class=\"alignnone size-full wp-image-1516\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2008\/12\/openlayers_vetores_01.png 512w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2008\/12\/openlayers_vetores_01-300x132.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/p>\n<p>Voc\u00ea pode tamb\u00e9m utilizar as ferramentas de desenho para desenhar pontos, linhas e pol\u00edgonos no seu mapa, n\u00e3o apenas para cria\u00e7\u00e3o, como tamb\u00e9m para edi\u00e7\u00e3o das fei\u00e7\u00f5es e dos seus atributos.<\/p>\n<p>Se voc\u00ea possuir o Google Earth, poder\u00e1 visualizar suas camadas nele, bastanto para isso que voc\u00ea gere um KML (atrav\u00e9s de uma requisi\u00e7\u00e3o WMS, ou indo diretamente no cliente OpenLayers do seu GeoServer), e abra-o no Google Earth.<\/p>\n<p><em><strong>2. Estilos<\/strong><\/em><\/p>\n<p>Uma das raz\u00f5es para utilizar dados vetoriais, \u00e9 que com o OpenLayers voc\u00ea tem o poder de controlar o seu estilo, ou seja, a forma como ele ir\u00e1 aparecer no mapa para o cliente.<\/p>\n<p>Por padr\u00e3o, as fei\u00e7\u00f5es desenhadas pelo OpenLayers s\u00e3o laranja. Por\u00e9m os estilos s\u00e3o totalmente customiz\u00e1veis, bastando para isso que voc\u00ea tenha um arquivo JavaScript definindo o estilo, ou um arquivo de estilos externo (um SLD do GeoServer, por exemplo).<\/p>\n<p>O exemplo abaixo foi gerado a partir de uma requisi\u00e7\u00e3o WFS ao GeoServer. A camada foi desenhada utilizando cores baseadas na popula\u00e7\u00e3o.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2008\/12\/openlayers_vetores_02.png\" alt=\"\" title=\"\" width=\"503\" height=\"204\" class=\"alignnone size-full wp-image-1521\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2008\/12\/openlayers_vetores_02.png 503w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2008\/12\/openlayers_vetores_02-300x121.png 300w\" sizes=\"auto, (max-width: 503px) 100vw, 503px\" \/><\/p>\n<p>Veja no c\u00f3digo fonte do exemplo que adicionamos um nova propriedade:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2008\/12\/openlayers_vetores_03.png\" alt=\"\" title=\"\" width=\"515\" height=\"99\" class=\"alignnone size-full wp-image-1523\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2008\/12\/openlayers_vetores_03.png 515w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2008\/12\/openlayers_vetores_03-300x57.png 300w\" sizes=\"auto, (max-width: 515px) 100vw, 515px\" \/><\/p>\n<p>A propriedade styleMap do layer foi setada para myStyleMap, veja:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2008\/12\/openlayers_vetores_04.png\" alt=\"\" title=\"\" width=\"426\" height=\"76\" class=\"alignnone size-full wp-image-1525\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2008\/12\/openlayers_vetores_04.png 426w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2008\/12\/openlayers_vetores_04-300x53.png 300w\" sizes=\"auto, (max-width: 426px) 100vw, 426px\" \/><\/p>\n<p>Neste caso n\u00f3s inicializamos o StyleMap com um hash de estilos. Este hash pode possuir as seguintes propriedades:<\/p>\n<ul class=\"simple\">\n<li><cite>default<\/cite> &#8211; estilo que ser\u00e1 desenhado na inicializa\u00e7\u00e3o do mapa;<\/li>\n<li><cite>select<\/cite> &#8211; estilo que ser\u00e1 desenhado quando alguma fei\u00e7\u00e3o for selecionada;<\/li>\n<li><cite>temporary<\/cite> &#8211; estilo que ser\u00e1 desenhado com estilos que devem ficar temporariamente no mapa.<\/li>\n<\/ul>\n<p>Nosso exemplo utiliza o padr\u00e3o. Observe que quando voc\u00ea colocar o mouse em cima do mapa, o estilo ir\u00e1 mudar, isso porque um estilo diferente \u00e9 utilizando quando o mouse passa em cima das fei\u00e7\u00f5es.<\/p>\n<p>Veja como ficou a defini\u00e7\u00e3o dos estilos:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2008\/12\/openlayers_vetores_05.png\" alt=\"\" title=\"\" width=\"518\" height=\"687\" class=\"alignnone size-full wp-image-1528\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2008\/12\/openlayers_vetores_05.png 518w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2008\/12\/openlayers_vetores_05-226x300.png 226w\" sizes=\"auto, (max-width: 518px) 100vw, 518px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>No m\u00f3dulo 2 n\u00f3s vimos que era possivel carregar imagens atrav\u00e9s do WMS, e tamb\u00e9m carregar as fei\u00e7\u00f5es das geometrias atrav\u00e9s do WFS. Neste m\u00f3dulo iremos explorar um pouco as funcionalidades do OpenLayers quando se trata de dados vetoriais. M\u00f3dulo&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2008\/12\/29\/introducao-ao-openlayers-parte-4\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[132,30],"tags":[144],"class_list":["post-1183","post","type-post","status-publish","format-standard","hentry","category-openlayers","category-tutorial","tag-introducao-openlayers"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/1183","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=1183"}],"version-history":[{"count":14,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/1183\/revisions"}],"predecessor-version":[{"id":1532,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/1183\/revisions\/1532"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=1183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=1183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=1183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}