Nhóm hàm đưa ra đối tượng hình mới

Một phần của tài liệu Mở rộng truy vấn không gian trong hệ quản trị cơ sở dữ liệu Postgresql (Trang 40 - 42)

Chương 2 POSTGRESQL VÀ POSTGIS

2.3. Hàm trong PostGIS

2.3.5. Nhóm hàm đưa ra đối tượng hình mới

• ST_Intersection()

- Chức năng của hàm ST_Intersection là trả về một hình, hiển thị phần chung giữa hình A

và hình B. Nếu hình A và hình B khơng có bất kỳ điểm chung thì trả về đối tượng hình rỗng.

- Cú pháp : geometry ST_Intersection(geometry A, geometry B);

- Ví dụ : SELECT ST_AsText(ST_Intersection(‘POINT(0 0)’::geometry, ‘LINESTRING(2 0, 0 2)’::geometry));

Giá trị trả về EMTRY

SELECT ST_AsText(ST_Intersection(‘POINT(0 0)’::geometry, ‘LINESTRING (0 0,0 2)’::geometry));

Giá trị trả về : POINT(0 0). • ST_Difference()

- Chức năng của hàm ST_Difference là trả về một hình hiển thị phần của hình A mà khơng giao với hình B. Chúng ta có thể hiểu theo cơng thức sau :

ST_Difference() = GeometryA – ST_Intersection(A, B).

Nếu A hồn tồn nằm trong B, thì A và B khơng có điểm khác biệt, nghĩa là, hàm ST_Difference() trả về giá trị rỗng.

Hình 2-4 : Minh họa hàm ST_Difference() Hình 2-4 biểu diễn 2 đường thẳng A và B giao nhau.

Hình 2-5 biểu diễn điểm khác nhau giữa hai đường A và B là phần của đường A không giao với đường B

- Cú pháp : geometry ST_Difference(geometry geomA, geometry geomB); - Ví dụ : SELECT ST_AsText (ST_Difference(

ST_GeomFromText(‘LINESTRING(50 100, 50 200)’), ST_GeomFromText(‘LINESTRING(50 50, 50 150)’))); Giá trị trả về LINESTRING (50 150, 50 200).

• ST_Union()

- Trả về một hình hiển thị hợp của các hình. Kiểu trả về của hàm có thể là MULTI*, hình đơn lẻ hoặc tập hợp các hình.

- Cú pháp : geometry ST_Union (geometry g1, geometry g2)

- Ví dụ : SELECT ST_AsText(ST_Union(ST_GeomFromText(’POINT(1 2)’), ST_GeomFromText(’POINT(-2 3)’) ) ); Giá trị trả về : MULTIPOINT (-2 3, 1 2). SELECT ST_AsText(ST_Union(ST_GeomFromText(‘POINT(1 2)’), ST_GeomFromText(‘POINT(1 2)’))); Giá trị trả về : POINT (1 2) • ST_SymDifference()

- Chức năng của hàm ST_SymDifference trả về một hình hiển thị phần của hình A và hình B khơng giao nhau. Nó được gọi là sự khác nhau đối xứng lý do : ST_SymDifference(A, B) = ST_SymDifference (B, A). Chúng ta có thể hiểu theo công thức sau :

ST_SymDifference (A, B) = ST_Union (A, B) – ST_Intersection (A, B).

Hình 2-5 : Minh họa hàm ST_SymDifference().

Hình 2-7 biểu diễn kết quả của hàm ST_SymDifference(), nó trả về 1 phần của đường A và 1 phần của đường B mà không giao nhau.

- Cú pháp : geometry ST_SymDifference (geometry geomA, geometry geomB); - Ví dụ : SELECT ST_AsText( ST_SymDifference (

ST_GeomFromText(‘LINESTRING (50 100, 50 200)’), ST_GeomFromText(‘LINESTRING (50 50, 50 150)’))); Giá trị trả về : MULTILINESTRING ((50 150, 50 200),(50 50, 50 100));

Một phần của tài liệu Mở rộng truy vấn không gian trong hệ quản trị cơ sở dữ liệu Postgresql (Trang 40 - 42)

Tải bản đầy đủ (PDF)

(84 trang)