conhecendo o geotools

Upload: elton-silva

Post on 10-Apr-2018

237 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Conhecendo o GeoTools

    1/12

    Conhecendo o GeoToolsPublicado por Tutoriais Admin em 19/08/2010 - 14.803 visualizaes

    comentrios: 1Na modernidade, a evoluo dos computadores convencionais, um fato, a cada dia que passamos a ter maispoder de processamento e armazenamento de dados por um preo cada vez mais acessvel, com isso tambmtemos maiores exigncias no que se dizem respeito a desenvolvimento de software, algumas delas so, maioraproveitamento dos recursos oferecidos pelo hardware e seja interativo ao usurio final (fcil entendimento).Com isso podemos definir um novo caminho para o desenvolvimento de softwares GIS (G eographic

    Information System) ou, como chamamos no Brasil, SIG ( Sistema de Informao Geogrfica ). Segundo( PAREDES, 1994) representa a forma que os dados geoespaciais so mostrados para o usurio em um SIG.Tendo assim uma representao de um mundo real atravs de uma base de dados e ferramentas. Vemos nestafigura 2 as formas de como podem ser demonstrados os componentes bsicos de um SIG, nesse exemplo vemosseparadamente o usurio que por intermdio de ferramentas de um software SIG realiza a abstrao de ummundo real com a ajuda de um banco de dados apropriado.

    Figura 1 . Ilustrao dos principais componentes de um SIG.Na figura 3 (PAREDES, 1994) explica um exemplo do que significa mundo real. Consiste de todos os objetosgeogrficos da superfcie ou subsuperficie da terra e do meio cuja representao pode ser feita numrica ougraficamente, armazenada em formatos analgicos ou digitais de forma agregada (mapas) ou desagregada

    (layers). No caso desta demonstrao podemos ter ruas, parques, reas industriais e rios na superfcie, e tambmat atributos mais profundos como lenis freticos, mares, argila, areia, rochas, rede de gua e esgoto eresduos, com estas representaes podemos ter em mos uma grande cadeia de informaes georeferenciadas

    para visualizao, perquisa e edio de informaes em um sofware SIG.

  • 8/8/2019 Conhecendo o GeoTools

    2/12

    Figura 2. Representa os objetos de um mundo real.

    Com isso, temos uma forma diferente de se demonstrar informaes, diferente dos sistemas comuns, onde vocs trata dados de formas convencionais, isto em tabelas comuns, com consultas SQL padro e campos string,inteiro, etc. preciso um conhecimento a mais sobre geografia e cartografia, no que se diz respeito transformao deatributos em referencias reais, com o geoprocessamento.

    . Assim, reas tais como Geologia, Hidrologia, Agricultura, Urbanismo e as Engenharias

    Civis, de Transportes, de Minas, esto ligadas atuao do homem sobre o meio fsicoem atividades de, por exemplo: Projeto: de vias (rodovias, ferrovias, canais, etc), deirrigao, de loteamentos, drenagem, lavra, etc; Operao: de redes de utilidades(gua, esgoto, telefone, gs), redes de transporte, etc; Planejamento: urbano,regional, agrcola e de transporte; Anlise: espacial ambiental, geolgica, urbana,regional e de transporte; Gerenciamento: dos processas agrcolas e de variadosprocessos de distribuio e alocao Monitoramento: de processos ambientais,urbanos e regionais; Locao: de vias, redes de utilidades, equipamentos, plantio, etc;

    O GeoprocessamentoSegundo (PAREDES, 1994) as caractersticas bsicas de um GIS ou, como chamamosno Brasil, Sistema de Informao Geogrfica (SIG) a faculdade de armazenar,recuperar e analisar mapas num ambiente computacional. Um mapa umarepresentao grfica dos fenmenos geogrficos. Num ambiente computacional, anoo do mapa deve ser estendida para incluir diferentes tipos de dados geogrficoscomo imagens de satlite e mdulo numrico de terreno.

  • 8/8/2019 Conhecendo o GeoTools

    3/12

    Anatomia interna de um SIG. Numa viso abrangente, pode-se indicar que um SIG tem os seguintescomponentes:Interface com usurio.Entrada e integrao de dados.Funes de processamento grfico e de imagensBanco de dados geogrfico.

    O uso de SGBD ou Banco de dados geogrfico permite ainda a realizar, com maiorfacilidade, a interligao de banco de dados j existente com o sistema degeoprocessamento. Como exemplo de SGBD veremos o PostgreSQL que segundo(Uchoa) integrado com o PostGIS que foi desenvolvido pela empresa canadenseRefractions e licenciado livremente para a comunidade mundial de SL. Este mdulotem o objetivo de permitir o armazenamento e tratamento de dados geogrficos noSGBD PostgreSQL, seguindo o padro OpenGIS Simple FeaturesSpecification (SFS? OGC) . Tambm na categoria de software livre, o PostgreSQL um SGBD objeto-relacional com recursos comparveis ao Oracle , porm aindapouco conhecido pelos profissionais da rea de GEO. Muitos profissionaisde Tecnologia da Informao (TI) que trabalham com Linux, conhecem bem opotencial do PostgreSQL e tem dado preferncia ao mesmo em substituio dasplataformas proprietrias.

    Instalando o PostgreSQL abilitando o PostGISO download pode ser feito no link, http://www.postgresql.org/Somente necessrio habilitar os recursos do PostGIS ao instalar o banco de dados PostgreSql como segue noexemplo.

  • 8/8/2019 Conhecendo o GeoTools

    4/12

    Figura 3. selecionando a lngua.Em seguida habilitar o PostGis para trabalhar com os recursos espaciais do banco de dados PostGreSQL

    Figura 4. Habilitando os recursos PostGIS do Banco de dados PostGreSQL.Importando um arquivo espacial shapafile para dentro do banco PostgreSql.So 3 arquivos obrigatrios shapefile o .shp (coordenadas espaciais), .dbf (tabela para armazenar os atributos) e.shx (que contem as propriedades do shapefile).Copiando estes arquivos na pasta C:\Arquivos de programas\PostgreSQL\8.1\binA importao ser feita da seguinte forma. No Windows execute.

    Iniciar> Programas> PostgreSQL > CommandDepois digite a linha de comando abaixo com o nome do seushapefile e banco de destino.#shp2pgsqlnomedoshapefile.shpnomedatabelanomedobanco> arquivo.sql

    Apsesse comandoser geradoumarquivo.sqlcontendoastabelasnecessriase osdados(objetos).Parainserirosdadosnobancobastadigitaroseguinte comando:

    #psql-dnomedobanco -farquivo.sqlAbrindo a tabela criada no PgAdminIII, com os atributos carregados teremos uma coluna THE_GEOM que arelao espacial da tabela.

  • 8/8/2019 Conhecendo o GeoTools

    5/12

    Figura 5. Visualizando atributos criados no banco com o PgADminIII.

    Entretanto necessrio um software de GIS para abrir estes atributos com georeferenciamento entoutilizaremos o UDIG para abrir esta mesma tabela do Postgresql.

    Instalando Udig.Segue as instrues no link http://udig.refractions.net/confluence/display/UDIG/HomeAgora podemos importar uma tabela espacial do PostGreSQL da seguinte forma, ao executar o UDIG emIniciar > Porgramas > UDIG, clique no menu File > New > New Layer.Aparecer a seguinte caixa de dialogo para voc selecionar o tipo de layer que voc icriar, no caso desteexemplo criaremos um Lyer cujos dados estaro armazenados no PostGreSQL entretanto criaremos um Layerdo tipo PostGIS.

  • 8/8/2019 Conhecendo o GeoTools

    6/12

    Figura 6. Caixa de dialogo para criar um layer do tipo PostGIS no UDIG.

    Passando os parmetros necessrios as banco de dados postgresql teremos uma conexo com seus atributosespaciais e o software se encarregar da renderizao dos layers de acordo com as tabelas.

  • 8/8/2019 Conhecendo o GeoTools

    7/12

    Figura 7. Definindo as diretivas de conexo com o banco PostGreSQL.

    Abrindo esta mesma tabela com o aplicativo UDIG teremos outro tipo de visualizao.

  • 8/8/2019 Conhecendo o GeoTools

    8/12

    Figura 8. Visualizao da base georeferenciada armazenada dentro do banco PostGreSQL com um software SIG especfico UDIG.Conhecendo e utilizando o JAI.Downloadhttp://java.sun.com/products/java-media/jai/downloads/download-1_1_4.htmlExtraindo os arquivos.

    jai-1_1_4-pre-dr-b03-lib-windows-i586-12_Oct_2006.zipTem-se as seguintes bibliotecas e APIS java:Colocando os arquivos .dll do JAI dentro da pasta system32 do windows.

    mlib_jai.dllmlib_jai_mmx.dllmlib_jai_utilAdicionando arquivos .jar do JAI dentro da aplicao.

    jai_codec.jarjai_core.jarmlibwrapper_jai.jarAdicionando as bibliotecas do GEOTools2.2-RC0 dentro do projeto.gt2-main.jargt2-postgis.jarJTS-1.4.jargeoapi-

    1.1.0alpha.jarvecmath-1.2.1.jarrecente postgresqljdbcgeoapi-2.0.jargeoapi-legacy-0.2.jarpostgis-driver.jarunits.jarmigrate.jaropengis-legacy.jar6.6?Criando uma classe para demonstrao de como abrir um projeto SIG com o Netbeans5.0.

  • 8/8/2019 Conhecendo o GeoTools

    9/12

    Figura 9. Criando uma classe java para visualizao de uma base completa armazenada dentro do banco PostGreSQL com estilos de core tamanhos personalizados.

    Nesse exemplo o nome da classe ser PostGIS.Copiaremos o seguinte cdigo para dentro dela para abrirmos as bases espaciais criadas no banco de dadosPostgreSql com os estilos apropriados.package src; import java.awt.Color;import java.awt.Font;import java .io.ByteArrayOutputStream;import java.io.IOException;import

    java.util.HashMap;import java.util.Map;import javax.swing.JApplet;import javax.swing.JFrame;importjavax.swing.WindowConstants;import org.geotools.data.DataStore;import org.geotools.data.DataStoreFinder;importorg.geotools.data.FeatureSource;import org.geotools.gui.swing.*;import org.geotools.gui.swing.StyledMapPane;importorg.geotools.map.DefaultMapContext;import org.geotools.map.MapContext;import org.geotools.renderer.j2d.RenderedMapScale;importorg.geotools.styling.Graphic;import org.geotools.styling.LineSymbolizer;import org.geotools.styling.Mark;importorg.geotools.styling.PointSymbolizer;import org.geotools.styling.PolygonSymbolizer;import org.geotools.styling.Rule;importorg.geotools.styling.Style;import org.geotools.styling.StyleBuilder;import org.geotools.styling.Symbolizer;importorg.geotools.styling.TextSymbolizer;/*** Simples visualiador de mapas armazenados no banco postgresql.* @author Jairo de Almeida */public class SpearfishPostGIS{ public static void main(String[] args) throws Exception { //create thePostGISDataStore Map params = new HashMap(); params.put("dbtype", "postgis"); params.put("host", "localhost"); params.put("port",new Integer(5432));params.put("database", "dadosbrasil");params.put("user", "postgres");params.put("passwd", "postgres");DataStore pgDatastore = DataStoreFinder.getDataStore(params);// preparando layer de rodoviasFeatureSource rodovias = pgDatastore.getFeatureSource("br_rodovias");// preparando layer de estados FeatureSource estados =pgDatastore.getFeatureSource("br_uf");// preparando layer de regioes FeatureSource regioes =pgDatastore.getFeatureSource("br_regioes");// preparando layer de contornoFeatureSource contorno = pgDatastore.getFeatureSource("br_contorno");// Preparando estilos StyleBuilder sb = new StyleBuilder();// estilo de formatao para layers poliginais LineSymbolizer lsStream = sb.createLineSymbolizer(Color.BLUE, 3); Style streamsStyle = sb.createStyle(lsStream);// estilo de formatao para o layer de rodoviasLineSymbolizer ls1 = sb.createLineSymbolizer(Color.YELLOW, 1); LineSymbolizer ls2 = sb.createLineSymbolizer(Color.BLACK, 5); StyleroadsStyle = sb.createStyle();roadsStyle.addFeatureTypeStyle(sb.createFeatureTypeStyle(null,sb.createRule(ls2))); roadsStyle.addFeatureTypeStyle(sb.createFeatureTypeStyle(null, sb.createRule(ls1))); // preparando layers ponto emultponto Mark redCircle = sb.createMark(StyleBuilder.MARK_CIRCLE, Color.RED, Color.BLACK, 0); Graphic grBugs =

  • 8/8/2019 Conhecendo o GeoTools

    10/12

    sb.createGraphic(null, redCircle, null); PointSymbolizer psBugs = sb.createPointSymbolizer(grBugs); Style bugsStyle =sb.createStyle(psBugs);// estilo arqueologico Mark yellowTri = sb.createMark(StyleBuilder.MARK_TRIANGLE, Color.YELLOW,Color.BLACK, 0);Graphic grArch = sb.createGraphic(null, yellowTri, null, 1, 15, 0); PointSymbolizer psArch =sb.createPointSymbolizer(grArch); org.geotools.styling.Font font = sb.createFont(new Font("Arial", Font.PLAIN, 12)); TextSymbolizertsArch = sb.createTextSymbolizer(Color.BLACK, font, "rodovia1"); tsArch.setHalo(sb.createHalo(Color.WHITE, 1, 2)); Rule archRule =sb.createRule(new Symbolizer[] {psArch, tsArch}); Style archStyle =sb.createStyle(); archStyle.addFeatureTypeStyle(sb.createFeatureTypeStyle(null, archRule)); // estilo da rea

    interditado PolygonSymbolizer restrictedSymb = sb.createPolygonSymbolizer(Color.LIGHT_GRAY, Color.BLACK,0); restrictedSymb.getFill().setOpacity(sb.literalExpression(0.7)); Style restrictedStyle = sb.createStyle(restrictedSymb);

    // Construindo o mapaMapContext map = new DefaultMapContext();map.addLayer(estados, streamsStyle); //streamsStyle map.addLayer(contorno, restrictedStyle); //restrictedStyle map.addLayer(regioes,restrictedStyle);//bugsStyle map.addLayer(rodovias, roadsStyle); //roadsStyle StyledMapPane mapPane = newStyledMapPane(); mapPane.setMapContext(map); mapPane.getRenderer().addLayer(new RenderedMapScale());JFrame frame = new JFrame();frame.setTitle("Prestao de servios nas rodovias brasileiras");frame.setContentPane(mapPane.createScrollPane()); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);frame.setSize(640, 480);frame.show();

    }}

    Em seguida executaremos a classe para visualizao das bases espaciais em umajanela, com seus respectivos estilos de cor, tamanho, etc.Clicando com o boto direitoem cima da classe e selecionando Run File teremos esta aparncia como est nafigura abaixo.Nota: este exemplo no a aplicao em si mais sim um exemplo decomo abrir as bases georeferenciadas em uma forma limpa e compreensvel.

  • 8/8/2019 Conhecendo o GeoTools

    11/12

    Figura 10. Executando um exemplo simples de aplicao Gis implementado em java utilizando a API Geotools2.2RC0 e arquivosshapefiles baixados gratuitamente da internet.

    Concluso.No desenvolvimento de SIG para a web, observando a grande necessidade da

    rapidez, capacidade de armazenamento e interatividade com o usurio final, esta

    proposta foi feita como uma forma ideal para quem quer desenvolver um site SIGdentro dos padres OpenGis utilizando ferramentas gratuitas, desenvolvendo assimcom estas ferramentas, softwares com preos mais acessveis para o mercado,confiana em um padro slido de arquitetura, viabilidade sem compromisso de custocom ferramentas proprietrias e a instabilidade de ferramentas que so desenvolvidaspor consrcios de profissionais da rea. Tambm obtendo resultados mais satisfatrioscom estas ferramentas por serem desenvolvidas em Java ganhando uma maiorportabilidade no que se diz respeito a Sistemas Operacionais (SO) devido a sua JavaVirtual Machine (JVM) e confiabilidade.Grupo de estudos GeoJava (Brasil). bom tambm comentar a criao do grupo de estudos GEOJAVA,http://br.groups.yahoo.com/group/geojava, a necessidade da criao desse frumdeu-se pelo fato das tecnologias para geoprocessamento especificadas no projetoserem novas no mercado e seu material em portugus ser escasso, ento foi criadoeste grupo de estudos. O grupo GEOJAVA foi criado no yahoo grupos e tem nopresente momento 50 usurios profissionais na rea de geoprocessamento. Referncias Bibliogrficas.Nacionales, Pericles S. MAPSERVER 4.6 Tutorial. Updated 2005,2006. http://hypnos.cbs.umn.edu/tutorial/ Armstrong, Eric Ball, Jennifer Bodoff,

    Stephanie Carson , Debbie Bode Evans, Ian Green, DaleHaase, Kim eJendrock, EricJ2EE? 1.4 Tutorial. December 5, 2005. http: / / java.sun.com / j2ee / 1.4 / docs /tutorial / doc / Kurniawan, Budi Java para a web com Servlets, JSP e EJB. Rio deJaneiro: Editora Cincia Moderna Ltda., 2002. Eastman, J. Ronald IDRISI32 Relese 2 -Guide to GIS and image processing. Volume 1, 2001. Uchoa, Helton Nogueira eFerreira, Paulo Roberto Geoprocessamento com Software Livre. Verso 1.0, 26 / 10 /2004. www.geolivre.org.brFerreira, Antonio Miguel Caetano, Dicionrio do " INTERNETS ", Maio 1995 / NotasTcnicas - CBPF.Patzer, Andrew JSP Examples and best practices, 2002. Goodman, Danny JavaScriptbible, Gold Edition. Uchoa, Helton Nogueira Coutinho, Renata Juliana CristalFerreira,Paulo Roberto Filho, Luiz Carlos Teixeira Coelho Brito, Jorge Lus Nunes e Silva Anlisedo mdulo PostGIS para armazenamento e tratamento de dados geogrficos com altaperformance e baixo custo. www.opengeo.com.brParedes, Evaristo Atencio, Sistema de informao geogrfica , 1994.

  • 8/8/2019 Conhecendo o GeoTools

    12/12

    Site Oficial do PostgreSQL, http://www.postgresql.orgSite Oficial do PostGIS, http://www.postgis.orgSite Oficial do UDig, http://udig.refractions.net/confluence/display/UDIG/HomeSite Oficial do GeoTools, http://geotools.codehaus.org/Site Oficial do GeoServer, http://docs.codehaus.org/display/GEOS/HomeSite Oficial do PostgreSQL, http://www.postgresql.org/

    Site Oficial do pgAdminIII, http://www.pgadmin.org/