Mỗi lần mở ứng dụng giao đồ ăn hay tìm cây xăng gần nhất, bạn đang dùng một ứng dụng bản đồ số. Cuốn Azure Maps Using Blazor Succinctly hướng dẫn tự xây dựng một ứng dụng như vậy từ đầu.
Bạn đang ở một khu phố lạ và muốn tìm chi nhánh ngân hàng gần nhất. Bạn mở điện thoại, gõ tên ngân hàng, bản đồ hiện ra kèm danh sách chi nhánh xếp theo khoảng cách. Thao tác chỉ mất vài giây, nhưng phía sau là cả một hệ thống: định vị bạn đang ở đâu, đổi địa chỉ thành tọa độ, tính khoảng cách, vẽ bản đồ. Lập trình viên làm ra những ứng dụng ấy bằng các dịch vụ bản đồ số như Azure Maps của Microsoft.
Azure Maps có những gì?
Theo cuốn Azure Maps Using Blazor Succinctly của tác giả Michael Washington, Azure Maps là một phần của dịch vụ đám mây Microsoft Azure, cung cấp nhiều tính năng về dữ liệu địa lý: bản đồ, giao thông, thời tiết, tìm kiếm, chỉ đường, định vị và hàng rào địa lý (geofencing), tức là tự phát hiện khi một thiết bị đi vào hay đi ra một vùng đã khoanh trước.
.png)
Hình 1. Bản đồ Azure Maps hiển thị tình hình giao thông trực tiếp, các biểu tượng đánh dấu điểm có sự cố trên đường
Sách tập trung vào những tính năng hay dùng nhất. Dịch vụ hiển thị cho phép lấy hình bản đồ theo nhiều kiểu, kể cả ảnh vệ tinh. Điều khiển bản đồ cho phép người dùng kéo, phóng to, thu nhỏ ngay trên trang web. Dịch vụ tìm kiếm đổi địa chỉ thành kinh độ, vĩ độ (gọi là mã hóa địa lý) và làm ngược lại. Dịch vụ giao thông cho thấy dòng xe và sự cố theo thời gian thực.
Ứng dụng tìm cửa hàng: dự án xuyên suốt cuốn sách
Thay vì học rời rạc, sách hướng dẫn xây dựng trọn vẹn một ứng dụng "Blazor Store Finder" giống các ứng dụng tìm cửa hàng ngoài đời. Ứng dụng có hai phần.
Phần quản trị dành cho chủ doanh nghiệp: thêm, sửa địa chỉ các cửa hàng. Mỗi khi nhập một địa chỉ, hệ thống tự gọi Azure Maps để lấy tọa độ chính xác rồi lưu vào cơ sở dữ liệu SQL Server. Sách lấy ví dụ địa chỉ Nhà Trắng ở Washington được đổi thành vĩ độ 38,8977 và kinh độ -77,0365.
Phần tìm kiếm dành cho khách hàng: xác định vị trí hiện tại, tìm các cửa hàng xung quanh, liệt kê theo khoảng cách từ gần đến xa. Bấm vào một cửa hàng, bản đồ tự di chuyển đến đúng vị trí đó.
.png)
Hình 2. Ứng dụng Blazor Store Finder: danh sách cửa hàng xếp theo khoảng cách bên trái, bản đồ đánh dấu vị trí từng cửa hàng bên phải
Blazor: làm web bằng C#
Ứng dụng được viết bằng Blazor, công nghệ của Microsoft cho phép làm trang web tương tác bằng ngôn ngữ C# thay vì JavaScript. Sách dùng thêm một thành phần đóng gói sẵn điều khiển bản đồ để lập trình viên điều khiển bản đồ hoàn toàn bằng C#. Công cụ là Visual Studio 2022 bản Community miễn phí, mã nguồn hoàn chỉnh được chia sẻ trên GitHub.
Bài học về bảo mật và chi phí
Một điểm đáng giá của sách là nói rõ những chuyện thực tế ít người để ý. Mỗi lần gọi Azure Maps đều phải xác thực. Cách dùng "khóa dùng chung" gắn thẳng vào đường dẫn rất tiện nhưng Microsoft không khuyên dùng cho ứng dụng web, vì khóa có thể bị lộ. Cách được khuyến nghị là dùng Azure Active Directory cấp "vé" truy cập có thời hạn ngắn.
Về chi phí, Azure Maps tính tiền theo số lần gọi dịch vụ, ví dụ mỗi lần đổi địa chỉ thành tọa độ hay mỗi ô bản đồ được tải. Tại thời điểm sách viết, gói mới có cả mức miễn phí. Lập trình viên cần theo dõi lượng sử dụng để không bị bất ngờ với hóa đơn.
Nghề nghiệp từ bản đồ số
Ứng dụng bản đồ có mặt ở rất nhiều lĩnh vực: giao hàng, gọi xe, du lịch, bất động sản, quản lý đội xe, nông nghiệp. Người biết làm việc với dữ liệu địa lý có thể làm lập trình viên web, lập trình viên ứng dụng di động, chuyên viên hệ thống thông tin địa lý (GIS).
Kỹ năng người học có được khá đa dạng: gọi dịch vụ web và xử lý dữ liệu JSON trả về, thiết kế cơ sở dữ liệu, xây dựng giao diện quản trị, làm việc với tọa độ và khoảng cách. Quan trọng hơn, bạn học cách ghép nhiều mảnh lại thành một sản phẩm hoàn chỉnh giải quyết nhu cầu có thật.
Đưa thế giới thật lên màn hình
Bản đồ số là nơi công nghệ thông tin gặp đời sống hằng ngày rõ nhất. Từ việc tìm quán cà phê gần nhà đến điều phối hàng trăm xe giao hàng, mọi thứ đều bắt đầu từ những dòng mã biết "đọc" kinh độ, vĩ độ. Nếu bạn thích vừa lập trình vừa thấy ngay thành quả trên bản đồ, đây là một chủ đề rất thú vị để bắt đầu.
Trường Cao đẳng Công nghệ thông tin TP.HCM
- Website: itc.edu.vn - Email tuyển sinh: tuyensinh@itc.edu.vn
- Điện thoại: (028) 386 050 03 - Hotline: 093 886 1080 / 097 500 5356
- Địa chỉ: 12 Trịnh Đình Thảo, P. Tân Phú, TP.HCM
ThS. Trương Châu Long - Trưởng bộ môn CNTT & HTTT