Ưu điểm của việc sử dụng spatialite so với shapefile? [đóng cửa]


35

Tôi thấy spatialite hữu ích hơn shapefile vì nó không có giới hạn của shapefile và nó cũng có thể mang theo được. Nhiều người ở đây sử dụng shapefiles để trao đổi dữ liệu và thậm chí các chuyên gia không biết về định dạng mới này.

Những lợi thế của việc sử dụng spatialite so với shapefiles là gì?

Nó có thể được sử dụng thay vì shapefile?

Vui lòng chỉ tập trung vào các định dạng có thể mang theo, tức là có thể trao đổi bằng thẻ USB. GML, GeoJSON, KML, CSV không phải là một tùy chọn và chúng không thể chỉnh sửa trực tiếp trong GIS.

CẬP NHẬT: Đã hơn 5 năm và sự phát triển mới hướng đến địa chất liên quan đến spatialite.

Vì vậy, bây giờ câu hỏi giống như Ưu điểm của việc sử dụng GEOPACKAGE so với GEODATABASE?

Câu trả lời:


27

Shapefiles là mẫu số chung thấp nhất của trao đổi tệp dữ liệu vectơ GIS: gửi một kho lưu trữ các shapefiles và bạn có thể đảm bảo khá nhiều rằng ai đó sẽ có thể xây dựng một GIS cơ bản từ nó.

Ưu điểm của SpatiaLite bao gồm:

  • tất cả mọi thứ trong một tập tin; không có shp / shx / dbf / idx / prj trên mỗi lớp lộn xộn.
  • logic cũng như dữ liệu có thể được bao gồm, dưới dạng VIEWs và TRIGGER.
  • các chỉ số không gian tích hợp, cho phép tìm kiếm nhanh chóng các khu vực rộng lớn.
  • chúng là thực (nếu hơi hạn chế, chủ yếu trong các hệ thống cơ sở dữ liệu nhiều người dùng), không yêu cầu kỹ năng quản trị cơ sở dữ liệu.

Nhưng có một số nhược điểm:

  • không phải ai cũng có thể sử dụng chúng
  • chúng vẫn chủ yếu giới hạn trong hình học được xây dựng từ các nút và đường thẳng; nếu bạn cần splines và bề mặt, tìm nơi khác.

8
Bài đăng tốt, nhưng hai điểm về chỉ số không gian. Shapefiles cũng có thể được lập chỉ mục không gian và thứ hai bạn phải tham gia rõ ràng vào một chỉ mục không gian Spatialite có thể dẫn đến một số truy vấn khó sử dụng. Tôi vẫn thích di chuyển dữ liệu trong DB Spatialite, nhưng nhập dữ liệu vào cơ sở dữ liệu PostGIS để tận dụng công cụ lập kế hoạch truy vấn mạnh mẽ hơn.
HeyOverThere

22

Shapefiles được liên kết với một loại hình học, vì vậy bạn nhận được một loạt các tệp cho một dự án. Tên trường cũng bị hạn chế do sử dụng định dạng cơ sở dữ liệu cổ.

Trong spatialite, bạn có thể giữ toàn bộ dữ liệu dự án trong một tệp; và đặt tên cho các lĩnh vực bạn muốn (tốt, gần như).

Nhược điểm duy nhất của spatialite là chu kỳ cập nhật nhanh, gây khó khăn cho việc đọc hoặc ghi dữ liệu được viết bằng phiên bản khác (cũ hơn).


15

Ngoài câu trả lời của Scuss, shapefiles còn có một số hạn chế:

  • độ dài tên trường tối đa là 10 ký tự
  • kích thước tệp tối đa (.dbf / .shp) là 2GB
  • các thuộc tính số được lưu trữ dưới dạng các ký tự (số nguyên / số float), gây ra các vấn đề tiềm ẩn với làm tròn vv
  • Giá trị NULL được diễn giải khác nhau giữa các hệ thống

4

Ưu điểm lớn nhất, đối với tôi, là hệ thống cơ sở dữ liệu quan hệ ở định dạng tệp duy nhất. Trong số nhiều lợi ích là việc sử dụng các chức năng không gian để tạo ra các khung nhìn. Hãy xem xét trường hợp bạn được cung cấp một tập hợp các điểm và phương pháp của bạn là đệm các điểm dựa trên một thuộc tính và sau đó kiểm tra sự trùng khớp của các bộ đệm đó với các đặc điểm địa lý khác. Sử dụng quy trình công việc này với shapefile thường yêu cầu mỗi thao tác được duy trì như một shapefile khác. Bây giờ nếu bất kỳ dữ liệu nào của bạn được cập nhật, bạn phải chạy lại toàn bộ chuỗi. Chưa kể rằng trong một số môi trường, dữ liệu đầu vào có thể bị thay đổi mà bạn không biết. Đây không phải là vấn đề khi bạn dựa vào các khung nhìn SQL cho các hoạt động hình học. (Tôi biết có những công cụ giải quyết loại vấn đề này với shapefiles, nhưng câu hỏi là về cơ sở dữ liệu spatiaLite.)


2

Mọi thứ nằm trong một tệp cũng là một bất lợi: Khó sửa hơn nhiều, nếu có gì đó bị hỏng. Kích thước của tệp cũng vậy, dường như bắt đầu từ 3,7 MB, ngay cả đối với các bộ dữ liệu gần như trống rỗng. Chúng dường như cũng chỉ hỗ trợ các trường văn bản, số nguyên và float. Không có ngày / giờ hoặc trường Boolean. Ít nhất là khi thử nghiệm trong QGIS 1.8


1
Spatialite không có kiểu ngày / giờ, vì nó có kiểu cho mọi thứ: Kiểu dữ liệu ngày và giờ .
kiểm tra

2
"SQLite không có lớp lưu trữ được dành riêng để lưu trữ ngày và / hoặc thời gian" được trích dẫn từ trang bạn liên kết đến. Vâng, có thể lưu trữ bất cứ thứ gì trong một trường văn bản, nhưng nó vẫn chỉ là văn bản, cần phải được phân tích cú pháp trước khi bạn có thể làm toán trên nó.
Uffe Kousgaard

Không, bạn không; bạn có thể thực hiện các truy vấn như select * where date < '1980-01-01'và nó thực hiện các phép toán cho bạn.
xem xét

có nghĩa là văn bản được phân tích cú pháp. Thay thế là ngày được lưu trữ dưới dạng số được động cơ hiểu trực tiếp. Không có rủi ro, bạn chạy vào ngày 31 tháng Tư hoặc bất kỳ giá trị bất hợp pháp nào khác. Với văn bản, nó phải được dịch thành một số, trước khi toán tử <có thể được áp dụng.
Uffe Kousgaard

1
@UffeKousgaard: Trong các tệp .dbf, số (số nguyên / số float) và dữ liệu được lưu dưới dạng ký tự, vì vậy trong trường hợp phân tích cú pháp, shapefiles không có lợi thế nào ở đây.
Oyvind
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.