web-dev-qa-db-ja.com

ESRI Shapefilesを解析できるJavaのライブラリを知っている人はいますか?

2009 Tiger/Line Shapefiles で道路データの視覚化プログラムを書くことに興味があります。郡のすべての道路を表示するために、線データを描画したいと思います。

ESRIシェープファイルまたは単にシェープファイルは、地理情報システムソフトウェアで一般的な地理空間ベクトルデータ形式です。 ESRIと他のソフトウェア製品間のデータ相互運用性のための(ほとんど)オープンな仕様としてESRIによって開発および規制されています。 1 「シェープファイル」 「.shp」、「。shx」、「。dbf」、および共通の接頭辞名(「lakes。*」など)の他の拡張子を持つファイルのコレクション。実際のシェープファイルは、特に「.shp」拡張子のファイルに関連していますが、他のサポートファイルが必要なため、このファイルだけでは配布が不完全です。

Shapefiles の行データを解析および読み込むための既存のライブラリを知っていますか?

48
KingNestor

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

Openmap には、ESRIファイルへの読み取りおよび書き込みアクセスを提供する Java API があります。

8
Robert Christie

GeoTools 、またはより正確にはこのクラス ShapefileDataStore があります。

5
adrian.tarau

Java ESRI Shape File Reader ライブラリを使用してみてください。小さくて簡単にインストールでき、非常にシンプルなAPIを備えています。唯一の欠点は、通常シェイプファイルと共に出荷される他の必須およびオプションのファイル(.shx、.dbfなど)を読み取らないことです。

3
Ivan Mushketyk

GUI GISツールを直接使用して、GeoToolsのソースコードを変更する必要がないようにすることができます。

GeoToolsよりもすべての操作(さらに多く)を行うQGISを使用しています。

Quantum GIS -シェープファイルマップの編集、マージ、および単純化のためのオープンソースの地理情報システム。参照:Quantum GISを使用して複数のレイヤーを持つマップを作成する。

0
user3577609