Upload
pcollares
View
516
Download
3
Embed Size (px)
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.
Citation preview
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
Sumário
O que é o Geotools? Shapefiles PostGIS JAI Exemplo de implementação
Objetivos
Desenvolver em software desktop GIS Aplicar os conhecimentos adquiridos em programação Mesclar esses conhecimentos em um assunto atual
O que é o Geotools?
Biblioteca Java Manipulação de dados para um SIG James Macgill Código livre Padrões internacionais (OGC)
Shapefiles
Formato de armazenamento digital para dados georreferenciados
ESRI em 1998 Pontos, linhas, polígonos abertos e polígonos fechados
Shapefiles
PostGIS
Suporte para processamento e armazenamento de dados geográficos ao banco PostgreSQL
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]
Geração de scripts SQL para cargade dados presentes nos Shapefiles
JAI (Java Advanced Imaging)
Ferramenta para processamento de imagens
Exemplo de implementação
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);
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);
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;
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);
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);
Importando de um banco de dados
Exemplo de implementaçãoImportação de dados
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'");
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);
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 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