06 truy van khong gian

22 0 0
06   truy van khong gian

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Truy vấn không gianKhái niệmCác ngôn ngữ truy vấnTruy vấn dữ liệu ngữ nghĩaTruy vấn dữ liệu không gian Trang 3 1.. Khái niệmCác thành phần không gian của đối tượng GIS Các nhà khoa

CHƯƠNG 4: TRUY VẤN DỮ LIỆU KHÔNG GIAN Bài Truy vấn không gian  Khái niệm  Các ngôn ngữ truy vấn  Truy vấn liệu ngữ nghĩa  Truy vấn liệu không gian  Các loại mục Khái niệm Các nhà khoa học định nghĩa: Không gian tập đối tượng mối quan hệ đối tượng Các đối tượng trừu tượng hóa qua khái niệm: Điểm (Point), Đường (Line), Đa giác (Polygon) 2D Điểm, Đường, Bề mặt (Surface), Khối (Volume) 3D Các thành phần không gian đối tượng GIS Khái niệm  Truy vấn không gian là:  Truy vấn vị trí  Truy vấn mối quan hệ  Truy vấn thuộc tính khơng gian khác  Truy vấn ngữ nghĩa là:  Truy vấn thuộc tính phi không gian (tên sông, tên chủ nhà, tôn giáo, dân số .)  Để truy vấn không gian CSDL quan hệ, có nhóm ngơn ngữ truy vấn chính:  Ngơn ngữ truy vấn không gian SQL mở rộng  Ngôn ngữ truy vấn không gian SQL hiển thị Một số thao tác kiểu liệu không gian  Kiểu điểm (Point) - Tìm khoảng cách điểm đường biên vùng - Tìm khoảng cách hai điểm  Kiểu đường (Line) - Kiểm tra phần giao điểm đường - Tính tốn chiều dài đường - Kiểm tra phần giao đường vùng  Kiểu vùng (Region) - Kiểm tra điểm thuộc vùng khơng? - Kiểm tra vùng có giao khơng? - Kiểm tra vùng có giao với hình chữ nhật khơng? - Tình tốn phần giao hình chữ nhật vung? - Tính tốn diện tích vùng - Kiểm tra cạnh chung vùng - Tính tốn phần giao vùng Một số thao tác kiểu liệu không gian  Hiển thị kết truy vấn ngữ nghĩa  Luận lí, Số, chuỗi, ngày tháng  Hiển thị kết truy vấn khơng gian:  Luận lí  Số  Đồ họa Các ngôn ngữ truy vấn  Ngôn ngữ truy vấn khơng gian SQL mở rộng gồm có:  SQL/OGIS, PSQL, QL/G, Spatial SQL, GeoSQL, CSQL, GEOQL, SQL/SDA  Ngôn ngữ truy vấn không gian SQL hiển thị gồm có  Cigales, Query-by-Visual-Example, SpatialQuery-by-Sketch  Trong đó, ngơn ngữ truy vấn không gian SQL mở rộng thường sử dụng ngôn ngữ phổ biến là:  SQL/OGIS, QL/G, SQL/SDA, PSQL So sánh ngôn ngữ Các đặc trưng truy vấn không gian  Tạm chia lớp thao tác truy vấn sau:  Toán tử toán hạng  Toán tử hai toán hạng  Khơng dùng tốn tử  Kí hiệu: Hai toán hạng: R1 Φ R2 Một toán hạng: Φ (R1) Các khả thay đổi đối tượng STT Hình học Topology Ngữ nghĩa 1 1 1 1 1 0 0 0 Minh họa 10 Các đặc trưng truy vấn không gian  Không dùng tốn tử, ví dụ tìm tọa độ Node  Tốn tử tốn hạng có kết Boolean: Dùng kiểm tra đối tượng không gian với số thuộc tính cho Tốn tử tốn hạng có kết vơ hướng: Dùng tính tốn chiều dài, diện tích, bán kính Tốn tử tốn hạng có kết không gian: Dùng quay đối tượng, dịch chuyển vật thể, thay đổi độ to, chuyển vật thể khơng gian D chiều thành vật thể khơng gian có số chiều bé hay lớn     Tốn tử tốn hạng kết khơng gian: Dùng tính tốn phần giao, phần hội đối tượng Tốn tử tốn hạng có kết Boolean: Gồm nhóm hàm     Xác nhận tính Topology đối tượng Xác nhận hướng đối tượng Xác nhận độ đo đối tượng Tốn tử tốn hạng có kết vơ hướng: Tìm khoảng cách đối tượng Ví dụ truy vấn  Xây dựng CSDL không gian tạo tập liệu có liên quan với không gian nhằm giải câu hỏi như:  Ngôi nhà A cách bệnh viện gần km?  Có đường giao (cắt) đường B? nằm thành phố M?  Cho biết tên phường thuộc quận 1?  Có nút giao thơng nằm đường D? nằm phường E?  5.Tính chiều dài sông C?  Cho biết tên sơng chảy qua Sài gịn?  Tính trữ lượng mỏ dầu X?  Bên trái, phải ngơi nhà A cơng trình gì?  Cho biết tỉnh/TP có dân số đơng nhất?  10 Các tỉnh/thành vào ranh giới với tỉnh X?  11.Cho biết hình ảnh phường 1, phường trộn lại?  12.Cho biết tên tỉnh có dịng sơng Cửu Long chảy qua? Tính chiều dài sơng ‘Cửu Long’ ?  13 Tên sông chảy qua Long An?  14 Cho biết tổng dân số nước Châu Âu?  15 Cho biết chu vi nước Việt Nam?  16 Liệt kê thủ đô nước Bắc Âu? Bài tập: phân lại câu truy vấn Truy vấn NN Truy vấn Truy vấn Truy vấn Truy vấn Truy vấn Truy vấn Truy vấn Truy vấn Truy vấn Truy vấn 10 Truy vấn 11 Truy vấn 12 Truy vấn 13 Truy vấn 14 Truy vấn 15 Truy vấn 16 Truy vấn KG Ví dụ SQL Server STLength Phương thức trả tổng chiều dài đối tượng Ví dụ: Declare @GeoLineString GEOMETRY; Set @GeoLineString = GEOMETRY::STLineFromText('LINESTRING (10 10, 15 20, 30 30)',0); Select @GeoLineString.STLength(); Kết trả về: 29.2080962648189  STArea Phương thức trả tổng diện tích đối tượng Ví dụ: Declare @GeoPolygon GEOMETRY; Set @GeoPolygon = GEOMETRY::STPolyFromText('Polygon ((20 10, 15 20, 30 30, 30 15, 20 10))',0); Select @GeoPolygon.STArea(); Kết trả về: 175  14 STIntersects Phương thức dùng để kiểm tra đối tượng có giao với đối tượng khác hay khơng, có trả giá trị 1, khơng có trả giá trị Ví dụ 1: kiểm tra mợt Line có giao với một Polygon hay không Declare @GeoLineString GEOMETRY; Declare @GeoPolygon GEOMETRY; Set @GeoLineString = GEOMETRY::STLineFromText('LINESTRING (10 10, 15 20, 30 30)',0); Set @GeoPolygon = GEOMETRY::STPolyFromText('Polygon ((20 10, 15 20, 30 30, 30 15, 20 10))',0); Select @GeoLineString.STIntersects(@GeoPolygon); Kết trả về:  Line có giao với Polygon Ví dụ 2: liệt kê điểm nằm một Polygon Declare @P1_Geom GEOMETRY; SELECT @P1_Geom = P.HINH_DANG FROM POLYGONS P WHERE P.ID = 118; SELECT * FROM POINTS P WHERE @P1_Geom.STIntersects(P.HINH_DANG) = 1;  15 STBuffer Phương thức trả tập hợp điểm (Polygon) mà có khoảng cách đến đối tượng nhỏ giá trị xác định Ví dụ: Declare @GeoLineString GEOMETRY; Set @GeoLineString = GEOMETRY::STLineFromText('LINESTRING (10 10, 15 20, 30 30)',0); Select @GeoLineString.STBuffer(5); Kết trả về: Line.STBuffer(5)  16 STDistance Phương thức trả khoảng cách từ đối tượng đến đối tượng khác Ví dụ 1: tính khoảng cách từ mợt Point đến mợt Line Declare @GeoLineString GEOMETRY; Declare @GeoPoint GEOMETRY; Set @GeoLineString = GEOMETRY::STLineFromText('LINESTRING (10 10, 15 20, 30 30)',0); Set @GeoPoint = GEOMETRY::STPointFromText('POINT (40 30)',0); Select @GeoLineString.STDistance(@GeoPoint);  Kết trả về: 10  17  Ví dụ 2: tính khoảng cách từ điểm (Point) có mã đến điểm (Point) có mã Declare @P1_Id int; Declare @P2_Id int; Declare @P1_Geom GEOMETRY; Declare @P2_Geom GEOMETRY; SELECT @P1_Geom = P.HINH_DANG FROM POINTS P WHERE P.ID = 1; SELECT @P2_Geom = P.HINH_DANG FROM POINTS P WHERE P.ID = 2; SELECT @P2_Geom.STDistance (@P1_Geom); 18  Ví dụ 3: danh sách điểm nằm vùng bán kính 2000 m xung quanh điểm (Point) có mã Declare @P1_Id int; Declare @P1_Geom GEOMETRY; SELECT @P1_Geom = P.HINH_DANG FROM POINTS P WHERE P.ID = 1; SELECT * FROM POINTS P WHERE P.HINH_DANG.STDistance (@P1_Geom) < 2000 AND P.ID 1; 19  Phương thức trả tập hợp điểm (Polygon) đối tượng mà khơng nằm đối tượng khác  Ví dụ: Declare @GeoPolygon1 GEOMETRY; Declare @GeoPolygon2 GEOMETRY; Set @GeoPolygon1 = GEOMETRY::STPolyFromText('Polygon ((15 10, 10 25, 30 20, 25 15, 15 10))',0); Set @GeoPolygon2 = GEOMETRY::STPolyFromText('Polygon ((20 10, 15 20, 30 30, 30 15, 20 10))',0); Select @GeoPolygon1.STDifference(@GeoPolygon2); 20

Ngày đăng: 17/02/2024, 11:36

Tài liệu cùng người dùng

Tài liệu liên quan