その1
確かにQGIS3.2.1ではGeoPackageにスタイルを保存する選択項目がなくなっています。他の場所でいろいろ探したけど、見つかりませんでした。この機能自体はなくなると思わないが、考えられる原因として、この機能自体なくなったのか、機能自体新しくなる段階で一旦削除されているか。
その2
添付のフィールドリストは全て整数と小数のどちかです。整数と小数の場合、文字列と違って、型によって範囲が決められています。長さの意味がありません(新規でGeoPackageを作ってみれば分かります)。属性定義の表示上0になっているだけですだと思われます。
その3
GeoPackageに統合できませんというのが、おそらく個々のShapefileをGeoPackageにエクスポートするやり方でやっていたと思います。この方法だと、同名のGeoPackageにエクスポートする場合、既存のGeoPackageが上書きされてしまいます。
統合するには、以下の2つの方法もあります。
① DB ManagerでGeoPackageを選択してから、Shapefileとテーブル名を指定する。この方法だと、テーブル名が違っていれば、異なるShapefileを同じGeoPackageにインポートできます。
② いろいろ試してみた結果、以下の方法でバッチによる統合もできることが分かりました。
「フィールドのリファクタリング」ツールをバッチモードで起動する、インポート対象の複数のShapefileを指定、フィールドマップの欄で、fidをorg_fidなどの名前に変更(これfidの文字列属性があるとインポート時エラーがなるためです。前回のQAをご参照)、出力は同じGeoPackage、違うテーブルに指定する。
出力の指定ですが、直接異なるテーブルの指定できませんが、以下のように文字列を修正すれば可能になります。
青色の部分がGeoPackageのパス、赤色の部分はインポート後のテーブル名となります。全ての行において青色部分が同じにすれば一つのGeoPackageに統合することができます。
ogr:dbname='H:/Temp/BatchTest2.gpkg' table="AdmArea" (geom) sql=
※ 「フィールドのリファクタリング」ツールも前回作成したモデルに組み込めば、一発で複数のXMLをGeoPackageに統合することもできると思っていましたが、Fields Mapperパラメータの使い方は分からなかったので諦めました。Fields Mapperパラメータの使い方が分かる方がいらっしゃいましたら教えていただきたいです。
