{"id":5103,"date":"2016-04-29T07:21:31","date_gmt":"2016-04-29T10:21:31","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/?p=5103"},"modified":"2016-04-27T23:44:53","modified_gmt":"2016-04-28T02:44:53","slug":"criando-um-webapp-com-openlayers-3-sem-escrever-codigo-parte-2","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2016\/04\/29\/criando-um-webapp-com-openlayers-3-sem-escrever-codigo-parte-2\/","title":{"rendered":"Criando um aplicativo com OpenLayers 3 sem escrever c\u00f3digo (Parte 2)"},"content":{"rendered":"<p>No <a href=\"http:\/\/www.fernandoquadro.com.br\/html\/2016\/04\/28\/criando-um-webapp-com-openlayers-3-sem-escrever-codigo-parte-1\/\" target=\"_blank\">\u00faltimo post<\/a>, iniciamos a cria\u00e7\u00e3o da nossa webapp a partir de um projeto do  QGIS. Agora, precisamos decidir como ser\u00e3o armazenados os dados para nosso aplicativo. Escolhendo a op\u00e7\u00e3o &#8220;Connect to this layer using&#8221; s\u00e3o apresentados uma s\u00e9rie de op\u00e7\u00f5es.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp6.png\" alt=\"webapp6\" width=\"975\" height=\"194\" class=\"aligncenter size-full wp-image-5107\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp6.png 975w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp6-300x60.png 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp6-768x153.png 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp6-945x188.png 945w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp6-600x119.png 600w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/p>\n<p>Os dados que temos para o nosso visualizador de eventos de inunda\u00e7\u00e3o \u00e9 uma amostra pequena, por isso usar diretamente o arquivo neste caso \u00e9 quest\u00e3o de bom senso. Se tiv\u00e9ssemos um conjunto de dados maior ou dados din\u00e2micos poder\u00edamos escolher para armazen\u00e1-los no GeoServer ou PostGIS. No nosso caso, a simbologia ser\u00e1 criado no aplicativo usando simbologia do OL3 que ser\u00e1 renderizada pela pr\u00f3pria aplica\u00e7\u00e3o.<\/p>\n<p>Agora que n\u00f3s definimos como queremos conectar as camadas precisamos decidir se queremos popups, e qual o conte\u00fado que gostar\u00edamos de ter apresentado nele. Clicando em &#8220;Edit&#8221; abre a janela do editor de pop-up. Ela est\u00e1 inicialmente em branco, mas clicando em &#8220;Add all atributes&#8221; ir\u00e1 preench\u00ea-lo com a tag [field_name] para cada campo da camada.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp7.png\" alt=\"webapp7\" width=\"975\" height=\"688\" class=\"aligncenter size-full wp-image-5108\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp7.png 975w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp7-300x212.png 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp7-768x542.png 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp7-945x667.png 945w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp7-600x423.png 600w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/p>\n<p>No nosso caso, vamos ter um pop-up que mostra o nome do fluxo para as \u00e1reas inundadas, sem pop-up para as parcelas, e a camada de precipita\u00e7\u00e3o total ter\u00e1 um pop-up que mostra a precipita\u00e7\u00e3o m\u00ednima e m\u00e1xima para essa \u00e1rea.<\/p>\n<p>O pr\u00f3ximo passo \u00e9 a aba &#8220;Widgets&#8221; onde vemos um grande n\u00famero de controles, ferramentas e widgets para nossa escolha. A sele\u00e7\u00e3o de um widget ir\u00e1 adicion\u00e1-la ao aplicativo, enquanto o bot\u00e3o direito sobre um widget vai lhe dar as op\u00e7\u00f5es de configura\u00e7\u00e3o do mesmo.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp8-939x1024-939x1024.png\" alt=\"webapp8-939x1024\" width=\"676\" height=\"737\" class=\"aligncenter size-large wp-image-5110\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp8-939x1024.png 939w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp8-939x1024-275x300.png 275w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp8-939x1024-768x838.png 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp8-939x1024-600x654.png 600w\" sizes=\"auto, (max-width: 676px) 100vw, 676px\" \/><\/p>\n<p>H\u00e1 obviamente muitas op\u00e7\u00f5es nesta tela. Para efeitos desta postagem vamos usar apenas os controles padr\u00e3o e configurar a lista de camadas (Layer List) para permitir que o usu\u00e1rio mude a opacidade das mesmas.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp9.png\" alt=\"webapp9\" width=\"941\" height=\"583\" class=\"aligncenter size-full wp-image-5115\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp9.png 941w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp9-300x186.png 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp9-768x476.png 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp9-600x372.png 600w\" sizes=\"auto, (max-width: 941px) 100vw, 941px\" \/><\/p>\n<p>Vamos adicionar um &#8220;About Painel&#8221; para o aplicativo e editar o conte\u00fado para que os usu\u00e1rios saibam mais sobre o que eles est\u00e3o visualizando.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp10-826x1024-826x1024.png\" alt=\"webapp10-826x1024\" width=\"676\" height=\"838\" class=\"aligncenter size-large wp-image-5116\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp10-826x1024.png 826w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp10-826x1024-242x300.png 242w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp10-826x1024-768x952.png 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp10-826x1024-600x744.png 600w\" sizes=\"auto, (max-width: 676px) 100vw, 676px\" \/><\/p>\n<p>Uma vez que tenha configurado os controles e widgets vamos para a aba &#8220;Deploy&#8221;. Esta aba \u00e9 usada para configurar as conex\u00f5es com PostGIS e GeoServer. No nosso caso, n\u00e3o estamos publicando nossos dados em qualquer PostGIS ou GeoServer, por isso podemos ignorar e ir para aba &#8220;Settings&#8221;.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp11-943x1024-943x1024.png\" alt=\"webapp11-943x1024\" width=\"676\" height=\"734\" class=\"aligncenter size-large wp-image-5118\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp11-943x1024.png 943w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp11-943x1024-276x300.png 276w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp11-943x1024-768x834.png 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp11-943x1024-600x652.png 600w\" sizes=\"auto, (max-width: 676px) 100vw, 676px\" \/><\/p>\n<p>A p\u00e1gina de configura\u00e7\u00f5es (Settings) nos d\u00e1 a oportunidade de definir como queremos lidar com o Extent do mapa, n\u00edveis de zoom, e estilo dos layers. Para a nossa aplica\u00e7\u00e3o, vamos aceitar todos os padr\u00f5es.<\/p>\n<p>Ap\u00f3s terminar de configurar nossa aplica\u00e7\u00e3o vamos visualizar o aplicativo (Preview) e ver como ficou.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp13.jpg\" alt=\"webapp13\" width=\"975\" height=\"578\" class=\"aligncenter size-full wp-image-5105\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp13.jpg 975w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp13-300x178.jpg 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp13-768x455.jpg 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp13-945x560.jpg 945w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/04\/webapp13-600x356.jpg 600w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/p>\n<p>Nossa aplica\u00e7\u00e3o de exemplo est\u00e1 pronta! Se quisermos fazer quaisquer mudan\u00e7as podemos voltar e alterar qualquer uma das configura\u00e7\u00f5es para atender \u00e0s nossas necessidades e pr\u00e9-visualizar novamente. Uma vez que o aplicativo est\u00e1 configurado e pronto para ser publicado, clique em &#8220;Create App&#8221;. O construtor da webapp ir\u00e1 pedir-lhe um local para salvar os arquivos, criar seu aplicativo, e perguntar\u00e1 se voc\u00ea gostaria de v\u00ea-lo.<\/p>\n<p>N\u00f3s temos uma aplica\u00e7\u00e3o conclu\u00edda pronto para uso, executada com apenas alguns cliques do mouse e preenchimento de algumas telas. Em nenhum momento durante este processo foi necess\u00e1rio codifica\u00e7\u00e3o.<\/p>\n<p>O projeto &#8220;2013 Boulder County Flood Viewer&#8221; pode ser visto completo em <a href=\"http:\/\/wilson.boundlessps.com:8080\/BoulderCountyFloods2013\/\" target=\"_blank\">http:\/\/wilson.boundlessps.com:8080\/BoulderCountyFloods2013\/<\/a><\/p>\n<p>Esta publica\u00e7\u00e3o \u00e9 uma tradu\u00e7\u00e3o livre do post &#8220;Building an OpenLayers 3 Web App Without Writing Code&#8221; publicado pela Boundless.<\/p>\n<p>Fonte: <a href=\"http:\/\/boundlessgeo.com\/2015\/06\/building-openlayers-3-web-app-without-writing-code\/\" target=\"_blank\">Boundless<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>No \u00faltimo post, iniciamos a cria\u00e7\u00e3o da nossa webapp a partir de um projeto do QGIS. Agora, precisamos decidir como ser\u00e3o armazenados os dados para nosso aplicativo. Escolhendo a op\u00e7\u00e3o &#8220;Connect to this layer using&#8221; s\u00e3o apresentados uma s\u00e9rie de&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2016\/04\/29\/criando-um-webapp-com-openlayers-3-sem-escrever-codigo-parte-2\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":5105,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24,132,258],"tags":[223,250,260],"class_list":["post-5103","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis","category-openlayers","category-qgis","tag-gis","tag-openlayers","tag-qgis"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/5103","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=5103"}],"version-history":[{"count":17,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/5103\/revisions"}],"predecessor-version":[{"id":5132,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/5103\/revisions\/5132"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/5105"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=5103"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=5103"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=5103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}