Hiển thị các bài đăng có nhãn QGIS. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn QGIS. Hiển thị tất cả bài đăng

Thứ Tư, 12 tháng 2, 2025

 QGIS tips #2 kế thừa Tip #1, ta sẽ thiết kế layer point (hoặc line) chuyên nghiệp và gọn gàng hơn.

Khi đăng ký account Qfield thì bạn để ý có các Sample projects. Hãy thử mở lên tham khảo nhé.

Layer point được thiết kế đẹp, tiện dụng và có nhiều fields rất hay (x,y,z, bố trí các tab menu ...)

Vậy làm sao ta thiết kế được kiểu như họ, để nhóm gọn các trường thông tin cần thu thập lại từng tab như này:


Tải project BEE này về QGIS nghiên cứu tại địa chỉ sau: https://docs.qfield.org/get-started/sample-projects/
 Xem video giới thiệu về Project này tại: 


Ở project BEE ví dụ này, ta thấy lớp point thu thập thông tin họ bố trí rất gọn và dễ theo dõi. Đầu tiên là Tab các thông tin chung: số lượng tổ, loài, số lượng, Tab 2 là ảnh chụp, Tab 3 là các sự kiện v.v.v 
Các tab này như kiểu 1 trang web vậy.
Để thiết kế các tab này các bạn phải làm trên Qgis nhé. Đầu tiên vẫn là phải có các trường (fields) mà ta cần thu thập. Tham khảo Tip #1.


Mấu chốt là vào layer point điểm khảo sát đó, Properties/ Attributes Form: chọn kiểu thiết kế Drag & Drop Designer.


Để tạo Tab gom các field vào 1 chỗ, ta bấm vào nút (+) trên hình bước 1. sau đó điền tên tab ở bước 2, chọn Type là Row (3), rồi ấn OK. Tab sẽ nhảy vào phần Form layout. PHần này ta kéo các field cần thu thập vào từ bên tay trái (như hình trên là các trường Name, East, North, RL ...) -- Kéo thả nhé. Sau đó chọn nhiều field ở phần Form layout rồi kéo thả vào cái tab ta vừa tạo (kiểu như ta tạo các mục con cho mục lớn là Tab đó). Vậy là xong, cứ tương tự làm thì sẽ có nhiều tab thôi.

---> Viết cho khỏi quên.
Dù viết tip cho Qfield nhưng vẫn recommend dùng MerginMap vì dễ tạo group, sync đồng bộ dễ dàng, nhanh chóng. Lớp point này cũng dùng được cho MerginMap nhé, vì nó tạo từ Qgis mà. Duy phần lấy độ cao, nếu hàm kia không được thì dùng hàm khác phù hợp!

Hàm kia là hàm nào, xem tip #1



Thứ Sáu, 7 tháng 2, 2025

 Với nhiệm vụ thu thập thông tin thực địa, thiết bị điện thoại rất hữu ích khi cài thêm apps hỗ trợ như Qfield, MerginMap ...

Dữ liệu thu thập sẽ có 2 loại: points và lines. Ta cần thiết kế sẵn các trường (fields) để khi ngoài thực tế khi tới điểm cần thu thập chỉ việc lựa chọn hoặc tick vào, hoặc sổ ra các catalogy ...

Đầu tiên, cứ tạo 1 layer point bình thường có hệ quy chiếu theo bản đồ nền vùng làm việc.

Tiếp theo ta tạo các fields theo mục đích công việc. VD có thể có field tên điểm, tọa độ X, Y, Z, mô tả, ảnh chụp, phân loại v.v. nên tạo dạng *.gpkg để QGIS đóng gói luôn layer đó cho đỡ nhiều file lẻ tẻ!

Sau đó vào Layer chọn Property, Kéo gần dưới cùng mục Attributes Form, chọn kiểu Drag and Drop desiger ...

Rồi tới công chuyện luôn.



với trường X,Y, Z, ta hoàn toàn có thể để Qfield tự cập nhật khi tới thực địa. Nên để ý mục Default để chọn 1 hàm thích hợp, vd $X, $Y để tự điền tọa độ, tuy nhiên phần cao độ sẽ hơi khác. Hàm lấy độ cao tự động của MerginMap sẽ là: @position_altitude (đã check ok). Như hình dưới độ cao đã cập nhật.



Của Qfield thấy bảo là hàm : z($geometry) (đã check không được). Nhưng may là đã làm được bằng hàm khác!  z(@position_coordine) -->Xem cuối bài.


Còn phần tên điểm ta cũng có thể tạo các tiền tố của tên cho nhanh, ra thực địa chỉ thay số thứ tự thôi.


Trên hình, chú ý phần Widget type: nếu là chữ ta chọn text edit, nếu là ngày tháng thì chọn Date v.v.
Sau đó phần Constraints, nếu cần không được lặp lại ta tick vào Unique (tên duy nhất)/ Not null (không để trống), nếu 2 điểm có thể có mô tả giống nhau thì đừng tick vào.

Đây là phần hay nhất. Tạo 1 menu sổ ra các mục tương ứng khi ta gặp thực tế (đoán trước). VD các loại đá, đất, cây, hoa, nhà v.v.v. Ta chọn Value Map, các value tự điền vào.
Sau này thực tế sẽ sổ ra menu cho ta chọn, không mất thời gian điền nữa.
Còn 1 field cần điền là phần mô tả thêm, ta tạo trường Text, độ dài tùy ý.
Trường chụp ảnh có thể có/ không (vì nặng data). KHám phá ở Widget type!

Tham khảo video về MerginMap, App đắt mà chất như nước cất! Cho dùng thử 1 tháng, nhóm upto 6 thành viên.



Viết cho khỏi quên - 2025.
Update: đã tạo được trường tự động lấy độ cao trên Qfield:

Tạo một lớp điểm, nó không cần phải có z-demention, tôi đã thử có và không có. Cả hai đều hoạt động. Thêm trường kép có tên z_value: nhập mô tả hình ảnh ở đây:

Đi tới: Thuộc tính lớp - Biểu mẫu thuộc tính - Trình thiết kế kéo và thả. Kéo trường z_value vào biểu mẫu. Đặt giá trị mặc định thành hàm: 
z(@position_coordine)
và chọn "Áp dụng giá trị mặc định khi cập nhật" - Defaults. Khi bạn tạo một điểm ngoài đời thực bằng Qfield, trường z_value sẽ được cập nhật tự động: