注意!この記事はかなり古い情報です。現在のQGISとは操作方法が違いますので注意してください
この記事は、FOSS4G Adventカレンダー2017に参加した記事です。
2017年の12月中にQGIS3.0がリリースされるという噂があり、毎日のようにQGISのオフィシャルホームページをチェックしていますが、2017年12月17日現在ではまだリリースされていません。12月中にリリースされれば、年末年始はサワサワ触りまくってやるのにと思っていましたが・・・。
そこで、予行演習も兼ねて、OSGeo4wで利用できる開発版の2.99(内容はほぼ3.0と同じと思われる)を最近触ってみています。
(これ以降はQGIS2.99をQGIS3.0として書いていきます。)
QGIS3ではGeopackageがデフォルトになる?
ファイルの入出力や、プロセッシングツールなどを見ていると、いままでは、シェープファイルがデフォルトになっていましたが、QGIS3.0ではGeopackageがデフォルトになっています。
ここからわかるように、QGISもやっと脱シェープファイルを考えているのだと思われます(多分ですよ、多分)。
昨年のFOSS4G AdventカレンダーでもGeopackageの記事がありましたが、QGIS2ではまだまだ使える状況ではありませんでした。
QGIS3からは、GeopackageをQGISのデフォルトのファイル形式としましょうということなのでしょう。
Geopackageってなに?
Geopackageとは、「オープンで標準に準拠したプラットフォームに依存しない、移植性の高い自己記述型のコンパクトなフォーマット」ということで、SQliteデータベースに様々なGISデータを格納できるファイルです。私自身はSpatialiteとどこが違うのかはよくわかっていませんが、Geopackageは、ベクタデータはもちろん、ラスタや、Mbtilesなどさまざまなデータを格納でき、ひとつのファイルにすることができます。
ArcGISでもArcGIS10.2.2からGeopackageをサポートしているとのことです。QGISで作成したものがArcGISで利用できるかは不明ですが、多分大丈夫なような気がします。
Geopackageにデータを追加する
QGIS3では、ブラウザパネルのGeopackageファイルにレイヤパネルからレイヤをドラッグ&ドロップするだけで、Geopackageにデータを追加できます。(Geopackageファイルのパスに2バイト文字が含まれるとエラーになります)
ラスタレイヤもドラッグ&ドロップで追加することができます。
レイヤを名前をつけて保存することでもGeopackageにデータを保存できます。
(名前をつけて保存したレイヤは、ブラウザパネルの「Geopackage」で表示されない場合があるようです)
Geopackageファイルには、様々なGISデータを格納できるので、地図を作るためのファイルの数を非常にコンパクトにすることができます。
今まではシェープファイルやラスタファイルを複数使って地図を作った場合、数十個のファイルを必要としていましたが、Geopackageでは一つでいいのです。
ファイルサイズ自体はそれほど変わらないと思いますが、ファイル数が少なくなるのはいいことです。
Geopackageにはレイヤスタイルも保存できる
Geopackageには、レイヤスタイルを保存することができます。Geopackageから追加したレイヤのレイヤプロパティを表示して「シンボロジー」の「スタイル」ボタン→「スタイルを保存」に「データベースに保存(Geopackage)」があります。
ここでスタイルをGeopackageファイルの保存すると、そのレイヤのデフォルトのスタイルとして登録することもできます。
(QGIS2.99では、スタイルを保存するとQGISが落ちますが、保存はされているようです)
まとめ
QGIS2までは、シェープファイルがデフォルトのようだったので利用していましたが、フィールド名の文字数の縛りや、文字コードの問題、ファイルの数が多いなどいろいろな問題がありました。これが今後はGeopackageで解決していけば、非常に良いことだと思います。
シェープファイルには、安室奈美恵と一緒に引退していただき、新たな世代にその座を譲っていただきましょう。
QGIS2.99では日本語だとうまく行かなかったり、Geopackageにラスタを追加すると、削除できなかったりするようなので、もうすこし熟成が必要かもしれませんが、今後さらに進化していくことが楽しみです。