Bom dia a todos,
Disponibilizo aqui a biblioteca que eu desenvolvi utilizando os recursos do Geotools para leitura de shapefiles com a vantagem de reduzir a quantidade de código da implementação da leitura e também a vantagem de que a biblioteca popula automaticamente a sua classe através de definições em um HashMap.
Sobre a biblioteca
A biblioteca utiliza os recursos da biblioteca Geotools para extrair as informações do shapefile e também uma implementação própria para trabalhar com reflexão.
Para quem trabalha com o Spring framework, tanto no JSF ou no JSP (VRaptor, etc.) é possível injetar através o IoC do container Spring.
Utilização
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
import java.io.File; import java.io.IOException; import java.io.Serializable; import java.util.HashMap; import java.util.List; import java.util.Map; import org.hidroinformatica.shapes.ShapeFileReader; import org.hidroinformatica.shapes.exceptions.EmptyDefinitionMapException; import org.hidroinformatica.testes.beans.Estado; //Class structure.... String pathname = "./lib/ESTADOS.shp"; try{ Map<String, String> definitions = new HashMap<String, String>(0); definitions.put("NAME", "nome"); definitions.put("CODE", "sigla"); definitions.put("status", "status"); definitions.put("populacao", "populacao"); definitions.put("the_geom", "poligono"); File shape = new File(pathname); ShapeFileReader reader = new ShapeFileReader(Estado.class, shape, definitions); List<Serializable> estados = reader.getRecords(); if(estados != null && !estados.isEmpty()){ for (Serializable serializable : estados){ Estado e = (Estado) serializable; System.out.println("Sigla: " + e.getSigla()); System.out.println("Nome: " + e.getNome()); System.out.println("População: " + e.getPopulacao()); System.out.println("PIB: " + e.getPib()); } } } catch (IOException e) { e.printStackTrace(); } catch (NullPointerException e) { e.printStackTrace(); } catch (EmptyDefinitionMapException e) { e.printStackTrace(); } |
Download
Última versão – http://code.google.com/p/shapefilereader/downloads/list
Referências
Geotools – http://docs.geotools.org/stable/userguide/quickstart.html