utilizando geotools para manipulação de dados geográficos - apresentação
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
Utilizando GeoTools para Manipulação de Dados Geográficos
Gustavo Matos de Mello
Paulo Collares Moreira Neto
Sumário
O que é o Geotools?
Shapefiles
PostGIS
JAI
Implementação
Objetivos
Desenvolver um software desktop GIS
Aplicar os conhecimentos adquiridos em programação
Mesclar esses conhecimentos em um assunto atual
O que é o Geotools?
Biblioteca Java
James Macgill
Código livre
Padrões internacionais (OGC)
Shapefiles
Formato de armazenamento digital
ESRI em 1998
Padrões internacionais (OGC)
Pontos, linhas, polígonos abertos e polígonos fechados
Shapefiles
PostGIS
Extensão do banco de dados PostgreSQL
Processamento e armazenamento de dados geográficos
Geração de scripts SQL para carga de 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]
Geração de scripts SQL para carga de dados presentes nos Shapefiles
JAI (Java Advanced Imaging)
Ferramenta para processamento de imagens
Exemplo de implementação
Exemplo de implementação JMapFrame
JMapFrame
Janela Swing para exibir um mapa e suas ferramentas
Disponível a partir do Geotools 2.6
Exemplo de implementação JMapFrame
JMapFrame mapFrame = new JMapFrame();
mapFrame.setTitle(“Olá Mundo”);
mapFrame.enableTool(JMapFrame.Tool.ZOOM,
JMapFrame.Tool.PAN,JMapFrame.Tool.RESET);
mapFrame.enableLayerTable(true);
mapFrame.enableStatusBar(true);
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ção MapContex
MapContext map = new DefaultMapContext();
map.addLayer(FeatureSource featureSource, Style style);
Exemplo de implementação FeatureSource
FeatureSource
Referencia um shapefile ou uma tabela do banco de dados
Fontes distintas são manipuladas de forma idêntica
Importando de um shapefile
Exemplo de implementação Importaçã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);
Importando de um banco de dados
Exemplo de implementação Importação de dados
Map params = new HashMap();
...
DataStore store = DataStoreFinder.getDataStore(params);
featureSource = store.getFeatureSource(“mundo”);
map.addLayer(featureSource, null);
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ção Estilos
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' ");
Exemplo de implementação Estilos
Conclusão
Aplicativo desenvolvido atinge os objetivos para o qual
foi projetado
Os conhecimentos adquiridos serão de grande valor
em nossa carreira profissional
Projetos futuros
Implantação de funcionalidades mais sofisticadas na
área de geoprocessamento
Cadastramento de informações relacionadas ao mapa
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
Dúvidas?
Perguntas e observações