51 votes

Quelqu'un connaît-il une bibliothèque en Java capable d'analyser les fichiers ESRI Shapefiles ?

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

Le Shapefile ESRI ou simplement un shapefile est un fichier géospatial populaire. vecteur populaire pour les logiciels de d'information géographique. Il est développé et réglementé par ESRI comme une spécification (essentiellement) ouverte pour l'interopérabilité l'interopérabilité des données entre ESRI et d'autres produits logiciels. 1 Un "shapefile" (fichier de forme) fait généralement référence à une collection de fichiers portant les extensions " .shp ", " .shx ", " .dbf ", etc. d'autres extensions sur un préfixe commun commun (par exemple, "lacs.*"). Le fichier réel shapefile se rapporte spécifiquement aux fichiers avec l'extension ".shp", cependant ce fichier seul est incomplet pour la distribution, car les autres fichiers fichiers de soutien sont nécessaires.

Quelqu'un connaît-il des bibliothèques existantes permettant d'analyser et de lire les données de la ligne pour Shapefiles ?

64voto

Clint Points 5864

GeoTools le fera. Il y a une tonne de bocaux et vous n'avez pas besoin de la plupart d'entre eux. Cependant, la lecture du fichier de forme est juste 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) {}

8voto

Robert Christie Points 7323

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

5voto

adrian.tarau Points 2023

Il y a GeoTools ou plus exactement cette classe ShapefileDataStore .

3voto

IvanMushketyk Points 1068

Vous pouvez essayer d'utiliser Lecteur de fichiers de forme ESRI en Java bibliothèque. Elle est petite, facile à installer et possède une API très simple. Le seul inconvénient est qu'elle ne lit pas les autres fichiers obligatoires et facultatifs (.shx, .dbf, etc.) qui sont généralement livrés avec un fichier de forme.

0voto

user3577609 Points 1

Vous pouvez utiliser directement les outils SIG GUI de sorte qu'il n'est pas nécessaire de modifier le code source de GeoTools.

J'utilise QGIS qui fait toutes les opérations (même plus) que GeoTools.

SIG Quantum - Un système d'information géographique open source pour éditer, fusionner et simplifier les cartes en shapefile. Voir aussi : création de cartes avec plusieurs couches à l'aide de Quantum GIS.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X