Utilizando GeoTools para Manipulação de Dados Geográficos

21
Uma aplicação utilizando Uma aplicação utilizando Geotools para manipulação Geotools para manipulação de dados geográficos de dados geográficos Gustavo Matos de Mello Paulo Collares Moreira Neto

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 of Utilizando GeoTools para Manipulação de Dados Geográficos

Page 1: Utilizando GeoTools para Manipulação de Dados Geográficos

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

Sumário

O que é o Geotools? Shapefiles PostGIS JAI Exemplo de implementação

Page 3: Utilizando GeoTools para Manipulação de Dados Geográficos

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

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

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

Shapefiles

Page 7: Utilizando GeoTools para Manipulação de Dados Geográficos

PostGIS

Suporte para processamento e armazenamento de dados geográficos ao banco PostgreSQL

Page 8: Utilizando GeoTools para Manipulação de Dados Geográficos

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

Geração de scripts SQL para cargade dados presentes nos Shapefiles

Page 10: Utilizando GeoTools para Manipulação de Dados Geográficos

JAI (Java Advanced Imaging)

Ferramenta para processamento de imagens

Page 11: Utilizando GeoTools para Manipulação de Dados Geográficos

Exemplo de implementação

Page 12: Utilizando GeoTools para Manipulação de Dados Geográficos

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

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

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

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

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

Importando de um banco de dados

Exemplo de implementaçãoImportação de dados

Page 18: Utilizando GeoTools para Manipulação de Dados Geográficos

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

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

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

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