Menggunakan GeoPackage, bukan SpatiaLite, dan sebaliknya?

36

Saya menggunakan QGIS 2.18 sekarang, yang mencakup dukungan untuk format GeoPackage.

Saya tahu bahwa GeoPackage seperti pengganti Shapefile tetapi tidak begitu, karena GeoPackage memiliki kemampuan basis data. Pada saat yang sama, GeoPackage bukan pengganti penuh untuk SpatiaLite, karena tidak memiliki kueri dan fungsi spasial. Juga, Spatialite mendukung GeoPackage.

Jadi, dalam konteks pengeditan QGIS, kapan masuk akal untuk menggunakan GeoPackage (dan mengakses GeoPackage dari SpatiaLite untuk tugas SQL Spasial), dan kapan lebih baik menggunakan Spatialite saja?

Tanda Pahbloo
sumber
1
Saya tertarik dengan pertanyaan ini juga. Perlu diingat bahwa dukungan geopackage saat ini terbatas karena bug penguncian setelah edit pertama.
Hilper
Tapi ini sudah diselesaikan ?! Tidak menemukan masalah dengan 2.18.
Matte
Sayangnya, saya menggunakan 2.18.3
hilper
Saya mengujinya dengan 2.18.3 dengan prosedur yang ditulis dalam pelacak bug lama dan tidak dapat mereproduksi itu. Dalam situasi apa Anda mendapat masalah?
Matte
Saya juga mengalami bug penguncian setelah edit pertama dengan GeoPackage tetapi hanya ketika saya menggunakan impor DWG / DXF baru di 2.18.3. Saya berhasil mengimpor DWG dan awalnya mengedit GeoPackage dibuat (misalnya, untuk georeferensi dengan plugin Vector Bender). Tapi begitu saya menutup proyek QGIS dan membuka kembali tombol pengeditan beralih adalah abu-abu dan GeoPackage tidak dapat diedit lagi.
Rob Willson

Jawaban:

33

Perbandingan kecil antara GeoPackage dan SpatiaLite di QGIS. Tepat saat ini tidak benar-benar produktif untuk menggunakan GeoPackage dengan QGIS. Mungkin berubah cukup cepat (lihat tambahan!).

Beberapa tambahan tentang QGIS baru 2,99 alias QGIS 3, November 2017 (juga ditambahkan sebagai perbandingan): GeoPackage sekarang berfungsi hampir tanpa masalah di QGIS 3. Apakah menghadapi beberapa masalah kecil yang mungkin berkaitan dengan versi pengembang QGIS. Juga masalah yang paling bermasalah untuk SpatiaLite diselesaikan. Kolom dapat dihapus sekarang tanpa ada solusi tambahan. Keduanya masih tidak mendukung penulisan raster melalui GUI yang bukan masalah besar karena raster dalam database bukan tujuan utama. Kedua format adalah format kerja yang sangat bagus. Fokus untuk GeoPackage adalah format transportasi dan untuk SpatiaLite sistem basis data berbasis file yang mudah dengan banyak alat untuk membangun penyimpanan data lokal (karena ini lebih merupakan RDBMS daripada format file).

Keduanya memiliki:

  1. transaksional
  2. SQL dan tampilan (tetapi tampilan diimplementasikan secara berbeda dalam menggunakan perangkat lunak)
  3. "all in one" layer vektor, simbologi dan teks, raster
  4. tabel atribut dengan hampir tanpa batasan dibandingkan dengan shapefile
  5. memang membutuhkan VACUUM dari waktu ke waktu (penyimpanan data khusus basis data)
  6. sebagian besar tipe geometri (seperti kurva)

Paket Geo:

  1. adalah standar OGC berdasarkan SQLite, berarti implementasinya harus lebih konsisten dalam perangkat lunak yang berbeda; misalnya simbologi mungkin berfungsi di QGIS dan ArcMap di masa depan ketika SLD-Styles digunakan
  2. pretty young (2014), beberapa masalah dengan itu di QGIS hingga 2,18 (pembaruan: dukungan yang baik di QGIS 3)
  3. memungkinkan penghapusan kolom di QGIS untuk pengguna "normal" yang menentang SpatiaLite
  4. saat ini DB-Manager tidak berfungsi dengan baik dan dukungan raster terbatas untuk membaca satu raster terintegrasi (tidak ada tulisan di dalamnya) (menggunakan QGIS 2.18.3) (pembaruan: DB-Manager sekarang bekerja dengan baik dengan geopackage)
  5. tampilan tidak berfungsi di QGIS, tetapi melalui lapisan virtual tidak terlalu menjadi masalah ketika tidak digunakan untuk berbagi di antara banyak pengguna (pembaruan: masih tidak ada tampilan karena QGIS 3 benar-benar dapat membuat tampilan tetapi tidak dapat membacanya setelah itu)
  6. alat geoprocessing tidak memungkinkan menambahkan ke file yang ada (hanya mengganti seluruh file) (perbarui: berfungsi sekarang)

SpatiaLite:

  1. adalah ekstensi untuk SQLite, diimplementasikan secara berbeda dalam GI-software (kebanyakan karena masalah driver dan versi)
  2. jauh lebih tua dan hingga sekarang lebih terintegrasi dengan QGIS
  3. di QGIS Anda tidak dapat menghapus kolom tanpa SQL-Query yang tidak rumit, tetapi untuk beberapa pengguna sudah terlalu banyak "kode" (pembaruan: QGIS 3 melakukan ini sekarang)
  4. file yang cukup besar ketika hanya memiliki tangan yang penuh dengan geometri, tidak cukup baik sebagai format transportasi tetapi untuk penyimpanan basis data lokal (dimulai dengan sekitar 5MB)
  5. Banyak alat tambahan (tampilan, dapat membuat jaringan jalan, banyak format impor / ekspor, ST_Queries, dan lainnya)
Matte
sumber
Apakah Anda berencana untuk menggunakan GeoPackage atau SpatiaLite hanya dengan QGIS, atau dengan perangkat lunak lain juga? SpatiaLite juga mendukung semua gaia-gis.it/gaia-sins/spatialite-sql-latest.html ini sendiri tanpa QGIS.
user30184
Saya menggunakan sebagian besar SpatiaLite bersama dengan QGIS, tetapi juga dengan SpatiaLite-GUI. Saya memperkenalkannya dalam kursus pelatihan saya untuk QGIS. Satu-satunya titik ada masalah menghapus kolom untuk pemula. Saya tidak memperkenalkannya dalam pelatihan ArcGIS karena mereka memiliki FileGeodatabase di sana yang ada di beberapa otoritas wajib (dalam 10% di mana bukan merupakan shapefile yang masih canggih ...). Saya mulai mengumumkan GeoPackage dalam kursus QGIS tingkat lanjut, tetapi dengan pengundian yang tertulis di atas. Tetapi karena GDAL memiliki implementasi yang baik, tidak akan lama sampai QGIS memiliki tombol yang dibutuhkan.
Matte
Seperti yang Anda katakan, perbandingan Anda adalah tentang penggunaan QGIS. Saya ingin menekankan bahwa menilai apakah SpatiaLite atau GeoPackage lebih baik dengan case "drop kolom" sangat spesifik untuk QGIS. SQLite sendiri tidak mendukung operasi ini secara langsung sqlite.org/lang_altertable.html . Solusi yang sama berfungsi baik untuk SpatiaLite dan GeoPackage bahkan beberapa perangkat lunak mungkin ketinggalan tombol.
user30184
1
Saya memasukkannya ke dalam konteks pertanyaan awal tentang QGIS. Poin dengan kolom adalah salah satu contoh di mana saya berharap standar akan mengarah pada penggunaan yang lebih konsisten dalam program karena ini adalah topik untuk pengguna "normal". Tidak yakin apakah ini akan dimungkinkan dengan SpatiaLite karena tingkat integrasi sangat berbeda bahkan setelah beberapa tahun. Pada akhirnya bagi saya itu akan mengarah ke titik di mana itu mungkin format transportasi standar baru (GeoPackage). SpatiaLite lebih mirip GIS dengan fungsi bawaannya (ST-Queries, banyak opsi impor data, jaringan ...).
Matte
Baik GeoPackage dan SpatiaLite berbasis SQLite.
Matthias Kuhn