CHƢƠNG 4 . KẾT QUẢ NGHIÊN CỨU4.1 . Xây dựng cơ sở dữ liệu không gian cây xanh 4.1 . Xây dựng cơ sở dữ liệu không gian cây xanh
4.1.1 . Mô tả dữ liệu
- Dữ liệu không gian của cây xanh thể hiện bởi cặp tọa độ Lattitude, Longtitude dùng để hiển thị vị trí của cây trên bản đồ.
- Dữ liệu thuộc tính của cây nhƣ chiều cao, độ rộng tán cây, hình ảnh cây, đặc tính rụng lá của cây (theo loài, chi)….
4.1.2 . Thiết kế cơ sở dữ liệu cây xanh
Đề tài tiến hành phân tích, thiết kế CSDL với sự hỗ trợ của phần mềm PostgreSQL Database Modeler, CSDL đƣợc thiết kế với 6 thực thể cần quan tâm là: Thongtincay, theodoicay, chamsoc, congviec, nhanvien, vitrituoi.
- Mơ hình cơ sở dữ liệu.
Hình 4.1. Mơ hình cơ sở dữ liệu
Bảng 4.1. Mô tả bảng thông tin cây
thongtincay Thông tin cây
STT Tên thuộc tính Mơ tả chi tiết Kiểu dữ liệu
1 idcay Mã cây xanh (khóa Serial
chính)
2 tencay Tên cây xanh Text
3 xuatxu Xuất xứ Text
4 vitri Vị trí Geometry(POINT,
4326)
5 chatluong Chất lƣợng cây Text
6 idloai Mã loại cây Text
7 ngaytrong Ngày trồng Date
- Mô tả:
Mỗi cây xanh sẽ đƣợc quản lý bởi một idcay (mã cây xanh) để đáp ứng cho việc có nhiều ngƣời dùng nhập dữ liệu vào cùng lúc nên mã cây sẽ có kiểu dữ liệu là serial để tránh bị trùng lặp, mỗi mã cây sẽ đƣợc sử dụng cho các công việc nhƣ theo dõi, lịch chăm sóc…Thuộc tính của mỗi cây xanh sẽ gồm tên cây là tên thông thƣờng hoặc tên khoa học, xuất xứ cây sẽ là nguồn gốc xuất xứ ở trong nƣớc hay là cây ngoại lai du nhập vào, vị trí cây đƣợc thể hiện bằng cặp tọa độ longtitude và latitude dùng để xác định vị trí của cây trên bảng đồ, mã loại cây sẽ có mối quan hệ với bảng loại cây để xác định nhóm lồi của mỗi cây.
Bảng 4.2. Mô tả bảng loại cây
Loaicay Loại cây
STT Tên thuộc tính Mơ tả chi tiết Kiểu dữ liệu
1 idloai Mã loại cây Text
2 tenloai Tên loại Text
- Mô tả:
Loại cây đƣợc thể hiện là họ, chi của cây xanh, mỗi họ, chi sẽ bao gồm nhiều cây thuộc vào nhóm đó, việc định danh bảng loại cây sẽ giúp cho việc thống kê theo họ,
chi của toàn bộ cây xanh đƣợc dễ dàng, khi biết đƣợc mỗi cây xanh thuộc họ nào 33
ngƣời quản lý sẽ biết đƣợc những đặt điểm sinh thái cũng nhƣ chế độ chăm sóc của cây đó vì thế việc nhập thơng tin cây cần phải có thơng tin về loại cây.
Bảng 4.3. Mơ tả bảng theo dõi cây
Theodoicay Theo dõi cây
STT Tên thuộc tính Mơ tả chi tiết Kiểu dữ liệu
1 idtheodoi Mã theo dõi Integer
2 idcay Mã cây Text
3 ngaytheodoi Ngày theo dõi Date
4 suckhoe Sức khỏe Text
5 duongkinhtan Đƣờng kính tán cây Integer
6 duongkinh_1m3 Đƣờng kính thân cây Double precision
7 chieucao Chiều cao cây Integer
- Mô tả:
Thông tin khi tiến hành thu thập của mỗi cây bao gồm sức khỏe hiện tại của cây, chiều cao, đƣờng kính tán cây và đƣờng kính thân cây tính từ mặt đất lên 1.3m, mỗi mã theo dõi sẽ thể hiện cho mỗi lần tiến hành theo dõi trên một cây nhất định, mỗi cây sẽ có 1 hay nhiều ngày theo dõi.
Bảng 4.4. Mô tả bảng nhân viên
nhanvien Nhân viên
STT Tên thuộc tính Mơ tả chi tiết Kiểu dữ liệu
1 idnhanvien Mã nhân viên (khóa chính) Text
2 tennhanvien Tên nhân viên Text
3 chuyenmon Chuyên môn nhân viên Text
4 diachi Địa chỉ nhân viên character(50)
- Mô tả:
Bảng nhân viên dùng để lƣu trữ thông tin của nhân viên , mỗi nhân viên sẽ đƣợc quản lý bởi một mã nhân viên , thông tin nhân viên bao gồm tên, chuyên mơn,và địa chỉ.
congviec Cơng việc
STT Tên thuộc tính Mơ tả chi tiết Kiểu dữ liệu
1 idcongviec Mã cơng việc (khóa chính) Text
2 tencongviec Tên công việc Text
3 yeucaucongviec Yêu cầu công việc Text
- Mô tả:
Bảng công việc dùng để lƣu trữ thông tin về các công việc sẽ đƣợc thực hiện trong q trình chăm sóc cây, mỗi cơng việc sẽ đƣợc liên kết với bảng chăm sóc để dễ dàng bố trí lịch chăm sóc cây.
Bảng 4.6. Mơ tả bảng chăm sóc cây
chamsoc Chăm sóc
STT Tên thuộc tính Mơ tả chi tiết Kiểu dữ liệu
1 idchamsoc Mã chăm sóc (khóa chính) Text
2 ngaychamsoc Ngày chăm sóc Date
3 idnhanvien Mã nhân viên chăm sóc Text
4 idcongviec Mã cơng việc Text
5 idcay Mã cây Text
6 baocao Báo cáo Text
- Mô tả:
Mỗi cây sẽ đƣợc lên một lịch chăm sóc với mã cây cần chăm sóc, cơng việc chăm sóc đƣợc định danh trong bảng cơng việc, sẽ có nhân viên đảm nhận cơng việc định danh trong bảng nhân viên.
Từ mơ hình dữ liệu đã xây dựng công cụ Model Export của phần mềm PostgreSQL Database Modeler đƣợc sử dụng để tạo script file sẵn dùng cho việc ánh xạ mơ hình dữ liệu xuống hệ quản trị CSDL PostgreSQL/PostGIS.
Vào Export sau đó chọn script với định dạng SQL file tƣơng ứng với phiên bản PostgrestSQL sử dụng cho việc ánh xạ mơ hình dữ liệu xuống.
Hình 4.2. Tạo file script dùng cho việc ánh xạ mơ hình dữ liệu xuống hệ quản trị CSDL PostgreSQL/PostGIS
Tiếp theo ta chọn đƣờng dẫn, đặt tên file (cayxanh.sql) và chọn Export.
Tạo database trên PostgreSQL: Khởi động PostgreSQL, chọn CSDL “cayxanh”, vào menu Tools Query tool
Hình 4.3. Chọn cơng cụ Query tool trên menu Tools trong pgAdmin III
Hình 4.4. Nút lệnh Execute arbitrary SQL trên Tool bar trong pgAdmin III
Tiếp theo, cửa sổ Query xuất hiện, vào menu File Open, chọn đƣờng dẫn đến file cayxanh.sql
Hình 4.5. Mở file cayxanh.sql trong cửa sổ Query
Tiếp theo, thực thi truy vấn bằng cách chọn Execute Query trên tool bar
Hình 4.6. Thực thi file cayxanh.sql bằng lệnh Execute query
Sau khi thực thi lệnh Execute query, các bảng dữ liệu đƣợc mô tả sẽ đƣợc cài đặt trên hệ quản trị CSDLPostgreSQL/PostGIS.
Hình 4.7. Cấu trúc bảng CSDL sau khi dữ liệu được mô tả được cài đặt trên hệ quản trị CSDLPostgreSQL/PostGIS
4.1.3 . Tạo CSDL trên PostgreSQL/PostGIS4.1.3.1 . Tạo CSDL mới 4.1.3.1 . Tạo CSDL mới
Tạo một CSDL mới sẽ hổ trợ việc lƣu trữ dữ liệu không gian và dữ liệu thuộc tính, việc thao tác với dữ liệu đƣợc thực hiện bằng các câu lệnh SQL, database đƣợc tạo ra sẽ hỗ trợ việc lƣu trữ và hiển thị các lớp dữ liệu.
Login vào PostgreSQL bằng pdAdmin III, click phải vào Databases chọn “New database” để tạo một database hoàn tồn mới, hỗ trợ dữ liệu khơng gian, đặt tên là cayxanh. Mục Owner chọn mặc định là Postgres, mục Template chọn template_postgis_21, việc chọn Template đến database template_postgis_21 sẽ hỗ trợ các kiểu dữ liệu khơng gian, các hàm tính tốn liên quan đến tọa độ địa lí và khơng gian.
4.1.3.2 . Import dữ liệu vào PostgreSQL/PostGIS
Chọn CSDL “cayxanh” vừa mới tạo, vào menu Plugins chọn PostGIS Shapefile and DBF loader 2.0 để Import shapefile vào CSDL .
Hình 4.8.Menu Plugins trong
PostgreSQL Hoặc click chọn Execute the last used plugin
trên Tool bar.
Hình 4.9. Nút lệnh Execute the last used plugin trên Tool bar
Xuất hiện cửa sổ PostGIS Shapefile Import/Export Manager.
Hình 4.10. Cửa sổ PostGIS Shapefile Import/Export Manager
Chọn host kết nối sau đó chọn shapefile và Import vào CSDL, các lớp dữ liệu nền import vào CSDL gồm có:
- Lớp dữ liệu nền ranh giới hành chính của trƣờng ĐH Nơng Lâm Tp Hồ Chí - Lớp dữ liệu các giảng đƣờng của trƣờng ĐH Nơng Lâm Tp Hồ Chí Minh. - Lớp dữ liệu các khu kí túc xá sinh viên của trƣờng ĐH Nơng Lâm Tp Hồ Chí - Lớp dữ liệu đƣờng giao thơng tại trƣờng ĐH Nơng Lâm Tp Hồ Chí Minh. Sau khi import shapefile vào CSDL thì các record xuất hiện đầy đủ dữ liệu thuộc tính và dữ liệu khơng gian.
Hình 4.11. Dữ liệu bảng giảng đường trong database cayxanh
4.2 . Xây dựng các module quản lý cây xanh4.2.1 . Bản đồ hiển thị vị trí cây xanh 4.2.1 . Bản đồ hiển thị vị trí cây xanh
frames. Data Frame là một nhóm các lớp (Data layer) cùng đƣợc hiển thị trong một hệ quy chiếu. Mỗi Data Frame có thể có một hệ quy chiếu riêng. Các Data Frame đƣợc hiển thị riêng biệt trong chế độ Data View và có thể hiển thị trong cùng một Layout View. Thông thƣờng, một bản đồ đơn giản chỉ có một Data Frame và cần sử dụng nhiều Data Frame khi cần in thêm một số bản đồ phụ trên 1 mảnh bản đồ chính.
Bản đồ này đƣợc kết nối với Database đề hiển thị các lớp dữ liệu đã lƣu trữ trên Database, bên cạnh đó việc cập nhật dữ liệu trực tiếp trên bản đồ cũng sẽ đƣợc lƣu trữ ngƣợc lại Database.
Quy trình tạo một (Map document) liên kết với CSDL PostgreSQL đƣợc thực hiện nhƣ sau:
Chọn công cụ
Add Data-> Add Query Layer
(Add Query Layer) theo đƣờng dẫn File-> Trong hộp thoại New Query Layer ta chọn Connections… để tạo kết nối mới đến CSDL sau đó chọn New đề tạo mới một kết nối.
Hình 4.12. Hộp thoại New Query Layer
Trên hộp thoại Database Connection ta bắt đầu khởi tạo một kết nối đến CSDL cụ thể trong đề tài là đến CSDL PostgreSQL.
- Mục DBMS Client: Chọn hệ quản trị CSDL mà ta muốn kết nối. - Mục Data Source: Chọn nguồn kết nối dữ liệu.
- Mục Database: Chọn tên CSDL cần kết nối. 41
- Nhập Username và Password đề kết nối với CSDL sau đó chọn Test Connection đề kiểm tra lại kết nối.
Hình 4.13. Hộp thoại Database Connection
Sau khi thực hiện xong việc tạo kết nối thì tồn bộ dữ liệu trên Database sẽ hiển thị trên hộp thoại New Query Layer, dữ liệu muốn hiển thị lên bản đồ bằng cách Click chọn các bảng dữ liệu trong khung List of Tables khi đó các cột thuộc tính của bảng sẽ hiển thị trong khung Columns hoặc sử dụng các câu SQL đơn giản đề truy xuất dữ liệu trong khung Query.
Hình 4.14. Chọn dữ liệu trong hộp thoại New Query Layer
Bản đồ sau khi đƣợc kết nối với CSDL thì tồn bộ dữ liệu thuộc tính và khơng gian sẽ đƣợc cập nhật song song nghĩa là khi bản đồ đƣợc Load lên Form thì việc cập nhật dữ liệu trên Form sẽ đồng nghĩa với việc nhập dữ liệu trực tiếp trên giao diện làm việc của CSDL.
Hình 4.15. Bản đồ được load từ CSDL PostgreSQL
Để hiển thị dữ liệu trên ArcGIS vào Form trên giao diện visual studio thì ngƣời dùng chỉ việc khai báo và truy xuất các cơng cụ có sẳn. Ví dụ sau đây mơ tả quy trình hiển thị một bản đồ dạng Shapefile vào form bằng ngôn ngữ C#.
Bƣớc 1: Tạo Project mới gồm form hiển thì dùng để hiển thị bản đồ, form này sẽ chứa toàn bộ các khung nhìn của Arcmap bao gồm Map Control, Layer Control, Toolbar Control,…
Bƣớc 2: Chọn các công cụ hiển thị trong thanh công cụ ArcGIS Windows Form Các chức năng đƣợc chọn bao gồm:
1. ArcGIS Engine TOCCOntrol là cửa sổ hiển thị các lớp bản đồ mà chƣơng trình Add vào.
2. ArcGIS Engine MapControl là cửa sổ thể hiện nộp dung của các lớp bản đồ mà chƣơng trình Add vào.
3. ArcGIS Engine Toolbar Control là thanh cơng cụ để Add các tool của ArcGIS Engine vào nhƣ: Add, Save, Zoom, Pan, Full Extent,…
4. ArcGIS Engine PageLayoutControl là khung nhìn bản đồ.
5. Licence Control dùng để kích hoạt các gói cơng cụ của ArcGIS Windows Form.
Bên cạnh đó bộ cơng cụ của ArcGIS Windows Form cịn có nhiều cửa sổ hiển thị và phân tích khác nhƣng do đề tài không sử dụng nên không cần hiển thị các công cụ này.
Bƣớc 3: Kích hoạt các bộ thƣ viện của ArcGIS Engine trên Visual Studio bằng cách nạp các bộ thƣ viện vào Class kết nối.
Các bộ thƣ viện bao gồm: ESRI.ArcGIS.Carto ESRI.ArcGIS.Controls ESRI.ArcGIS.Display ESRI.ArcGIS.Geometry ESRI.ArcGIS.SystemUI ESRI.ArcGIS.esriSystem
Bƣớc 4: Chọn bản đồ để hiển thị trên From.
Chọn đƣờng dẫn của bản đồ đến các khung nhìn MapControl,
PageLayoutControl sau đó chọn các Tool hổ trợ trong thanh Toolbar Control.
4.2.2 . Thêm dữliệu cây xanh
- Chức năng:
Form thêm cây đƣợc sử dụng khi cần thêm mới thông tin cây xanh. - Thao tác thực hiện:
Sau khi đăng nhập vào ứng dụng thành công ta tiến hành thêm mới một dữ liệu cây xanh bằng 2 cách:
Cách 1: Double Click vào bản đồ tại vị trí cần thêm cây nếu đã định vị chính xác vị trí cây trên bản đồ, thao tác này đƣợc thực hiện thì Form nhập cây sẽ lấy hay giá trị x,y tƣơng ứng với cặp tọa độ tại vị trí đó và truyền vào Textbox, việc cịn lại là nhập các thơng tin về thuộc tính cây để hồn tất cơng việc.
Cách 2: Nhập mới thông tin cây xanh bằng cách Click vào nút (thêm) để thêm các thông tin của cây xanh cần nhập thêm.
Hình 4.17. Form thêm mới cây xanh
- Mơ tả:
Trên form Nhập thêm cây thì mỗi đơn vị cây xanh cần nhập sẽ gồm:
Tên Chi(Họ): Là tên chi hoặc họ của cây, ngƣời dùng chỉ cần thao tác chọn tên chị hoặc họ từ ComboBox do dữ liệu về chi, họ cây đã đƣợc lƣu trữ trên bảng Loại Cây trên CSDL mỗi đơn vị Chi(Họ) sẽ tƣơng ứng với hình đại diện, nếu có một đơn vị cây thuộc một lồi mới thì ta tiến hành thêm mới dữ liệu loại cây trên Tab danh sách cây.
Vị trí: Vị trí của cây là cặp tọa độ Lattitude và Longtitude cặp tọa độ này khi nhập vào CSDL sẽ đƣợc chuyển đổi vào cột tọa độ theo kiếu dữ liệu là Geometry, việc chuyển đổi này sẽ giúp cho việc hiển thị đƣợc vị trí khơng gian của cây lên bản đồ.
Các thông tin nhƣ Tên cây, Xuất xứ, Ngày trồng, Chất lƣợng cần đƣợc nhập vào Textbox hoặc chọn từ ComboBox để thêm các thông tin cần thiết của cây sau đó hồn tất bằng cách Click vào nút (nhập) trên form.
Thao tác nhập kết thúc bằng thông báo nhập thành cơng với tên cây vừa nhập.
Hình 4.18. Thơng báo nhập thành cơng cây mới
4.2.3 . Cập nhật thuộc tính cây xanh
- Chức năng:
Form chỉnh sửa thông tin cây xanh đƣợc dùng khi ngƣời dung muốn cập nhật thông tin cây xanh.
- Thao tác thực hiện:
Để chỉnh sửa thông tin của một cây xanh ta Click chọn vào nút (sửa) trên Tab danh sách cây.
Hình 4.19. Form chỉnh sửa thơng tin cây xanh
- Mô tả:
Trên form chỉnh sửa cây ta chọn ID cây cần chỉnh sửa từ ComboBox “ID Cây” sau khi chọn Id cây thì tồn bộ thơng tin của cây đƣợc chọn sẽ đƣợc đỗ vào các textbox tƣơng ứng, hoặc click vào nút (refresh) để load tất cả các cây lên datagrid sau đó click vào dịng thuộc tính của cây cần chỉnh sửa.
Để tiến hành chỉnh sửa ngƣời dùng sẽ thay đổi thông tin tƣơng ứng trên các textbox sau đó hồn tất bằng cách click vào nút (sửa) trên form.
Cơng việc chỉnh sửa hồn tất bằng thơng báo sửa thành cơng và Id cây vừa đƣợc chỉnh sửa.
Hình 4.20. Thông báo chỉnh sửa thành công cây xanh
4.2.4 . Tìm kiếmdữ liệu cây xanh
- Chức năng:
Form tìm kiếm thực hiện cơng việc tìm kiếm thơng tin của cây xanh trên CSDL. - Thao tác thực hiện:
Để tìm kiếm thơng tin của một cây xanh ta Click chọn vào nút (tìm) trên Tab danh sách cây.
Hình 4.21. Form tìm kiếm thơng tin cây xanh
- Mơ tả:
Để tiến hành tìm thơng tin của cây xanh ta có thể nhập trực tiếp id cây vào ComboBox ID Cây hoặc chọn các ID cây đã đƣợc lƣu trên CSDL tại Combobox ID Cây sau đó chọn nút (tìm) trên form.
Kết quả là thơng tin của cây xanh cần tìm sẽ hiển thị trên datagrid. Quá trình tìm kiềm kết thúc ta chọn nút (thốt) trên form.
4.2.5 . Xóadữ liệu cây xanh
- Chức năng:
Form xóa cây thực hiện cơng việc xóa thơng tin của cây xanh trên CSDL. - Thao tác thực hiện:
Để xóa thơng tin của một cây xanh ta Click chọn vào nút (xóa) trên Tab danh sách cây.
Hình 4.23. Form xóa thơng tin cây xanh
- Mơ tả:
Để tiến hành xóa thơng tin của cây xanh ta có thể nhập trực tiếp id cây vào ComboBox ID Cây hoặc chọn các ID cây đã đƣợc lƣu trên CSDL tại Combobox ID