¿Alguien sabe de una biblioteca en Java que pueda analizar los Shapefiles de ESRI?
geotools (5)
Estoy interesado en escribir un programa de visualización para los datos de la carretera en los archivos de formas de Tiger / Line 2009 . Me gustaría dibujar los datos de línea para mostrar todas las carreteras de mi condado.
El archivo de forma ESRI o simplemente un archivo de forma es un popular formato de datos vectoriales geoespaciales para software de sistemas de información geográfica. Está desarrollado y regulado por ESRI como (en su mayoría) especificación abierta para la interoperabilidad de datos entre ESRI y otros productos de software. 1 Un "shapefile" se refiere comúnmente a una colección de archivos con ".shp", ".shx", ".dbf", y otras extensiones en un nombre de prefijo común (por ejemplo, "lakes. *"). El shapefile real se relaciona específicamente con archivos con la extensión ".shp", sin embargo, este archivo solo está incompleto para su distribución, ya que los otros archivos de soporte son necesarios.
¿Alguien sabe de bibliotecas existentes para analizar y leer los datos de línea de Shapefiles ?
Hay GeoTools , o más exactamente esta clase ShapefileDataStore .
Podría intentar usar la biblioteca Java ESRI Shape File Reader . Es pequeño, fácil de instalar y tiene una API muy simple. El único inconveniente es que no lee otros archivos obligatorios y opcionales (.shx, .dbf, etc.) que normalmente se envían con un archivo de forma.
Puede utilizar directamente las herramientas de GUI GIS para que no sea necesario cambiar el código fuente de GeoTools.
Uso QGIS, que realiza todas las operaciones (incluso más) que GeoTools.
Quantum GIS : un sistema de información geográfica de código abierto para editar, fusionar y simplificar mapas de shapefile. Vea también: crear mapas con múltiples capas usando Quantum GIS.
GeoTools lo hará. Hay un montón de frascos y no necesitas la mayoría de ellos. Sin embargo, leer el shapefile es solo unas pocas líneas.
File file = new File("mayshapefile.shp");
try {
Map<String, String> connect = new HashMap();
connect.put("url", file.toURI().toString());
DataStore dataStore = DataStoreFinder.getDataStore(connect);
String[] typeNames = dataStore.getTypeNames();
String typeName = typeNames[0];
System.out.println("Reading content " + typeName);
FeatureSource featureSource = dataStore.getFeatureSource(typeName);
FeatureCollection collection = featureSource.getFeatures();
FeatureIterator iterator = collection.features();
try {
while (iterator.hasNext()) {
Feature feature = iterator.next();
GeometryAttribute sourceGeometry = feature.getDefaultGeometryProperty();
}
} finally {
iterator.close();
}
} catch (Throwable e) {}
Openmap tiene una API de Java que proporciona acceso de lectura y escritura a los archivos ESRI.