Trang 1 Bài tập thực hành môn Hệ thống thông tin địa lý 3 chiều - IE402 Bài 1: Biểu diễn không gian đơn giản lên CSDL Họ và Tên: Nguyễn Thanh Hiếu MSSV: 20521328Bài làmBài 1: Hãy tìm hiể
Trang 1Bài tập thực hành môn Hệ thống thông tin địa lý 3 chiều - IE402
Bài 1: Biểu diễn không gian đơn giản lên CSDL
Họ và Tên: Nguyễn Thanh Hiếu
MSSV: 20521328
Bài làm
Bài 1: Hãy tìm hiểu và trình bày các hàm (ít nhất 4 hàm) phục vụ cho đối tượng về đia lý (geometry) trong SQL Server Các hàm đó được gọi là OGC Methods on Geometry
1 STIntersects(other_geometry): Hàm này kiểm tra xem hai đối tượng địa lý có
giao nhau hay không (chung 1 phần nào đó hay không) Nếu có giao nhau, nó trả
về giá trị 1 (TRUE); ngược lại, trả về 0 (FALSE)
2 STDifference(other_geometry): Hàm này trả về sự khác biệt giữa hai đối tượng
geometry Tìm ra phần không trùng nhau giữa chúng
3 STArea(): Hàm này tính diện tích của một đối tượng địa lý, như một đa giác hoặc
một vùng
4 STDistance(other_geometry): Hàm này thường được sử dụng để tính khoảng
cách giữa hai điểm, đường thẳng hoặc vùng địa lý
5 STLength(): Hàm này trả về chiều dài của đối tượng LineString hoặc
MultiLineString
6 STUnion(other_geometry): Hàm này trả về hợp của hai hoặc nhiều đối tượng
geometry Nó kết hợp các đối tượng lại với nhau để tạo ra một đối tượng lớn hơn
Bài 2: Dựa vào các hàm tìm hiểu được, hãy thực hiện các truy vấn sau đối với CSDL Farm:
a) Hãy tính diện tích của đối tượng paddock và island
Code:
Tính diện tích của đối tượng "paddock"
SELECT id_poly , name , geom STArea () AS Area
FROM polygon
WHERE name 'paddock' ;
Tính diện tích của đối tượng "island"
SELECT id_poly , name , geom STArea () AS Area
FROM polygon
WHERE name 'island' ;
Trang 2Kết quả:
b) Tính diện tích của tất cả các đối tượng đa giác có trong CSDL
Code:
SELECT id_poly , name , geom STArea () AS Area FROM polygon
Kết quả:
c) Hãy tìm và liệt kê xem các con vật nào thuộc vào khu vực của paddock
Code:
SELECT id_point , name , geom STIntersects (( SELECT geom FROM polygon WHERE id_poly =
1 )) FROM point
Kết quả:
d) Hãy tìm và liệt kê xem các con vật nào thuộc vào khu vực của island
Code:
SELECT id_point , name , geom STIntersects (( SELECT geom FROM polygon WHERE id_poly =
4 )) FROM point
Trang 3Kết quả:
e) Hãy tìm và liệt kê xem các con vật nào thuộc vào khu vực của building
Code:
SELECT id_point , name , geom STIntersects (( SELECT geom FROM polygon WHERE id_poly =
3 )) FROM point
Kết quả:
f*) Hãy tìm và liệt kê xem các con vật nào thuộc vào khu vực của paddock Nếu thuộc vào khu vực của paddock thì trả về INSIDE, không thuộc thì trả về NOT INSIDE
Code:
CREATE FUNCTION intersect_geom ( @geom1 geometry , @geom2 geometry ) RETURNS VARCHAR ( 20 )
AS
BEGIN
IF ( @geom1 STIntersects ( @geom2 )= 1
RETURN 'INSIDE'
Trang 4RETURN 'OUTSIDE'
END ;
SELECT id_point , name , dbo intersect_geom ( geom , ( SELECT geom FROM polygon WHERE id_poly = 1 )) FROM point
Kết quả:
g) Có bao nhiêu con vật trong khu vực island?
Code:
SELECT COUNT (*) AS NumAnimalsInIsland
FROM point
WHERE dbo intersect_geom ( geom , ( SELECT geom FROM polygon WHERE id_poly = 4 ))
'INSIDE' ;
Kết quả:
h) Có bao nhiêu con vật ngoài khu vực building?
Code:
SELECT COUNT (*) AS NumAnimalsOutBuilding
FROM point
WHERE dbo intersect_geom ( geom , ( SELECT geom FROM polygon WHERE id_poly = 3 ))
'OUTSIDE' ;
Kết quả:
Trang 5i) Hãy tính chiều dài của cây cầu (bridge)
Code:
SELECT id_line , name , geom STLength () AS Chiều_dài
FROM line
Kết quả:
k) Hãy tính khoảng cách của con vật có tên là fox tới các con vật khác
Code:
SELECT p1 name AS FOX , p2 name AS Other_Animals , p1 geom STDistance ( p2 geom ) AS Distance
FROM point p1 , point p2
WHERE p1 name 'fox' AND p2 name <> 'fox' ;
Kết quả:
l**) Con vật nào cách xa nhất so với con cáo (fox)?
Code:
SELECT TOP 1 p2 name AS Other_Animals , p1 name AS FOX , p1 geom STDistance ( p2 geom ) AS Max_Distance
FROM point p1 , point p2
WHERE p1 name 'fox' AND p2 name <> 'fox'
ORDER BY Max_Distance DESC ;
Kết quả:
Trang 6Bài 3: Hãy tìm hiểu các công cụ hay phần mềm giúp hiển thị trực quan dữ liệu không gian có sẵn
1 Microsoft Report Builder: là một công cụ phần mềm của Microsoft dùng để thiết
kế và tạo ra báo cáo Nó hoạt động tốt trong việc hiển thị dữ liệu không gian thông qua các báo cáo tương tác
2 ArcGIS: là một hệ thống thông tin địa lý mạnh mẽ cho việc tạo và quản lý bản đồ, phân tích dữ liệu địa lý và hiển thị trực quan dữ liệu không gian Nó cung cấp nhiều công cụ để tạo bản đồ và thực hiện phân tích không gian
3 Google Earth Pro: là một ứng dụng miễn phí của Google thực hiện thám hiểm và hiển thị dữ liệu không gian trên toàn thế giới Nó cung cấp nhiều công cụ tạo bản
đồ và định vị
4 GeoServer: GeoServer là một dự án mã nguồn mở cho phép bạn cung cấp dữ liệu không gian thông qua các tiêu chuẩn web như WMS (Web Map Service) và WFS (Web Feature Service)
5 PostGIS: PostGIS là một tiện ích mở rộng cho cơ sở dữ liệu PostgreSQL cho phép lưu trữ và truy vấn dữ liệu không gian Nó thường được sử dụng trong các ứng dụng web GIS
Bài 4: Sử dụng công cụ Microsoft Report Builder để trực quan hoá các đối tượng hình học trong bảng line, point, và polygon.