61

2009 Tiger/Line Shapefilesの道路データの視覚化プログラムを作成することに興味があります。私の郡のすべての道路を表示するライン データを描画したいと思います。

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

Shapefilesの行データを解析して読み取るための既存のライブラリを知っている人はいますか?

4

5 に答える 5

73

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) {}
于 2010-01-11T21:11:22.403 に答える
9

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

于 2010-01-11T21:05:38.483 に答える
6

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

于 2010-01-11T21:02:43.467 に答える
3

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

于 2013-06-01T15:15:08.670 に答える