2016-09-23 8 views
1

シェープファイルを読み込むためにGeoToolsを使用しています。それを使用するためのチュートリアルは、フィルタを "Filter filter = Filter.INCLUDE;"に設定する方法を示しています。すべてを指定するシェイプファイル用のGeoToolsフィルタ

非常に大きなシェイプファイルでパフォーマンス目的で読み値を分割したいと考えています。本質的には、私はDBFファイルの情報の読みを "THE_GEOM"データの読み方と分けたいと思っています。私たちはすでに独自のフィルタリングをたくさん用意しており、それを使い、必要に応じて実際のジオメトリを取得する方が簡単です。

  1. ジオメトリなしですべてのDBF情報を取得するフィルタを指定するにはどうすればよいですか?
  2. DBF情報なしでジオメトリを取得するフィルタを指定するにはどうすればよいですか?おそらくパフォーマンスにはあまり影響しませんので、これは重要ではありませんが、私は知りたいと思います。

ありがとうございます。

答えて

0

GeoToolsのShapefile Datastoreはジオメトリと属性(DBFのもの)を一緒に保つために非常に長くなります。だからあなたはこれを行うために内部を突き刺さなければならないだろう。だから、DBFFileReaderShapefileReaderを読んで分割することができます。

Shapefilesが小さすぎたり遅すぎたりすると後でデータソースを切り替えることができるため、フィルタをGeoToolsに移植することを検討します。それらを構築するのを手助けするためにCQL and ECQL classesを見る価値があるかもしれません。 大きなシェイプファイル(> 2Gb)を扱っている場合は、PostGISのような適切な空間データベースを使用すると、ほぼ確実にパフォーマンスが向上し、正確に同じフィルタで正確に同じ方法でデータにアクセスします。

関連する問題