Tổng quan về PostGIS - PostGIS là gì (Phần 2)

vào lúc 07:12
    PostGIS là 1 phần mở rộng của hệ quản trị CSDL PostgreSQL được cung cấp miễn phí cho phép CSDL quản lý các đối tượng GIS. Trên thực tế, PostGIS là một hợp phần quản lý thông tin không gian của PostgreSQ, nó cho phép quản trị CSDL không gian dùng trong hệ thống thông tin địa lý (GIS), giống như SDE của ESRI hoặc Oracle’s Spatial extension. PostGIS hỗ trợ cho OpenGIS vì "tính năng kỹ thuật SQL đơn giản" và đã được chứng nhận phù hợp với “Kiểu và Chức năng" của OpendGIS.



    PostGIS là một dự án mã nguồn mở về CSDL không gian đang được nghiên cứu và phát triển bởi Refractions Research. PostGIS được phát hành theo GNU General Public License (phát hành miễn phí bản quyền sử dụng và phát triển). Refractions Research tiếp tục phát triển PostGIS, bổ sung các công cụ giao diện với người dùng, hỗ trợ các topology cơ bản, chuẩn hóa dữ liệu, chuyển đổi tọa độ, lập trình API và nhiều hơn nữa. Trong tương lai của dự án sẽ phát triển hỗ trợ topo đầy đủ, hỗ trợ raster, tính toán mạng lưới và định tuyến, xây dựng bề mặt ba chiều, các đường cong (curves), uốn khúc (splines) và các tính năng khác.
Vị trí PostGIS trong PostgreSQL
a)  Ưu điểm:
Ø PostGIS - một CSDL không gian có những ưu điểm để xử lý các thông tin về hình dạng không gian như trả lời các truy vấn về những đối tượng ở gần một vị trí nào đó, những đối tượng nằm trong phạm vi hoặc ở vùng phụ cận của một đối tượng khác,  phạm vi của một vùng nơi mà có một hoạt động nào đó đang xảy ra là gì, những đối tượng nào nằm bên trong một đối tượng khác.
Ø PostGIS có khả năng lưu trữ và thao tác với dữ liệu rất tốt. Nó cung cấp những khả năng xử lý thông tin địa lý bên trong một môi trường cơ sở dữ liệu. Những hàm SQL bao gồm buffer, intersection, within, distance…Những hàm này lấy dữ liệu hình học từ các cột trong bảng PostGIS và trả về những hình học mới hoặc những thông tin khác. Ví dụ như hàm distance sẽ tính toán khoảng cách giữa các đặc điểm (feature) không gian, và hàm sẽ trả về một hình mới là một đa giác được làm vùng đệm tại một khoảng cách nào đó từ feature nguồn.
Ø PostGIS cho phép dễ dàng khi kết nối dữ liệu không gian với dữ liệu phi không gian trong một môi trường dữ liệu không gian và cung cấp đầy đủ sức mạnh của ngôn ngữ truy vấn cấu trúc (SQL) để thực hiện những phân tích khác chẳng hạn như tính chi phí trung bình cho một vùng địa lý?, ...
Ø PostGIS còn hỗ trợ thêm GiST-based and R-Tree spatial indexes, đây là điểm riêng biệt nhất của PostGIS so với các hệ quản trị CSDL khác giúp PostGIS dễ dàng quản lý, lưu trữ, khai thác và tìm kiếm thông tin không gian.
b) Một số đối tượng không gian theo chuẩn OGC trong PostGIS
Ø PostGIS hỗ trợ các đối tượng và các hàm được định nghĩa chi tiết trong OGC "Simple Features for SQL". Với PostGIS ta có thể lưu trữ các điểm, đường, vùng, tập hợp điểm, tập hợp đường, tập hợp vùng và các thông tin hình học khác. PostGIS mở rộng chuẩn với sự hỗ trợ cho các tọa độ dạng 3DZ,3DM và 4D.
Ø OpenGIS định nghĩa 2 chuẩn để diễn tả các đối tượng không gian: Well-known Text (WKT) và Well-Known Binary (WKB). Cả Well-known Text và Well-Known Binary đều bao gồm thông tin về kiểu của đối tượng và tọa độ của nó.
Ø PostGIS được hiện thực theo bản đặc tả “OGC Simple Feature Specifications” cho chuẩn SQL. Bản đặc tả này định nghĩa những thuật toán và lược đồ SQL để thêm (insert), truy vấn (query), thao tác (manipulate) và xóa (delete) những đối tượng không gian. Những tọa độ của các đối tượng không gian được lưu trữ trong các bảng Feature. Mỗi một bảng Feature có thể chứa một kiểu đối tượng geometry là điểm (point, multipoint), đường (linestring, multilinestring), đa giác (polygon, multipolygon và geometry collection). Những tọa độ của mỗi đối tượng được lưu trữ trong một trường với  một kiểu riêng biệt.
Ø Kiểu mô tả một tập hợp tọa độ không gian của đối tượng là WKT (Well Known Text). Khi những đối tượng không gian được đưa vào cơ sở dữ liệu thì PostGIS sẽ chuyển chúng từ WKT sang WKB (Well Known Binary) để việc lưu trữ được tốt hơn.
Ø Ví dụ về miêu tả WKT:
ü POINT(0 0 0) -- XYZ
ü SRID=32632;POINT(0 0) -- XY with SRID
ü POINTM(0 0 0) -- XYM
ü POINT(0 0 0 0) -- XYZM
ü SRID=4326;MULTIPOINTM(0 0 0,1 2 1) -- XYM with SRID
ü MULTILINESTRING((0 0 0,1 1 0,1 2 1),(2 3 1,3 2 1,5 4 1))
ü POLYGON((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0))
ü MULTIPOLYGON(((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0)),((-1 -1 0,-1 -2 0,-2 -2 0,-2 -1 0,-1 -1 0)))
ü GEOMETRYCOLLECTIONM(POINTM(2 3 9), LINESTRINGM(2 3 4, 3 4 5))
Ø Siêu dữ liệu từ mỗi bảng Feature được tập hợp lại và lưu trữ trong bảng geometry_columns để tổ chức kiểu và hệ thống tọa độ của dạng geometry được chứa trong đó.

Tại sao phải dùng PostGIS?

1)     Lợi ích:
Ø Chi phí, giá thành sản phẩm thấp mà hiệu quả
Giá cả thấp mà chức năng lại nhiều và cao.
Ø Cách lưu trữ đơn giản.
PostGIS Polygon
POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))
Oracle Polygon
MDSYS.SDO_GEOMETRY( 2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1),
MDSYS.SDO_ORDINATE_ARRAY(0,0, 0,1, 1,1,1,0, 0,0))
Ø Bảo mật nhờ mở.
Ø Tính tương thích.
Ø Hiệu năng.
Ø Không lệ thuột vào nhà sản xuất.
2)     Hạn chế:
Ø  Đa dạng và phức tạp
Ø  Sự dư thừa, lãng phí
Ø  Thiếu các ứng dụng chuyên biệt cần thiết
Ø  Bất tiện (tương đối khó sử dụng).

Riêng Postgres có tính ưu việt cao hơn và những hạn chế như phức tạp , khó sử dụng không còn nữa. Postresql lại được phát triển mạnh mẽ nên hầu hết các chức năng của DBMS được hoàn thiện khá đầy đủ PostGIS được tích hợp vào postgres và các hàm xử lý không gian khá đơn giản , được hổ trợ khá nhiều. 

Mặt khác bạn có thể tham phát triển bất kỳ một chức năng nào của DBMS này.
Theo thông tin từ phía các bạn bè nước ngoài , hiện nay postgresql được dùng để giảng dạy trong các trường đại học về CNTT như : Đức , Úc,... Đủ thấy được nó phổ biến như thế nào.
Hãy like nếu bài viết có ích →
Kết bạn với gisgpsrs trên Facebook để nhận bài viết mới nóng hổi

Không có nhận xét nào:

Đăng nhận xét