utilizando geotools para manipulação de dados geográficos
DESCRIPTION
A partir da necessidade de controle de dados georreferenciados construir-se-á um aplicativo para atender as funcionalidades de um sistema SIG para Java desktop, ou seja, um aplicativo para leitura e manipulação de dados geográficos. Será possível o acesso a shapefiles ou a bancos de dados, pois o aplicativo oferece essas duas funcionalidades. O aplicativo desenvolvido disponibiliza um conjunto de ferramentas que auxilia na manipulação dos mapas. De acordo com os objetivos do atual projeto, conclui-se que o aplicativo será de grande utilidade na manipulação de dados geográficos.TRANSCRIPT
![Page 1: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/1.jpg)
Uma aplicação utilizando Uma aplicação utilizando Geotools para manipulação Geotools para manipulação
de dados geográficosde dados geográficos
Gustavo Matos de Mello
Paulo Collares Moreira Neto
![Page 2: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/2.jpg)
Sumário
O que é o Geotools? Shapefiles PostGIS JAI Exemplo de implementação
![Page 3: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/3.jpg)
Objetivos
Desenvolver em software desktop GIS Aplicar os conhecimentos adquiridos em programação Mesclar esses conhecimentos em um assunto atual
![Page 4: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/4.jpg)
O que é o Geotools?
Biblioteca Java Manipulação de dados para um SIG James Macgill Código livre Padrões internacionais (OGC)
![Page 5: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/5.jpg)
Shapefiles
Formato de armazenamento digital para dados georreferenciados
ESRI em 1998 Pontos, linhas, polígonos abertos e polígonos fechados
![Page 6: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/6.jpg)
Shapefiles
![Page 7: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/7.jpg)
PostGIS
Suporte para processamento e armazenamento de dados geográficos ao banco PostgreSQL
![Page 8: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/8.jpg)
Geração de scripts SQL para cargade dados presentes nos Shapefiles
C:\PostgresPlus\8.3\bin\shp2pgsql -s [SRID] [caminho do shapefile] [nome da tabela a ser criada] > [nome do arquivo SQL]
![Page 9: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/9.jpg)
Geração de scripts SQL para cargade dados presentes nos Shapefiles
![Page 10: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/10.jpg)
JAI (Java Advanced Imaging)
Ferramenta para processamento de imagens
![Page 11: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/11.jpg)
Exemplo de implementação
![Page 12: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/12.jpg)
Exemplo de implementaçãoJMapFrame
JMapFrame Janela Swing para exibir um mapa Disponível a partir do Geotools 2.6
JMapFrame mapFrame = new JMapFrame(MapContext map);mapFrame.setTitle(“Olá Mundo”);
mapFrame.enableTool(JMapFrame.Tool.ZOOM, JMapFrame.Tool.PAN,JMapFrame.Tool.RESET);
mapFrame.enableLayerTable(true);mapFrame.enableStatusBar(true);
![Page 13: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/13.jpg)
MapContex Interface responsável por armazenar informações sobre a
exibição de um mapa Baseado nas especificações do OGC (Open Geospatial Consortium)
Exemplo de implementaçãoMapContex
MapContext map = new DefaultMapContext();
map.addLayer(FeatureSource featureSource, Style style);ou
map.addLayer(FeatureSource featureSource, null);
![Page 14: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/14.jpg)
Exemplo de implementaçãoFeatureSource
FeatureSource Referencia um shapefile ou uma tabela do banco de dados Fontes distintas são manipuladas de forma idêntica
FeatureSource featureSource = null;
![Page 15: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/15.jpg)
Importando de um shapefile
Exemplo de implementaçãoImportação de dados
File url= new File(“C:\shapefiles\br_uf\BR_UF.shp”);FileDataStore store=FileDataStoreFinder.getDataStore(url);
featureSource = store.getFeatureSource();map.addLayer(featureSource, null);
![Page 16: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/16.jpg)
Importando de um banco de dados
Exemplo de implementaçãoImportação de dados
Map params = new HashMap();
params.put("dbtype", "PostGIS");params.put("host","localhost" );params.put("port", new Integer(5432));params.put("database", "mapas");params.put("user", "root");params.put("passwd", "12345678");
DataStore store = DataStoreFinder.getDataStore(params);featureSource = store.getFeatureSource(“mundo”);
map.addLayer(featureSource, null);
![Page 17: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/17.jpg)
Importando de um banco de dados
Exemplo de implementaçãoImportação de dados
![Page 18: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/18.jpg)
Styles Indicam como um dado geográfico deve ser mostrado Cores para as linhas, fundos e textos do mapa...
Consultas do CQL Filtra os dados para alterar os estilos Consultas simples
Exemplo de implementaçãoEstilos
CQL.toFilter("SIGLA Like 'SE'");CQL.toFilter("SIGLA Like 'NE'");CQL.toFilter("SIGLA Like 'CO'");CQL.toFilter("SIGLA Like 'NO'");CQL.toFilter("SIGLA Like 'SU'");
![Page 19: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/19.jpg)
Consulta do CQL
Exemplo de implementaçãoEstilos
StyleBuilder sb = new StyleBuilder();Style style = sb.createStyle();
PolygonSymbolizer symbolizer = sb.createPolygonSymbolizer(Color.LIGHT_GREY, Color.BLACK, 1);
Rule rule = sb.createRule(new Symbolizer[]{symbolizer});
Filter filtro = CQL.toFilter(("SIGLA Like 'SE'");rule.setFilter(filtro);
FeatureTypeStyle fts = sb.createFeatureTypeStyle(null, rule);style.addFeatureTypeStyle(fts);
![Page 20: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/20.jpg)
Conclusão
Aplicativo desenvolvido atinge os objetivos para o qual foi projetado
Os conhecimentos adquiridos serão de grande valor em nossa carreira profissional
![Page 21: Utilizando GeoTools para Manipulação de Dados Geográficos](https://reader033.vdocuments.pub/reader033/viewer/2022061223/54c497f44a7959c4158b45d3/html5/thumbnails/21.jpg)
Projetos futuros
Implantação de funcionalidades mais sofisticadas na área de geoprocessamento Cadastramento de informações Manter dados de uma determinada localidade Adicionar camadas manualmente
Pontos, linhas, áreas, textos e imagens
Cruzamentos de dados para estatísticas futuras Mapas on-line, como o Google Maps Versão para Web