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ư, 26 tháng 11, 2025

 QField, MerginMap là 2 ứng dụng trên điện thoại để anh em làm việc thực địa rất hiệu quả, lấy thông tin từ dự án trên QGIS.

Với các lớp dữ liệu cần thu thập, ta tạm chia làm 2 loại chính là dạng điểm và dạng đường. Dạng vùng ít dùng hơn vì ta ít đi đo diện tích bằng điện thoại, nó sai số lớn.


- Đối tượng điểm: 

Sẽ có các hàm sau để tự động lấy dữ liệu khi đi làm:

Tọa độ X: $X; Y; $Y,

VỚI Qfield dùng hàm lấy cao độ Z: z(@position_coordine)

Với MerginMap: hàm lấy Z là: @position_altitude

Ngoài ra, có thể dùng các hàm làm tròn như exel để làm tròn số: Round()
Có thể đặt khoảng cách tự động tạo điểm (vd cách 50m tạo 1 điểm khảo sát).

- Đối tượng đường: 

Hay dùng nhất là hàm $length, sẽ trả độ dài đường đi được ra mét. 

Ngoài ra có thể đặt mặc định các thuộc tính: tên điểm. 

Ngoài các hàm như trên thì ta có thể join (link các layer với nhau). Tất nhiên để link được thì cần có 1 trường chung, các trường khác nó sẽ join vào layer đích.

- Trong nội bộ layer, ta cũng có thể dùng hàm tính để khi có số liệu thì trường đó sẽ tự động điền. VD số liệu điều tra dân cư năm 2024 là 1 cột (2024), sau ta làm năm 2025 thì là cột 2025. Ta sẽ tạo 1 cột (trường) là chênh lệch, sẽ có thể gán hàm trừ "-" (2025-2024). Kết quả khi thực địa cột này sẽ tính ra giá trị chênh lệch luôn!. 

Các toán tử khác có thể dùng để update tự động cho 1 trường (cột): +, - , *, / v.v.v


Các thiết đặt cho Qfield hay MerginMap đều có thể làm trong mục thẻ Attributes Form và thẻ Joins (trên QGIS). 

Thẻ Joins (trên QGIS) là join các layer khác trên bản đồ (QGIS) nhé.

- Nhớ làm xong ở thực địa là bấm Sync luôn khi có wife (WIFI) nhé!@

Thứ Hai, 24 tháng 11, 2025

 

QGIS v/s MapInfo (or AutoCad) - Differences in Distance Measurements.

Các bạn mới sử dụng QGIS có thể gặp trường hợp: Diện tích tính được trong QGIS khác với diện tích tính trong Mapinfo, hoặc tính trong Autocad. Chiều dài đo tự động cũng có thể khác nhau.

Nguyên nhân là do hệ chiếu mặc định trong project bạn đang dùng. QGIS nếu để mặc định là nó tính diện tích hoặc độ dài theo phép chiếu cầu hoặc chiếu wgs84, mà có phép chiếu ít biến đổi hình dạng thì lại bị biến đổi diện tích. Trong Cad thì tính diện tích phẳng Decas, nên nếu tính diện tích khu vực rộng lớn >1km2 hoặc hơn thì sai số sẽ lớn. Mapinfo cũng có lựa chọn tính diện tích cầu, hoặc phẳng.
Trong QGIS, cần thiết lập lại thông số thì khi tính diện tích vùng nó mới về diện tích phẳng.
- Vào Menu - Project/ Properties (Ctr+Shif+ P):


Góc trái trên cùng chọn tab General/ để ý chỗ Measurement: Elipsoid chọn None/ Planimetric.
Bấm OK thoát ra là xong. Giờ thử tính lại diện tích vùng (công thức $area), chiếu dài đường xem nhé!



Thứ Ba, 28 tháng 10, 2025

 Mô hình DEM (số độ cao) là định dạng vertor cần có nếu muốn làm bản đồ độ dốc (slope map), phân loại độ cao địa hình, hoặc làm hill shade đổ bóng địa hình.



Lần trước có hướng dẫn 1 bài về các tạo DEM trong QGIS nhưng dùng Grass 7, các bước hơi rắc rối. Vì lúc đó thử tạo TIN trong QGIS mà bị thiếu bước nên lỗi.

Nay viết lại đơn giản nhất để lưu.

- Đầu tiên chuẩn bị 1 lớp địa hình contours có trường độ cao (dicermal, float, ..., không được để là text).

Bước 1: Tạo TIN từ contour

- Vào Processing Toolbar, gõ TIN, vào lệnh TIN interpolation


Ô vector layer chọn lớp contour, ô dưới chọn trường chứa độ cao Z. Sau đó bấm vào dấu cộng xanh để thêm dòng như ảnh.

Kéo thanh cuộn xuống, bước này quan trọng này.


+ Extent: phải chọn, nó là vùng tạo DEM, có thể dùng chuột khoanh hoặc dùng chính layer kia để tính toán.

+ Output Raster: độ phân giải cho TIN, tùy bản đồ chi tiết mấy, vd 1/10.000 thì có thể chọn chỗ pixel size là 5x5 hoặc 1x1 ...

Bấm Run, xong!

2. Lưu file *.tif

Lưu ý là TIN sẽ lưu tạm vào lớp nháp, nên sau khi ra cần export sang tiff file để lưu lại nhé!

Tif file là file ảnh gắn sẵn tọa độ, mà sau chỉ việc kéo thả vào QGIS hoặc mở lên bằng Mapinfo là tự nhận hệ tọa độ nhé. Giống GeoPDF.


TIN đúng thì nó phải ra số độ cao từ Min - Max của địa hình.
Sau khi xong rồi thì đã có raster, cứ dùng công cụ Raster trong QGIS tạo các loại bản đồ thôi.

Ảnh trên là các lớp hillshade và DEM chồng lên nhau cho ra hiệu ứng 3D ảo diệu phết.

Nếu thấy nội dung hữu ích, bạn có thể mời Ad 1 ly cafe động viên.




Thứ Ba, 19 tháng 8, 2025

 Nếu không phải dân chuyên, hẳn ít người Việt Nam biết rằng bản đồ tỷ lệ 1:100.000 các tỉnh ở Việt Nam từ thời Pháp thuộc đã được lập, in ấn và rất chuyên nghiệp.


Thông tin tờ Nam Định ở hình trên:


- Nhưng có thể bạn muốn tải về xem hoặc in ấn treo cho hoài cổ! Maybe!

Sẽ có ích nếu các bạn làm về địa lý cổ, cần tìm các địa danh cổ để liên hệ với hiện đại.

Biết đâu đấy. Sau đây là link trang chủ (Pháp):

https://www.nakala.fr/

Vào đó bấm tìm kiếm tên tỉnh mà bạn cần. Có 1 điều tiếc là chưa tìm thấy sơ đồ ghép mảnh các tờ bản đồ cho dễ tìm! Nếu tìm thấy hãy comment phía dưới nhé@! Từ khóa tìm: 

Carte de ... (Ha-noi, Nam-định, ...) hoặc "Carte de l'Indochine : (Thanh-Ba est)

- Trang này xịn hơn của ĐH bên Úc, bằng tiếng Anh nên dễ tra cứu tên, mảnh ghép:

https://openresearch-repository.anu.edu.au/


Do quân đội Nhật in ấn nhé!

Một số thông tin tham khảo về nguồn gốc các tờ bản đồ:

Như vậy, nửa đầu thế kỷ XX, người Pháp với điều kiện kỹ thuật bấy giờ đã đo vẽ được các loại bản đồ sau:
– 1:100.000 cho toàn bộ lãnh thổ Đông Dương, trong đó 55% lãnh thổ được vẽ theo đúng quy định lúc đó, vùng còn lại là khảo sát chung. Tổng số mảnh bản đồ là 254 mảnh 1:100.000 phủ trên Đông Dương.
– 1:25.000 cho vùng đồng bằng (Bắc Bộ, Trung Bộ và 2/3 Nam Bộ) và 1:50.000.
– 1:10.000 và 1:5000 ở các thành phố và thị xã.
– 1:4000 cho hệ thống bản đồ giải thửa (địa chính).

Thứ Ba, 12 tháng 8, 2025

 Trong QGIS, nếu bạn muốn lấy tọa độ trung tâm (centroid) của từng polygon trong một layer, bạn có thể dùng hàm centroid() trong Field Calculator hoặc trong Label Expression.

Cụ thể: tạo trường mới, kiểu trường số thập phân, hoặc dùng nút : Open field calculator để vừa tạo trường, vừa lấy tọa độ. Chỉ cần copy nhập công thức sau vào thôi!


1. Hàm lấy hình học centroid

qgis
centroid($geometry)
  • Trả về đối tượng hình học điểm là tâm hình học của polygon.

  • Dùng khi muốn tạo layer mới chứa điểm tâm.


2. Lấy tọa độ X, Y của centroid

  • Tọa độ X (kinh độ):

qgis
x(centroid($geometry))
  • Tọa độ Y (vĩ độ):

qgis
y(centroid($geometry))

3. Xuất ra dạng “X, Y” trong một cột

qgis
x(centroid($geometry)) || ', ' || y(centroid($geometry))

4. Khi cần centroid “nằm bên trong” polygon

Với polygon lõm hoặc có lỗ, centroid() đôi khi rơi ra ngoài hình.
Khi đó dùng:

qgis
point_on_surface($geometry)

→ đảm bảo điểm nằm trong polygon.

Thứ Hai, 4 tháng 8, 2025

 Tạo 1 trường kiểu số thực, rồi paste hàm số vào để lấy độ cao cho các đường polyline hoặc point từ cad chuyển vào.

Hàm lấy độ cao khi chuyển file dxf từ cad vào QGIS:

z(start_point($geometry))

Thứ Tư, 9 tháng 7, 2025

 Tải free Bản đồ địa chất nhiều khu vực trên thế giới, có thật không?

Câu trả lời là hoàn toàn có thật và có thể. Trang web cung cấp là từ Cục ĐC Mỹ.

Link vào tải: https://certmapper.cr.usgs.gov/data/apps/world-maps/


Khi bấm vào trang, để ý các mục và vùng có bản đồ để tải.

Bấm vào Data on... sẽ ra trang đích tải file: 
và kéo xuống tải về. File mở trên Arcgis, QGIS, có xml style thì phải!



Nếu thấy nội dung hữu ích, bạn có thể mời Ad 1 ly cafe động viên.



Thứ Năm, 29 tháng 5, 2025

 

QGIS: Thay đổi kiểu trường String (text, chữ) to Number values (số) trong file shapefile

Tại sao cần thay đổi?

Khi chuyển đồi file địa hình số (từ CAD, mapinfo, v.v.) sang Shapefile thì trường độ cao Z có thể bị mất, bị lưu dạng text. Nếu là dạng text thì khi bạn cần sử dụng mô hình độ cao sẽ không được, cần chuyển sang kiểu trường là số.

QGIS có công cụ "Field Calculator" nằm ngay trong bảng thuộc tính khi mở ra.


Đầu tiên, mở bảng attribute table của layer bạn cần chuyển đổi. Tiếp đến, click the "Open Field Calculator" button. Trong ô cửa sổ hàm "Expression" nhập công thức to_real( "Text" ) . Trong đó "Text" là tên trường chứa số đang lưu dạng chữ mà bạn cần chuyển đổi. Cuối cùng click "OK" để xem kết quả.


Tóm lại:
  1. Mở bảng thuộc tính lớp cần chuyển đổi
  2. Vào "Field Calculator"
  3. Bấm "Update Existing field"
  4. Dùng hàm: to_real("attributeName"). Lưu lại.
(Copy hàm như sau: to_real( "Text" )(Thay trong dấu " " bằng tên trường cần chuyển. Xem hình dưới nếu trường có tên dài thì bấm vào phần Fields and Values nó sẽ ra luôn không phải gõ tay nhé!)

  1. (Hàm có thể tìm bằng từ khoá: conversions)
  2. Nếu thấy nội dung hữu ích, bạn có thể mời Ad 1 ly cafe động viên.