Tải bản đầy đủ (.pdf) (7 trang)

20521328 nguyễn thanh hiếu btth1

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (514.6 KB, 7 trang )

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: 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';


Kế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


Kế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'


RETURN '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ả:


i) 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ả:


Bà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 tồ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 hố các đối tượng
hình học trong bảng line, point, và polygon.





×