{"id":4754,"date":"2016-03-02T06:53:16","date_gmt":"2016-03-02T09:53:16","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/?p=4754"},"modified":"2019-08-19T08:35:58","modified_gmt":"2019-08-19T11:35:58","slug":"quais-ferramentas-usar-para-desenvolver-um-webgis-parte-2","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2016\/03\/02\/quais-ferramentas-usar-para-desenvolver-um-webgis-parte-2\/","title":{"rendered":"Quais ferramentas usar para desenvolver um WebGIS? (Parte 2)"},"content":{"rendered":"<p>No <a href=\"http:\/\/www.fernandoquadro.com.br\/html\/2016\/02\/29\/quais-ferramentas-usar-para-desenvolver-um-webgis-parte-1\/\" target=\"_blank\" rel=\"noopener noreferrer\">\u00faltimo post<\/a>, iniciamos a defini\u00e7\u00e3o da arquitetura falando sobre banco de dados espacial e apllication server, hoje concluiremos o artigo falando sobre gerenciador de cache e clientes web e desktop.<\/p>\n<p><strong>4. Cache<\/strong><\/p>\n<p>Um mapa pode ter muitas camadas, e estas camadas podem ter muitas fei\u00e7\u00f5es, o que pode ocasionar lentid\u00e3o no seu WebGIS. E vamos combinar que n\u00e3o existe nada piorar do que navegar em um sistema que se arrasta.<\/p>\n<p>Por esse motivo \u00e9 aconselh\u00e1vel que voc\u00ea utilize na sua arquitetura um gerenciador de cache. No nosso caso vou sugerir o <a href=\"http:\/\/geowebcache.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">GeoWebCache (GWC)<\/a>, que j\u00e1 vem integrado com o GeoServer, e facilita muito o trabalho na cria\u00e7\u00e3o das camadas cacheadas.<\/p>\n<p>Para voc\u00ea ter uma ideia de como um gerenciador de cache \u00e9 importante, ele pode aumentar a velocidade da sua aplica\u00e7\u00e3o em mais de 10x, elevando muito a performance do seu WebGIS.<\/p>\n<p>Apesar da escolha pelo GWC, gostaria de mencionar outra op\u00e7\u00e3o open source que voc\u00ea pode utilizar, que \u00e9 o <a href=\"http:\/\/tilecache.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">TileCache<\/a>. <\/p>\n<p><strong>5. Web Client<\/strong><\/p>\n<p>Chegamos a parte mais interessante do desenvolvimento, o cliente web. Aqui temos v\u00e1rias ferramentas que podem ser utilizadas para o desenvolvimento da aplica\u00e7\u00e3o. Vou sugerir algumas front-end e back-end. <\/p>\n<p>No back-end eu optei por ferramentas da linguagem Java, que \u00e9 a linguagem que mais tenho familiaridade, mas saiba que existem op\u00e7\u00f5es tamb\u00e9m em Python, PHP, Ruby, etc.<\/p>\n<p>5.1 Backend<\/p>\n<p>Em uma arquitetura Java, a sugest\u00e3o \u00e9 que voc\u00ea opte pelo <a href=\"http:\/\/geotools.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Geotools<\/a>, uma biblioteca que fornece uma abund\u00e2ncia de funcionalidades GIS, podendo utilizar em conjunto a biblioteca <a href=\"http:\/\/www.vividsolutions.com\/jts\/\" target=\"_blank\" rel=\"noopener noreferrer\">JTS<\/a>, que fornece uma implementa\u00e7\u00e3o completa, consistente e robustos algoritmos espaciais em 2D.<\/p>\n<p>Com essa dupla, voc\u00ea vai conseguir desenvolver tudo que necessita no back-end da sua aplica\u00e7\u00e3o.<\/p>\n<p>5.2 Front-end<\/p>\n<p>Para a interface com o usu\u00e1rio temos algumas alternativas, entre elas o <a href=\"http:\/\/www.openlayers.org\" target=\"_blank\" rel=\"noopener noreferrer\">OpenLayers<\/a> e o <a href=\"http:\/\/leafletjs.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Leaflet<\/a>. Qualquer uma das duas que voc\u00ea escolher ser\u00e1 uma boa escolha, mas a minha sugest\u00e3o \u00e9 o OpenLayers, que a pouco tempo foi totalmente reescrito e est\u00e1 totalmente renovado.<\/p>\n<p><center><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/02\/openlayers.png\" alt=\"openlayers\" width=\"807\" height=\"511\" class=\"aligncenter size-full wp-image-4756\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/02\/openlayers.png 807w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/02\/openlayers-300x190.png 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/02\/openlayers-768x486.png 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/02\/openlayers-624x395.png 624w\" sizes=\"auto, (max-width: 807px) 100vw, 807px\" \/><br \/>\n<em>Figura 4. WebGIS desenvolvido com OpenLayers<\/em><\/center><\/p>\n<p><strong>6. Desktop Client<\/strong><\/p>\n<p>As op\u00e7\u00f5es de GIS para desktop s\u00e3o in\u00fameras, tanto as mais conhecidas (propriet\u00e1rias), como as open source. Posso citar algumas como o <a href=\"http:\/\/qgis.org\" target=\"_blank\" rel=\"noopener noreferrer\">QGIS<\/a>, <a href=\"http:\/\/www.openjump.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">OpenJump<\/a>, <a href=\"http:\/\/www.gvsig.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">gvSIG<\/a>, <a href=\"http:\/\/udig.refractions.net\/\" target=\"_blank\" rel=\"noopener noreferrer\">uDig<\/a>, <a href=\"http:\/\/www.dpi.inpe.br\/spring\/\" target=\"_blank\" rel=\"noopener noreferrer\">SPRING<\/a> em que voc\u00ea pode optar, mas a minha sugest\u00e3o \u00e9 o QGIS n\u00e3o por ser hoje a op\u00e7\u00e3o mais popular entre os Desktop GIS, mas sim por possuir plug-ins para praticamente todas as funcionalidades que voc\u00ea necessite.<\/p>\n<p><center><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/02\/QGIS-Screenshot-1024x616.png\" alt=\"QGIS Screenshot\" width=\"625\" height=\"376\" class=\"aligncenter size-large wp-image-4757\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/02\/QGIS-Screenshot-1024x616.png 1024w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/02\/QGIS-Screenshot-300x180.png 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/02\/QGIS-Screenshot-768x462.png 768w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/02\/QGIS-Screenshot-624x375.png 624w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2016\/02\/QGIS-Screenshot.png 1600w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><br \/>\n<em>Figura 5. Tela do programa QGIS<\/em><\/center><\/p>\n<p>Para concluir gostaria apenas de refor\u00e7ar que independente da linguagem e da arquitetura que voc\u00ea escolha, o mais importante \u00e9 a utiliza\u00e7\u00e3o dos padr\u00f5es de interoperabilidade da OGC, que permitir\u00e1 independ\u00eancia entre as partes, e tamb\u00e9m evitar\u00e1 dor de cabe\u00e7as futuras, principalmente se voc\u00ea precisar trocar alguma das partes da arquitetura.<\/p>\n<p>Quem tiver sugest\u00f5es de arquitetura, ou de ferramentas open source que n\u00e3o foram mencionadas neste artigo, fique \u00e0 vontade em contribuir atrav\u00e9s dos coment\u00e1rios.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>No \u00faltimo post, iniciamos a defini\u00e7\u00e3o da arquitetura falando sobre banco de dados espacial e apllication server, hoje concluiremos o artigo falando sobre gerenciador de cache e clientes web e desktop. 4. Cache Um mapa pode ter muitas camadas, e&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2016\/03\/02\/quais-ferramentas-usar-para-desenvolver-um-webgis-parte-2\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":4755,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[223],"class_list":["post-4754","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis","tag-gis"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/4754","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=4754"}],"version-history":[{"count":7,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/4754\/revisions"}],"predecessor-version":[{"id":8436,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/4754\/revisions\/8436"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/4755"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=4754"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=4754"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=4754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}