Đây là một chủ đề luôn luôn xuất hiện. Tôi có thể không có câu trả lời đúng, nhưng tôi có thể cho bạn ý kiến cá nhân của tôi .
Lý do mà chúng được hỗ trợ, có thể được quy cho một số đặc điểm về chúng, vì vậy hãy để tôi đề cập đến một vài.
Đầu tiên, có một thông số kỹ thuật . Ý tôi là, tôi đang ở tuổi ba mươi và điều này tồn tại từ khi tôi còn là một thiếu niên. Vì vậy, nó an toàn để nói rằng thông số kỹ thuật này đã được một thời gian. Tất nhiên, có một số định dạng khác cũng được xuất bản, nhưng sự khác biệt về cái này là ...
Nó tương đối đơn giản! Nó được xây dựng dựa trên Định dạng DBF , tại thời điểm đó đã tồn tại và được hỗ trợ rộng rãi trong một số nền tảng / HĐH. Đã có các trình phân tích cú pháp có thể đọc một nửa định dạng này (phần DBF), vì vậy nó đã hỗ trợ bổ sung dễ dàng hơn. Bạn có một hình học? Chắc chắn chỉ cần nối tiếp nó và viết nó. Bạn xong việc rồi. Tương phản điều này với một phạm vi bảo hiểm ! Cố gắng giải thích cho ai đó bằng những thuật ngữ đơn giản về cấu trúc liên kết sạch . Nó không phải là tầm thường để viết một phạm vi bảo hiểm tôpô.
Quan trọng nhất, tôi nghĩ lý do số 1 để các shapefile vẫn phổ biến là chúng được hỗ trợ trong cả hai hệ thống Nguồn mở và Độc quyền . Những gì bạn biết rằng GIS không hỗ trợ shapefiles?!? Không nghe.
Để thay thế, chúng tôi nghe nói về Tệp GeoDatabase và Spatialite . Cả hai định dạng, đều vượt trội hơn rất nhiều về chức năng, tính linh hoạt, tốc độ, v.v. khi so sánh với Shapefiles. Theo cách riêng của họ, họ có những thứ nhất định làm cho chúng tốt hơn nhau ở các khu vực khác nhau, nhưng so sánh spatialite và FileGDB chắc chắn nằm ngoài phạm vi của câu hỏi này.
Tôi có nghĩ rằng một trong hai định dạng này sẽ thay thế Shapefiles không? Không phải trong hiện thân của họ .
Tại sao?
Không phải vì một cuộc tranh luận về công nghệ (tôi đã nói rằng họ vượt trội về khía cạnh đó sau tất cả), mà vì một thứ khác: cấp phép.
Vậy vấn đề của họ là gì?
FileGDB :
FileGDB cung cấp khả năng tương tác thông qua API FileGDB mới. Tuy nhiên, API này được cung cấp ở định dạng nhị phânbởi ESRI. Đây không phải là một đặc điểm kỹ thuật. Đã từng làm việc trong nhóm GeoDatabase trong quá khứ, tôi có thể nói với bạn, trái với tất cả các nhà lý luận âm mưu đeo lá thiếc, điều này không độc hại chút nào. Đó là bởi vì các phần bên trong của GeoDatabase thay đổi trên mỗi bản phát hành. Xuất bản một thông số đầy đủ về cơ bản sẽ đòi hỏi phải cung cấp tất cả các chi tiết về cách mọi thứ được duy trì và sau đó ghi lại cẩn thận các thay đổi về định dạng với mỗi bản phát hành hàng năm. Nó không có ý nghĩa. Vì vậy, API FileGDB, mặc dù nó không phải là thông số kỹ thuật, nhưng nó trừu tượng hóa tất cả những thay đổi nhỏ đó. Và bây giờ nó có thể được sử dụng đa nền tảng! Tâm trí bạn, đây là một bước tiến lớn! Xem xét tính chất bảo thủ của ESRI, đây chắc chắn là một phản ứng đúng hướng.
Tuy nhiên, hỗ trợ chỉ nhị phân không làm cho bất kỳ ai trong thế giới Nguồn mở quá hạnh phúc. Làm thế nào để bạn tận dụng lợi thế của việc chuyển một số mã để nói với một số hương vị khác của Linux nếu ESRI không hỗ trợ nó. Bạn không thể. Đây là điều làm cho Nguồn mở trở nên mạnh mẽ và bây giờ, bạn không thể tận dụng lợi thế này. Nếu ESRI quyết định ngừng hỗ trợ Debian, thì đó là nó. Bạn xong việc rồi. Và bạn không thể làm gì để thay đổi nó.
Không gian :
Spatialite là tuyệt vời vì nó có tất cả các chức năng miễn phí từ SQLite . SQLite được sử dụng ở mọi nơi. Nó có trên Điện thoại Android, trên iPhone / iPad, trên Firefox, trên Google Chrome, trên một số thiết bị nhúng thương mại - có thể tồn tại mãi mãi. Để thực sự biến nó thành Geoformat (và không chỉ thực hiện các thao tác hộp giới hạn câm), nó cần phải tận dụng cùng một thư viện hình học mà PostGIS sử dụng: GEOS . Đáng buồn thay, GEOS dựa trên một thư viện hình học tuyệt vời hơn nữa được gọi là JTS . Tất cả các thuật toán trong JTS đều cực kỳ mạnh mẽ, vậy vấn đề là gì?
Chà, JTS được cấp phép là LGPL mã nguồn mở và LGPL là một giấy phép lan truyền . JTS là LGPL, có nghĩa là GEOS là LGPL, có nghĩa là không gian được liên kết tĩnh với GEOS là LGPL. Điều này thật tệ Tại sao? Không cần giải thích quá nhiều về giấy phép nguồn mở , tôi có thể nói với bạn rằng, ví dụ, tôi không thể sử dụng spatialite trên một ứng dụng iPhone vì điều đó sẽ khiến toàn bộ ứng dụng của tôi tự động mở nguồn (iOS chỉ cho phép liên kết tĩnh). Bất kỳ loại giấy phép GPL nào (một cách hợp lý) đều làm cho crap ra khỏi ESRI, và vì vậy họ sẽ không chạm vào nó với một cột 10 feet. Do đó, ArcGIS, hệ thống GIS phổ biến nhất trên thế giới không (và có lẽ sẽ không bao giờ) hỗ trợ spatialite nguyên bản. Điều này tự động giết nó như một định dạng khả thi.
Và do đó, chúng tôi quay trở lại các shapefile crappy được hỗ trợ ở khắp mọi nơi.
Cập nhật :
Rõ ràng câu trả lời của tôi đã gây tranh cãi đến mức ai đó quyết định rằng bạn có thể tự do chỉnh sửa và thay đổi toàn bộ ý nghĩa câu trả lời của tôi để đưa ra quan điểm của họ. Xin đừng làm vậy. Nếu bạn không đồng ý với tôi, điều đó hoàn toàn tốt, chỉ cần đăng ý kiến của bạn trong một câu trả lời khác và để cộng đồng quyết định. Tôi đã ủng hộ các chỉnh sửa cho câu trả lời của tôi để hiển thị ý nghĩa ban đầu. Tôi đang thêm bản cập nhật này trong trường hợp bạn đọc câu trả lời được chỉnh sửa cho rằng sqlite là một định dạng khả thi.