Trong thế giới GIS hiện nay, phần mềm GIS mã nguồn mở ngày càng hoàn thiện và mạnh mẽ, phổ biến trong cộng đồng nghiên cứu, xây dựng cơ sở dữ liệu, thành lập bản đồ, cập nhật dữ liệu … Trong rất nhiều bài viết mô tả chức năng của QGIS, chúng tôi thấy bài viết của anh Dror Bogin là một bài hay và chi tiết về công nghệ mới của QGIS, chúng tôi xin dịch trích lược dưới đây:
Bài viết này giới thiệu người dùng cách tạo một bản đồ online động một cách nhanh chóng mà việc cập nhật dữ liệu chỉ cần dùng Google sheet. Tóm tắt cách làm:
- Tạo Google sheet với dữ liệu mà bạn phải cập nhật.
- Thêm API đơn giản của Google Apps Script để nhận dữ liệu cập nhật của bạn ở định dạng GeoJSON.
- Tạo bản đồ đơn giản với dữ liệu mà bạn không cần cập nhật và liên kết tới Google sheet của bạn trong QGIS và xuất nó bằng QGIS2Web.
- Chỉnh sửa nguồn của bản đồ đầu ra (chỉ thay đổi một dòng).

Phương pháp này chỉ áp dụng với các đối tượng dạng điểm, các đối tượng dạng đường và vùng cũng có thể thực hiện tương tự nhưng đòi hỏi nhiều thao tác và thủ thuật hơn.
Dưới đây là trình tự các bước thực hiện.
1. Tạo Google Sheet với dữ liệu bạn cần cập nhật
Bạn cần tạo là một tệp Google sheet với một trang tính sẽ chứa dữ liệu, nên có các cột cho X và Y (có thể là trong Kinh độ và Vĩ độ) và bất kỳ cột nào khác mà bạn muốn thêm.
Ví dụ, trang “Trees” có các trường sau:
- Thời gian – Thời gian khi dữ liệu được thêm vào
- Type – Nội dung bất kỳ mà bạn thêm vào, nội dung là unknown khi bạn không điền thông tin gì
- Kinh độ và vĩ độ
- Show – tập lệnh trả về dữ liệu sử dụng điều này để xác định xem có gửi lại một hàng hay không.
Bạn yêu cầu dữ liệu này bằng liên kết mà chúng tôi sẽ tạo ở bước 2 sẽ nhận lại tệp GeoJSON với các thuộc tính về thời gian và loại cũng như hình học được tạo từ kinh độ và vĩ độ.
2. Thêm API của Google Apps Script để nhận dữ liệu cập nhật ở định dạng GeoJSON
Google Apps Script là một loại JavaScript được đơn giản hóa mà google cho phép bạn chạy để mở rộng khả năng các dịch vụ của họ. Ở đây sử dụng Google Apps Script để tạo một API đơn giản đáp ứng các yêu cầu HTTP GET (về cơ bản là một liên kết) và trả về dữ liệu của bạn ở định dạng GeoJSON để có thể đọc và hiển thị trong QGIS và trong bản đồ web .
Trong trang tính của bạn, nhấp vào Extensions rồi nhấp vào App script, thao tác này sẽ mở một tab mới.

Tiếp theo, bạn cần thêm một chức năng mới và nó phải được đặt tên là doGet, đó là tên dành riêng cho các chức năng sẽ phản hồi các yêu cầu HTTP GET, nghĩa là người dùng có thể nhận được phản hồi từ một liên kết.
Đây là code cho chức năng, bạn sẽ cần thay đổi để phù hợp với dữ liệu của riêng mình:

Sau khi bạn chỉnh sửa xong hàm cho phù hợp với dữ liệu của mình, hãy nhấp vào nút Deloy màu xanh ở trên cùng bên phải màn hình, sau đó nhấp vào New deloyment

Trong cửa sổ mới, hãy chọn loại ứng dụng web, đặt tên cho Deloy của bạn và đảm bảo mọi người đều có thể truy cập. Nếu bạn giới hạn tùy chọn người có quyền truy cập, bạn sẽ phải thiết lập xác thực google, điều này nằm ngoài phạm vi của bài giới thiệu này.

Bây giờ bạn sẽ nhận được URL cho GeoJSON của mình, nhấp hoặc sao chép URL đó và bạn sẽ thấy dữ liệu của mình ở định dạng GeoJSON.

3. Tạo bản đồ đơn giản cho QGIS2Web
Mở QGIS và chỉ cần thêm bất kỳ lớp nào muốn có trên bản đồ web của mình ngoài dữ liệu từ Google Sheet.
Bạn nên nhớ hai điều khi lập bản đồ web của mình:
- QGIS2Web lưu các lớp vector ở định dạng GeoJSON, định dạng này có thể lớn hơn so với phiên bản gốc của dữ liệu.
- Một số bạn có thể sử dụng dữ liệu di động, vì vậy bạn sẽ muốn giữ cho các lớp của mình nhỏ gọn. Việc dựa vào sơ đồ cơ sở của lớp XYZ, WMTS hoặc Vector có thể sẽ tăng tốc bản đồ web của bạn thay vì tải tất cả các lớp dưới dạng vector.

Bây giờ, hãy thêm dữ liệu từ Google sheet của chúng tôi. Mở Trình quản lý nguồn dữ liệu (Ctrl/Cmd+L) và chuyển sang tab Vector. Chỉ cần dán URL của tập lệnh Ứng dụng của bạn (nội dung bạn đã sao chép ở ảnh cuối cùng của bước 2) và nhấp vào Add.
Tiến hành tạo kiểu cho các lớp của bạn dựa trên các thuộc tính hoặc bất kỳ cách nào bạn muốn sẽ xuất tốt bằng cách sử dụng bản đồ xuất Mapbox GL JS của QGIS2Web.

Tiến hành xuất bản đồ bằng QGIS2Web, đảm bảo rằng bạn đang sử dụng MapBox GL JS làm thư viện xuất (đặt ở dưới cùng bên trái của cửa sổ).

Bây giờ bạn đã có một bản đồ web xuất QGIS2Web đang hoạt động, kết thúc bước 3 coi như hoàn thành được khoảng 98% việc tạo bản đồ web cập nhật.
4. Chỉnh sửa nguồn của bản đồ đầu ra

Tiếp theo bạn mở thư mục mà QGIS2Web đã xuất, nếu không tìm thấy bạn có thể xem nó ở đâu qua dòng địa chỉ trên đầu trình duyệt của bạn (QGIS2Web sẽ mở bản đồ sau khi xuất xong).

Bây giờ, hãy chuyển đến thư mục mapbox và sử dụng bất kỳ trình soạn thảo văn bản nào (ví dụ: notepad, notepad ++, mã studio trực quan, v.v.) để mở tệp style.js và thay thế tên của nguồn dữ liệu cho lớp Google sheetcủa bạn từ bất kỳ tên nào (thường là json_layer tên bằng chữ thường_*,), tới URL của lớp của bạn giữa các dấu ngoặc kép ( ” ).

Tiến hành lưu tệp và tải lại bản đồ của bạn, lúc đầu sẽ không có bất kỳ thay đổi nào, vì bạn đã tải dữ liệu vào QGIS chỉ một lúc trước, nhưng thực hiện bất kỳ bổ sung, chỉnh sửa hoặc trừ nào từ GG sheet và bạn có thể thấy sự thay đổi bất cứ khi nào bản đồ được làm mới.
Bạn có thể triển khai bản đồ web này trên bất kỳ máy chủ web nào (IIS, Apache Tomcat, Nginx, v.v.) và sẽ nhận được bản đồ cập nhật của mình.
Leave A Comment