SpatiaLiteの代わりにGeoPackageを使用しますか?


36

GeoPackage形式のサポートを含むQGIS 2.18を使用しています。

GeoPackageにはShapefileの代替品のようなものがありますが、GeoPackageにはデータベース機能があるため、そうではありません。同時に、GeoPackageはSpatiaLiteの完全な代替品ではありません。空間クエリと機能がないためです。また、SpatialiteはGeoPackageをサポートしています。

QGIS編集のコンテキストでは、GeoPackageを使用する(Spatial SQLタスクのためにSpatiaLiteからGeoPackageにアクセスする)のはいつ意味があり、Spatialiteだけを使用するほうがよいのでしょうか?


1
私もこの質問に興味があります。最初の編集後のロックのバグのため、geopackage-supportは現在制限されていることに注意してください。
hilpers

しかし、これはすでに解決されていますか?!2.18で問題を引き起こしませんでした。
マット

残念ながら、私は2.18.3を使用してください
hilpers

古いバグトラッカーで書かれた手順で2.18.3でテストしましたが、再現できませんでした。どのような状況で問題が発生しましたか?
マット

また、GeoPackageでの最初の編集後にロックバグが発生しますが、2.18.3で新しいDWG / DXFインポートを使用する場合のみです。DWGを正常にインポートし、作成されたGeoPackageを最初に編集できます(たとえば、Vector Benderプラグインでジオリファレンスするため)。ただし、QGISプロジェクトを閉じて再度開くと、編集の切り替えボタンがグレー表示になり、GeoPackageを再度編集できなくなります。
ロブウィルソン

回答:


33

QGISでのGeoPackageとSpatiaLiteの小さな比較。現時点では、QGISでGeoPackageを使用することは実際には生産的ではありません。ただし、かなり速く変化する可能性があります(補足を参照してください!)。

新しいQGIS 2.99エイリアスQGIS 3、2017年11月3日に関する追加(比較で追加):GeoPackageはQGIS 3でほとんど問題なく動作するようになりました。QGIS開発者バージョンに関するいくつかの小さな問題が発生しました。また、SpatiaLiteの最も問題のある問題は解決されました。列を追加の回避策なしで削除できるようになりました。どちらも、GUIを介したラスター書き込みをまだサポートしていませんが、データベース内のラスターは主な目的ではないため、大きな問題ではありません。どちらの形式も非常に優れた動作形式です。GeoPackageの焦点はtransport-formatであり、SpatiaLiteの場合、ローカルデータストレージを構築するための多くのツールを備えた簡単なファイルベースのデータベースシステムです(ファイル形式よりもRDBMSであるため)。

両方持っています:

  1. トランザクション
  2. SQLとビュー(ただし、ビューは使用するソフトウェアで異なる方法で実装されます)
  3. 「オールインワン」ベクターレイヤー、シンボルとテキスト、ラスター
  4. シェープファイルと比較してほとんど制限のない属性テーブル
  5. 時々VACUUMが必要です(データベース固有のデータストレージ)
  6. ほとんどのジオメトリタイプ(曲線など)

ジオパッケージ:

  1. SQLiteに基づくOGC標準であり、異なるソフトウェアで実装の一貫性を高める必要があることを意味します。たとえば、SLDスタイルが使用されている場合、将来、QGISおよびArcMapでシンボルが機能する可能性があります。
  2. かなり若い(2014)、QGISの2.18までのかなりの問題(更新:QGIS 3での良好なサポート)
  3. SpatiaLiteに反対する「通常の」ユーザー向けにQGISの列を簡単に削除できます。
  4. 現在、DB-Managerはあまりうまく機能せず、ラスターサポートは単一の統合されたラスターの読み取りに限定されています(書き込みは行われません)(QGIS 2.18.3を使用)(更新:DB-Managerはジオパッケージで正常に動作します)
  5. ビューはQGISで機能しませんが、多くのユーザー間で共有するために使用しない場合、仮想レイヤーを介してあまり問題になりません(更新:QGIS 3は実際にビューを作成できますが、後で読むことができないため、ビューはまだありません)
  6. ジオプロセシングツールは、既存のファイルへの追加を許可しません(ファイル全体を置き換えるだけです)(更新:すぐに動作します)

SpatiaLite:

  1. SQLiteの拡張であり、GIソフトウェアに異なる方法で実装されます(主にドライバーとバージョンの問題による)
  2. はるかに古く、現在までQGISに統合されている
  3. QGISでは、複雑ではないSQL-Queryなしで列を削除することはできませんが、一部のユーザーにとっては既に「コード」が多すぎます(更新:QGIS 3は今これを行います)
  4. ジオメトリでいっぱいの手だけがある場合はかなり大きなファイルで、トランスポート形式としてはあまり良くありませんが、ローカルデータベースストレージ用です(5MB前後から始まります)
  5. 多数の追加ツール(表示、道路網の作成、多くのインポート/エクスポート形式、ST_Queriesなど)

GeoPackageまたはSpatiaLiteをQGISのみで使用する予定ですか、それとも他のソフトウェアでも使用する予定ですか?SpatiaLiteは、このすべてのgaia-gis.it/gaia-sins/spatialite-sql-latest.htmlスタンドアロンもQGISなしでサポートしています。
user30184

ほとんどの場合、SpatiaLiteとQGISを使用しますが、SpatiaLite-GUIも使用します。QGISのトレーニングコースで紹介しています。唯一のポイントは、初心者向けの列の削除の問題です。一部の当局では必須であるFileGeodatabaseがあるため、ArcGISトレーニングでは導入しません(10%で、まだ最先端のシェープファイルではありません)。私は高度なQGISコースでGeoPackageを発表し始めましたが、上記の欠点がありました。しかし、GDALの実装は優れているため、QGISに必要なボタンが揃うまで長くはかかりません。
マット

あなたが言うように、あなたの比較はQGISの使用に関するものです。SpatiaLiteまたはGeoPackageのどちらが「ドロップカラム」のケースで優れているかを判断することは、QGIS固有のものであることを強調したいと思います。SQLite自体は、この操作を直接サポートしていませんsqlite.org/lang_altertable.html。一部のソフトウェアでボタンが表示されない場合でも、SpatiaLiteとGeoPackageの両方で同じ回避策が機能します。
user30184

1
私はそれをQGISに関する元の質問の文脈に入れました。コラムのポイントは、標準がプログラムのより一貫した使用につながることを期待する1つの例でした。これは「通常の」ユーザーのトピックです。統合のレベルは数年後でも非常に異なるため、SpatiaLiteでこれが可能かどうかはわかりません。最終的には、新しい標準化されたトランスポート形式(GeoPackage)になる可能性があります。SpatiaLiteは、組み込み関数(STクエリ、多くのデータインポートオプション、ネットワークなど)を備えたGISに非常に似ています。
マット

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