web-dev-qa-db-fra.com

Est-ce que quelqu'un connaît une bibliothèque en Java capable d'analyser les fichiers de formes ESRI?

Je suis intéressé par l’écriture d’un programme de visualisation des données routières dans 2009 Tiger/Line Shapefiles . J'aimerais dessiner les données de ligne pour afficher toutes les routes de mon comté.

Le fichier de forme ESRI ou simplement un fichier Le shapefile est un fichier géospatial populaire format de données vectorielles pour geographique logiciel de systèmes d'information. Il est développé et réglementé par ESRI en tant que (généralement) spécification ouverte pour les données interopérabilité entre ESRI et les autres produits logiciels. 1 A "shapefile" fait généralement référence à une collection de fichiers avec ".shp", ".shx", ".dbf" et autres extensions sur un préfixe commun nom (par exemple, "lacs. *"). L'actuel Le shapefile concerne spécifiquement fichiers avec l'extension ".shp", Cependant, ce fichier seul est incomplet pour la distribution, comme l'autre les fichiers de support sont requis.

Est-ce que quelqu'un connaît des bibliothèques existantes pour analyser et lire les données de ligne pour Shapefiles ?

46
KingNestor

GeoTools le fera. Il y a une tonne de pots et vous n'en avez pas besoin. Cependant, la lecture du fichier de formes ne représente que quelques lignes.

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) {}
60
Clint

Openmap possède une API Java qui fournit un accès en lecture et en écriture aux fichiers ESRI.

8
Robert Christie

Il existe GeoTools , ou plus précisément cette classe ShapefileDataStore .

5
adrian.tarau

Vous pouvez essayer d'utiliser Java ESRI Shape File Reader library. Il est petit, facile à installer et possède une API très simple ... Le seul inconvénient est qu’il ne lit pas d’autres fichiers obligatoires et facultatifs (.shx, .dbf, etc.) généralement fournis avec un fichier shape.

3
Ivan Mushketyk

Vous pouvez directement utiliser les outils SIG à interface graphique afin qu’ils n’aient pas besoin de changer le code source de GeoTools. 

J'utilise QGIS qui effectue toutes les opérations (encore plus) que GeoTools.

Quantum GIS - Système d’information géographique à code source ouvert pour l’édition, la fusion et la simplification des cartes de fichiers de formes. Voir aussi: création de cartes avec plusieurs couches à l'aide de Quantum GIS.

0
user3577609