Sử dụng GeoPackage thay vì SpatiaLite và ngược lại?


36

Tôi hiện đang sử dụng QGIS 2.18, bao gồm hỗ trợ cho định dạng GeoPackage.

Tôi biết rằng GeoPackage giống như một sự thay thế cho Shapefile nhưng không hoàn toàn như vậy, vì GeoPackage có khả năng cơ sở dữ liệu. Đồng thời, GeoPackage không phải là sự thay thế hoàn toàn cho SpatiaLite, bởi vì nó không có các truy vấn và chức năng không gian. Ngoài ra, Spatialite hỗ trợ GeoPackage.

Vì vậy, trong bối cảnh chỉnh sửa QGIS, khi nào thì nên sử dụng GeoPackage (và truy cập GeoPackage từ SpatiaLite cho các tác vụ SQL không gian) và khi nào nên sử dụng Spatialite tốt hơn?


1
Tôi cũng quan tâm đến câu hỏi này Hãy nhớ rằng hỗ trợ địa lý hiện đang bị hạn chế do lỗi khóa sau lần chỉnh sửa đầu tiên.
hilpers

Nhưng điều này đã được giải quyết?! Không có vấn đề với đồ trang sức với 2.18.
Mờ

Thật không may, tôi sử dụng 2.18.3
hilpers

Tôi đã thử nghiệm nó với 2.18.3 với quy trình được ghi trong trình theo dõi lỗi cũ và không thể sao chép nó. Trong hoàn cảnh nào bạn có vấn đề?
Mờ

Tôi cũng gặp phải lỗi khóa sau lần chỉnh sửa đầu tiên với GeoPackage nhưng chỉ khi tôi sử dụng nhập DWG / DXF mới trong 2.18.3. Tôi có thể nhập thành công DWG và ban đầu chỉnh sửa GeoPackage đã tạo (ví dụ: để định vị địa lý bằng plugin Vector Bender). Nhưng một khi tôi đóng dự án QGIS và mở lại nút chỉnh sửa chuyển đổi bị mờ đi và GeoPackage không thể được chỉnh sửa lại.
Rob Willson

Câu trả lời:


33

Một so sánh nhỏ giữa GeoPackage và SpatiaLite trong QGIS. Ngay lúc này, việc sử dụng GeoPackage với QGIS là không thực sự hiệu quả. Có thể thay đổi khá nhanh mặc dù (xem phần nghiện!).

Một số bổ sung liên quan đến bí danh mới của QGIS 2.99 QGIS 3, tháng 11 năm 2017 (cũng được thêm vào so sánh): GeoPackage hiện hoạt động gần như không có bất kỳ vấn đề nào trong QGIS 3. Đã gặp phải một số vấn đề nhỏ có thể liên quan đến phiên bản dành cho nhà phát triển của QGIS. Ngoài ra vấn đề rắc rối nhất đối với SpatiaLite đã được giải quyết. Cột có thể được xóa ngay bây giờ mà không cần bất kỳ cách giải quyết bổ sung. Cả hai vẫn không hỗ trợ ghi raster thông qua GUI, đây không phải là vấn đề lớn vì các raster trong cơ sở dữ liệu không phải là mục đích chính. Cả hai định dạng là một định dạng làm việc thực sự tốt. Trọng tâm của GeoPackage là định dạng truyền tải và SpatiaLite là một hệ thống cơ sở dữ liệu dựa trên tệp dễ dàng với nhiều công cụ để xây dựng bộ lưu trữ dữ liệu cục bộ (vì nó giống RDBMS hơn định dạng tệp).

Cả hai đều có:

  1. giao dịch
  2. SQL và các khung nhìn (nhưng các khung nhìn được triển khai khác nhau trong phần mềm sử dụng)
  3. "tất cả trong một" các lớp vectơ, ký hiệu và văn bản, raster
  4. bảng thuộc tính gần như không có hạn chế so với shapefile
  5. thỉnh thoảng cần VACUUM (lưu trữ dữ liệu cụ thể cho cơ sở dữ liệu)
  6. hầu hết các loại hình học (như đường cong)

Gói địa lý:

  1. là một tiêu chuẩn OGC dựa trên SQLite, có nghĩa là việc triển khai phải nhất quán hơn trong các phần mềm khác nhau; ví dụ, hệ thống ký hiệu có thể hoạt động trong QGIS và ArcMap trong tương lai khi SLD-Styles được sử dụng
  2. khá trẻ (2014), khá nhiều vấn đề với nó trong QGIS lên tới 2,18 (cập nhật: hỗ trợ tốt trong QGIS 3)
  3. cho phép dễ dàng xóa các cột trong QGIS cho người dùng "bình thường" phản đối SpatiaLite
  4. ngay bây giờ DB-Manager không hoạt động tốt với nó và hỗ trợ raster chỉ giới hạn ở việc đọc một raster tích hợp duy nhất (không ghi vào đó) (sử dụng QGIS 2.18.3) (cập nhật: DB-Manager hiện hoạt động tốt với tính năng geopackage)
  5. Các chế độ xem không hoạt động trong QGIS, nhưng qua lớp ảo không có quá nhiều vấn đề khi không được sử dụng để chia sẻ giữa nhiều người dùng (cập nhật: vẫn không có chế độ xem vì QGIS 3 thực sự có thể tạo ra các chế độ xem nhưng sau đó có thể đọc chúng)
  6. công cụ xử lý địa lý không cho phép nối thêm vào tệp hiện có (chỉ thay thế toàn bộ tệp) (cập nhật: hoạt động ngay)

SpatiaLite:

  1. là một phần mở rộng cho SQLite, được triển khai khác nhau trong phần mềm GI (phần lớn là do các vấn đề về trình điều khiển và phiên bản)
  2. cũ hơn nhiều và đến nay được tích hợp tốt hơn vào QGIS
  3. trong QGIS, bạn có thể xóa các cột mà không cần truy vấn SQL không phức tạp, nhưng đối với một số người dùng đã có quá nhiều "mã" (cập nhật: QGIS 3 thực hiện điều này ngay bây giờ)
  4. Tệp khá lớn khi chỉ có một bàn tay đầy hình học, không hoàn toàn tốt như định dạng truyền tải nhưng để lưu trữ cơ sở dữ liệu cục bộ (bắt đầu với khoảng 5MB)
  5. Rất nhiều công cụ bổ sung (chế độ xem, có thể tạo mạng lưới đường, nhiều định dạng nhập / xuất, ST_Queries và hơn thế nữa)

Bạn có kế hoạch chỉ sử dụng GeoPackage hoặc SpatiaLite với QGIS hoặc với các phần mềm khác không? SpatiaLite cũng hỗ trợ tất cả gaia-gis.it/gaia-sins/spatialite-sql-latest.html độc lập này mà không có QGIS.
dùng49584

Tôi sử dụng chủ yếu là SpatiaLite cùng với QGIS, nhưng cũng với SpatiaLite-GUI. Tôi giới thiệu nó trong các khóa đào tạo của tôi cho QGIS. Điểm duy nhất là vấn đề xóa cột cho người mới bắt đầu. Tôi không giới thiệu nó trong các khóa đào tạo của ArcGIS vì họ có FileGeodatabase ở đó một số cơ quan bắt buộc (trong 10% không phải là shapefile vẫn là công nghệ ...). Tôi đã bắt đầu công bố GeoPackage trong các khóa học nâng cao của QGIS, nhưng với những mặt trái được viết ở trên. Nhưng vì GDAL có triển khai tốt, nên có thể kéo dài cho đến khi QGIS có các nút cần thiết.
Mờ

Như bạn nói, so sánh của bạn là về việc sử dụng QGIS. Tôi muốn nhấn mạnh rằng việc đánh giá nếu SpatiaLite hoặc GeoPackage tốt hơn bởi trường hợp "cột thả" là rất cụ thể của QGIS. Bản thân SQLite không hỗ trợ thao tác này trực tiếp sqlite.org/lang_altertable.html . Cách giải quyết tương tự làm việc cho cả SpatiaLite và GeoPackage thậm chí một số phần mềm có thể bỏ lỡ các nút.
dùng49584

1
Tôi đặt nó vào bối cảnh của câu hỏi ban đầu, đó là về QGIS. Điểm với cột là một ví dụ mà tôi hy vọng tiêu chuẩn sẽ dẫn đến việc sử dụng nhất quán hơn trong các chương trình vì đây là một chủ đề cho người dùng "bình thường". Không chắc chắn nếu điều này có thể xảy ra với SpatiaLite vì mức độ tích hợp rất khác nhau ngay cả sau vài năm. Cuối cùng, đối với tôi, nó sẽ dẫn đến điểm có thể là một định dạng vận chuyển được tiêu chuẩn hóa mới (GeoPackage). SpatiaLite giống như một hệ thống GIS với các chức năng tích hợp (ST-Queries, rất nhiều tùy chọn nhập dữ liệu, mạng ...).
Mờ

Cả hai, GeoPackage và SpatiaLite đều dựa trên SQLite.
Matthias Kuhn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.