Кто-нибудь знает библиотеку на Java, которая может анализировать шейп-файлы ESRI? - PullRequest
48 голосов
/ 11 января 2010

Я заинтересован в написании программы визуализации для дорожных данных в 2009 шейп-файлах Tiger / Line . Я хотел бы нарисовать данные линии, чтобы отобразить все дороги для моего округа.

Шейп-файл ESRI или просто Шейп-файл является популярным геопространственным векторный формат данных для географического программное обеспечение информационных систем. это разработан и регулируется ESRI как (в основном) открытая спецификация для данных совместимость между ESRI и другими программные продукты. 1"shapefile" обычно относится к коллекции файлы с ".shp", ".shx", ".dbf" и другие расширения на общем префиксе имя (например, "озера. *"). Настоящий шейп-файл относится конкретно к файлы с расширением ".shp", Однако этот файл является неполным для распространения, как и другие требуются вспомогательные файлы.

Кто-нибудь знает о существующих библиотеках для разбора и чтения данных строки для шейп-файлов ?

Ответы [ 5 ]

62 голосов
/ 12 января 2010

GeoTools сделает это. Есть тонна банок, и вам не нужно большинство из них. Однако чтение шейп-файла занимает всего несколько строк.

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) {}
8 голосов
/ 12 января 2010

Openmap имеет Java API , который обеспечивает доступ для чтения и записи к файлам ESRI.

5 голосов
/ 12 января 2010

Существует GeoTools , а точнее этот класс ShapefileDataStore .

3 голосов
/ 01 июня 2013

Вы можете попробовать использовать Java ESRI Shape File Reader . Это небольшой, простой в установке и очень простой API. Единственным недостатком является то, что он не читает другие обязательные и дополнительные файлы (.shx, .dbf и т. Д.), Которые обычно поставляются с файлом формы.

0 голосов
/ 27 июня 2014

Вы можете напрямую использовать инструменты ГИС с графическим интерфейсом, так что нет необходимости изменять исходный код GeoTools.

Я использую QGIS, который выполняет все операции (даже больше), чем GeoTools.

Quantum GIS - географическая информационная система с открытым исходным кодом для редактирования, объединения и упрощения карт шейп-файлов. См. Также: создание карт с несколькими слоями с использованием Quantum GIS.

...