オープンソースのクロスプラットフォームデータセットタイプとしてのシェープファイルの代替[非公開]


20

私は非常にESRI指向のソフトウェアに取り組んでいますが、将来のバージョンではおそらくESRIソフトウェアを使用しないでしょう。シェープファイルとジオデータベースを使用します。Androidやその他のモバイルデバイスに搭載される可能性のあるソフトウェアの将来のバージョンを見越して、すべてのデータをShapefilesに取得することを計画しています。シェイプファイルは、オープンソースGISの世界で最も一般的なフィーチャのデータ型ですが、他にはどのようなものがあり、どのような利点がありますか?私はGeoJSONとKMLに精通していますが、他にもあると確信しています。

すべてのオプションを知りたいのですが、モバイルデバイスに保存するのに最適なデータセットタイプに特に興味があります(インターネットに接続せずにデータにアクセスできる必要があります)。



1
2011年からのその質問は、GeoPackageが存在する前に尋ねられたものであり、回答には当然その選択肢が含まれていません。
user30184

2
Esri File Geodatabaseには、ほとんどの小さなライブラリのテキストコンテンツに匹敵する最大長のcharフィールドがあります。EsriPersonal Geodatabaseは非常に長いテキストフィールドもサポートします。どちらにもQGISおよびもちろんEsri ArcGISからアクセスできますが、これらのデータ型のサポートはこれらのパッケージ以外では制限されています。ただし、バージョンに注意してください。遭遇する可能性のあるほとんどのEsriソフトウェアは10以上であり、QGISのジオデータベースAPIはこのバージョンサポートする必要があるため、9.3準拠の作成を試みます。GeoJSONとKMLも大きなテキストフィールドをサポートできますが、広く読めるわけではありません。
マイケルスティムソン

1
うーん、9.3はファイルジオデータベースの互換性のための良い計画ではありません-FGDB APIは9.xスタイルの.gdbをサポートしていません。
ビンス

1
@ElioDiazシェープファイルは、それらの制限にもかかわらず、最も普遍的なフィーチャ転送メディアであるため、依然として存在します- ほとんどすべての GISパッケージがEsriシェープファイルを開くかインポートできます。このフォーマットはオープンスタンダードなので、誰でも独自の方法で読み取り、実装できます。間違いなく優れたGISフィーチャ形式がありますが、それらは広く採用されているわけではありません...このトピックはGIS.SEで度も議論されています。さもなければ、シェープファイルはしばらくの間機能の最小公分母になる可能性が高いので、笑って負担するだけです。
マイケルスティムソン

回答:


18

@ user890が言うように、これはデータの使用方法に大きく依存します。主に、データにアクセスする方法は2つあります。

  1. すべてを一度にメモリにロードしてから、メモリ内のデータにアクセス/クエリします。
  2. 特定の機能、境界ボックスなどを照会することにより

GeoJSONやKMLなどの形式は、すべてを一度に読み込む場合に最適です。利点は、アプリケーションにより適した方法でデータを構造化できることです。欠点:ファイルサイズが大きく(テキストベースであるため)、ファイルから直接効率的なクエリを実行できない。

SQLite / Spatialiteはクエリ(SQL)には適していますが、データを構造化することはより困難です。すべてをデータベーステーブルにフラット化してから、クエリ時にJOIN(高価になる可能性があります)を行う必要があります。

実際には、すべてをカバーする完璧なファイル形式はありません(ただし、シェープファイルは完全ではありません)。検討すべき代替案の1つは、独自のアプリケーション固有の形式を展開することですが、これは、データを外部と共有する必要がない場合にのみ機能します。


14

私が思うにOGRベクタ形式のリスト(更新されたリンク)だけで、すべて私が今まで聞いたことがあるオープンソース形式、および多くのより多くの程度を識別します。これらの形式にはそれぞれ独自の利点/欠点があるため、どちらが「最良」であるかを言うのは困難です。モバイルアプリの場合、ファイルサイズがより重要な決定要因の1つになると思います。

モバイルアプリケーションの場合、sqlite / spatialite形式が最初の論理形式になると思います。Androidがsqliteのネイティブサポートを提供していることは知っています。したがって、spatialite拡張をロードできると仮定すると、非常に強力なgiを使用できます。

あなたがどれだけ冒険好きであるかに応じて、Androidのgdalを構築することは不可能ではないように見えます。そうすれば、さらに多くのフォーマットを自由に使用できます。このルートに行ったら、このサイトの多くのユーザーが興味を持っていると思います。


13

最近登場した新しい形式はGeopackageです。この仕様はSQLiteデータベースの上に構築されているため、同じ単一ファイルベースですが、OGC標準であるという追加の利点があります。
ファイルサイズに関しては、それは保存形式がよりコンパクトである可能性が高い.shp.dbfシェープファイルで使用される空間と属性データの形式。したがって、GeoPackageは、シェープファイル内の同じフィーチャの全体と同じサイズまたはそれよりも小さい可能性があります。
この写真は、シェイプファイルとジオパッケージの両方として保存されたサンディエゴの下水道本管を示しています。ご覧のとおり、これらは基本的に同じサイズです。 シェープファイルとジオパッケージのサイズ
この形式はSQLiteに基づいているため、モバイルデバイス用に既製にする必要があります。多くのアプリはすでにこのデータベース形式をストレージに使用しているため、実証済みのテクノロジーです。翻訳を必要とせずにクロスプラットフォームで使用できます。


4

Lennertに同意し、ジョブに適した形式を選択します。

しかし、Spatialiteは非常に用途の広いフォーマットであることがわかりました。シェープファイルのようにデータを保存および共有する柔軟性を提供する単一のファイルがありますが、文字の制限で言及した問題を無効にします。空間データベースの利点を活用する機会を提供します。

残念ながら、ArcGISでは完全にサポートされていません(しばらく試していないので間違っている可能性があります)が、QGISではうまく機能します。


4

さまざまな形式がありますが、最適なものは、使用しているデータセット、使用するツール、および使用するデータによって異なります。

私が使用するもののいくつか:

  • ファイルジオデータベースと空間データベース:私が使用したいキャッチオール。あらゆる種類のデータを保持し、リレーションシップ、インデックスを作成できます... Esri環境で作業するときはgdbを使用します。

  • GeoJson:インデックス作成の方法をあまり必要としない小さなデータセットに一般的に使用する読みやすい形式

  • 適切なデータベース:私はこれを大規模なデータセットと複雑なアルゴリズムに使用する傾向があります。

しかし、他にもたくさんあります。


3

SQLite / spatialliteデータベースの使用をお勧めします。これは、ジオデータベース(1対多数のテーブル/レイヤー)のような単一のファイルであり、ArcGIS DesktopおよびQGISで使用できます。


ポリゴンデータをsqliteに保存し、それをQGISでロードすると、「CRSは未定義:デフォルトはCRS EPSG:4326-WGS84」というメッセージが表示されました。投影に関する情報は失われませんか?
イチロー

どのソフトウェアでポリゴンレイヤーをsqliteに保存しましたか?
アートワーク

1

オプションは実際に使用する言語とデータの使用方法に依存します。AndroidはおそらくJavaになります。すべてのオプションは、その決定に基づいた一種のコスト/利益の比較になります。すべてのデータ形式は、特定のユースケース向けに最適化されています。

次の質問は、データの使用方法です。モバイルアプリは空間データを読み取るだけですか?または、頻繁にデータを読み書きしますか?他のデバイスやサーバーとデータを交換する頻度は?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.