Phần mềm này được xây dựng với mục đích minh họa một số chức năng của thư viện dịch vụ GIS, một số module trong phần mềm được lấy ra từ phần mềm “Quản lý công tác thủy lợi” sử dụng mã nguồn đóng đã được đưa vào ứng dụng cho tỉnh Hưng Yên và 3 huyện của tỉnh Thanh Hóa.
Hình 4.7 Giao diện chính của ứng dụng quản lý công trình thủy lợi b) Cập nhật thông tin
Cập nhật các tính chất của từng công trình thủy lợi
Trên thanh công cụ cho phép tìm kiếm nhanh đến địa danh cần truy vấn thông tin. Đầu tiên chọn một trong các huyện của tỉnh Hưng Yên được liệt kê khi kích chuột trái vào hộp danh sách bên trái, hộp danh sách bên phải sẽ liệt kê các xã thuộc huyện được chọn. Khi chọn xã hoặc huyện thì phần mềm sẽ chuyển khung nhìn về ranh giới của lãnh thổ được chọn. Toàn bộ các thông tin xuất hiện theo các thao tác đều được truy vấn từ cơ sở dữ liệu trên máy chủ.
Hình 4.8 chỉ ra cách hiển thị thông tin của từng đối tượng địa lý thuộc các lớp bản đồ được quản lý. Dữ liệu được đọc từ trên máy chủ PostgreSQL, hiển thị trên grid và có thể cập nhật dữ liệu lên máy chủ nếu có sự thay đổi.
Hình 4.8 Lấy thông tin thuộc tính của kênh D5a Tải lớp bản đồ về máy trạm
Có hai trường hợp tải dữ liệu đồ họa từ cơ sở dữ liệu không gian trên máy chủ GIS về phần mềm máy trạm của người dùng là:
• Đồng bộ hóa dữ liệu giữa máy chủ và máy khách.
• Phần mềm máy khách chưa có lớp bản đồ mà máy chủ GIS có, cần tạo mới shapefile trên máy khách và đọc dữ liệu đồ họa về, cập nhật vào shapefile đó.
Hình 4.10 Kết quả sau khi tải dữ liệu về c) Các phép truy vấn không gian
Minh họa mã nguồn:
CCWRS_SpatialRelationship* pSR = new CCWRS_SpatialRelationship; CCWRS_Stream* pStream = new CCWRS_Stream;
STREAM stream=-1;
pStream->CWRS_Stream_create(pDoc->m_Connect,&stream); if(stream!=-1)
{
if(m_StrTenCT=="tl_kenh_tuoi" || m_StrTenCT =="tl_kenh_tieu") {
rc = pSR->CWRS_SpatialRelationship_Search(pDoc->m_Connect, stream, sqlfield, m_StrTenCT, m_HeaderLayerName, ST_CROSSES, where);
}
else if(m_StrTenCT =="tl_trambom_tuoi" || m_StrTenCT
=="tl_trambom_tieu") {
rc = pSR->CWRS_SpatialRelationship_Search(pDoc->m_Connect, stream, sqlfield, m_StrTenCT, m_HeaderLayerName, ST_CONTAINS, where);
} }
Các tham số của chức năng truy vấn không gian:
pDoc->m_Connect là con trỏ kết nối CSDL;
stream là luồng của máy khách tạo ra;
sqlfield là tên các thuộc tính lấy về;
m_StrTenCT là tên lớp bản đồ của các đối tượng địa lý được tìm
kiếm;
m_HeaderLayerName là tên lớp bản đồ chứa không gian tìm kiếm;
ST_CROSSES, ST_CONTAINS là các tham số lựa chọn cách tìm kiếm
không gian;
where là điều kiện để lấy ra đối tượng địa lý của lớp bản đồ
m_HeaderLayerName.
Hình 4.12 Liệt kê tất cả các kênh tiêu đi qua địa bàn xã Thành Long huyện Yên Mỹ