# Hình dung dữ liệu vị trí  > Sketchnote bởi [Nitya Narasimhan](https://github.com/nitya). Nhấn vào hình ảnh để xem phiên bản lớn hơn. Video này cung cấp tổng quan về Azure Maps với IoT, một dịch vụ sẽ được đề cập trong bài học này. [](https://www.youtube.com/watch?v=P5i2GFTtb2s) > 🎥 Nhấn vào hình ảnh trên để xem video ## Câu hỏi trước bài học [Câu hỏi trước bài học](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/25) ## Giới thiệu Trong bài học trước, bạn đã học cách lấy dữ liệu GPS từ cảm biến và lưu trữ vào đám mây trong một container lưu trữ bằng mã serverless. Bây giờ, bạn sẽ khám phá cách hình dung các điểm đó trên bản đồ Azure. Bạn sẽ học cách tạo một bản đồ trên trang web, tìm hiểu về định dạng dữ liệu GeoJSON và cách sử dụng nó để vẽ tất cả các điểm GPS đã thu thập trên bản đồ của bạn. Trong bài học này, chúng ta sẽ đề cập đến: * [Hình dung dữ liệu là gì](../../../../../3-transport/lessons/3-visualize-location-data) * [Dịch vụ bản đồ](../../../../../3-transport/lessons/3-visualize-location-data) * [Tạo tài nguyên Azure Maps](../../../../../3-transport/lessons/3-visualize-location-data) * [Hiển thị bản đồ trên trang web](../../../../../3-transport/lessons/3-visualize-location-data) * [Định dạng GeoJSON](../../../../../3-transport/lessons/3-visualize-location-data) * [Vẽ dữ liệu GPS trên bản đồ bằng GeoJSON](../../../../../3-transport/lessons/3-visualize-location-data) > 💁 Bài học này sẽ bao gồm một lượng nhỏ HTML và JavaScript. Nếu bạn muốn tìm hiểu thêm về phát triển web bằng HTML và JavaScript, hãy xem [Phát triển web cho người mới bắt đầu](https://github.com/microsoft/Web-Dev-For-Beginners). ## Hình dung dữ liệu là gì Hình dung dữ liệu, như tên gọi, là việc biểu diễn dữ liệu theo cách giúp con người dễ hiểu hơn. Nó thường liên quan đến biểu đồ và đồ thị, nhưng thực chất là bất kỳ cách nào biểu diễn dữ liệu bằng hình ảnh để giúp con người không chỉ hiểu rõ hơn mà còn đưa ra quyết định. Lấy một ví dụ đơn giản - trong dự án nông trại, bạn đã thu thập các chỉ số độ ẩm đất. Một bảng dữ liệu độ ẩm đất được thu thập mỗi giờ vào ngày 1 tháng 6 năm 2021 có thể trông như sau: | Ngày | Chỉ số | | ----------------- | ------: | | 01/06/2021 00:00 | 257 | | 01/06/2021 01:00 | 268 | | 01/06/2021 02:00 | 295 | | 01/06/2021 03:00 | 305 | | 01/06/2021 04:00 | 325 | | 01/06/2021 05:00 | 359 | | 01/06/2021 06:00 | 398 | | 01/06/2021 07:00 | 410 | | 01/06/2021 08:00 | 429 | | 01/06/2021 09:00 | 451 | | 01/06/2021 10:00 | 460 | | 01/06/2021 11:00 | 452 | | 01/06/2021 12:00 | 420 | | 01/06/2021 13:00 | 408 | | 01/06/2021 14:00 | 431 | | 01/06/2021 15:00 | 462 | | 01/06/2021 16:00 | 432 | | 01/06/2021 17:00 | 402 | | 01/06/2021 18:00 | 387 | | 01/06/2021 19:00 | 360 | | 01/06/2021 20:00 | 358 | | 01/06/2021 21:00 | 354 | | 01/06/2021 22:00 | 356 | | 01/06/2021 23:00 | 362 | Đối với con người, việc hiểu dữ liệu này có thể khó khăn. Nó chỉ là một bức tường số liệu không mang ý nghĩa gì. Bước đầu tiên để hình dung dữ liệu này là vẽ nó trên biểu đồ đường:  Điều này có thể được cải thiện thêm bằng cách thêm một đường chỉ ra khi hệ thống tưới tự động được bật ở mức độ ẩm đất là 450:  Biểu đồ này nhanh chóng cho thấy không chỉ mức độ ẩm đất mà còn các điểm mà hệ thống tưới được bật. Biểu đồ không phải là công cụ duy nhất để hình dung dữ liệu. Các thiết bị IoT theo dõi thời tiết có thể có ứng dụng web hoặc di động để hình dung điều kiện thời tiết bằng các biểu tượng, chẳng hạn như biểu tượng đám mây cho ngày nhiều mây, biểu tượng mưa cho ngày mưa, v.v. Có rất nhiều cách để hình dung dữ liệu, từ nghiêm túc đến vui nhộn. ✅ Hãy nghĩ về những cách bạn đã thấy dữ liệu được hình dung. Phương pháp nào rõ ràng nhất và giúp bạn đưa ra quyết định nhanh nhất? Những hình dung tốt nhất cho phép con người đưa ra quyết định nhanh chóng. Ví dụ, có một bức tường đồng hồ đo hiển thị tất cả các chỉ số từ máy móc công nghiệp rất khó xử lý, nhưng một đèn đỏ nhấp nháy khi có sự cố sẽ giúp con người đưa ra quyết định. Đôi khi, hình dung tốt nhất chỉ là một đèn nhấp nháy! Khi làm việc với dữ liệu GPS, cách hình dung rõ ràng nhất có thể là vẽ dữ liệu trên bản đồ. Một bản đồ hiển thị các xe tải giao hàng, chẳng hạn, có thể giúp nhân viên tại nhà máy xử lý biết khi nào xe tải sẽ đến. Nếu bản đồ này hiển thị không chỉ hình ảnh của các xe tải tại vị trí hiện tại mà còn cung cấp thông tin về nội dung của xe, thì nhân viên tại nhà máy có thể lên kế hoạch phù hợp - nếu họ thấy một xe tải đông lạnh gần đó, họ biết cần chuẩn bị không gian trong tủ lạnh. ## Dịch vụ bản đồ Làm việc với bản đồ là một bài tập thú vị, và có rất nhiều dịch vụ để lựa chọn như Bing Maps, Leaflet, Open Street Maps, và Google Maps. Trong bài học này, bạn sẽ tìm hiểu về [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) và cách chúng có thể hiển thị dữ liệu GPS của bạn.  Azure Maps là "một tập hợp các dịch vụ không gian địa lý và SDK sử dụng dữ liệu bản đồ mới nhất để cung cấp ngữ cảnh địa lý cho các ứng dụng web và di động." Các nhà phát triển được cung cấp các công cụ để tạo ra các bản đồ đẹp, tương tác có thể làm những việc như cung cấp tuyến đường giao thông được đề xuất, thông tin về sự cố giao thông, điều hướng trong nhà, khả năng tìm kiếm, thông tin độ cao, dịch vụ thời tiết và nhiều hơn nữa. ✅ Thử nghiệm với một số [mẫu mã bản đồ](https://docs.microsoft.com/samples/browse?WT.mc_id=academic-17441-jabenn&products=azure-maps) Bạn có thể hiển thị bản đồ dưới dạng canvas trống, ô, hình ảnh vệ tinh, hình ảnh vệ tinh với đường chồng lên, các loại bản đồ xám khác nhau, bản đồ với bóng để hiển thị độ cao, bản đồ chế độ ban đêm, và bản đồ có độ tương phản cao. Bạn có thể nhận cập nhật thời gian thực trên bản đồ của mình bằng cách tích hợp chúng với [Azure Event Grid](https://azure.microsoft.com/services/event-grid/?WT.mc_id=academic-17441-jabenn). Bạn có thể kiểm soát hành vi và giao diện của bản đồ bằng cách kích hoạt các điều khiển khác nhau để cho phép bản đồ phản ứng với các sự kiện như chụm, kéo và nhấp. Để kiểm soát giao diện của bản đồ, bạn có thể thêm các lớp bao gồm bong bóng, đường, đa giác, bản đồ nhiệt và nhiều hơn nữa. Loại bản đồ bạn triển khai phụ thuộc vào lựa chọn SDK của bạn. Bạn có thể truy cập các API Azure Maps bằng cách sử dụng [REST API](https://docs.microsoft.com/javascript/api/azure-maps-rest/?WT.mc_id=academic-17441-jabenn&view=azure-maps-typescript-latest), [Web SDK](https://docs.microsoft.com/azure/azure-maps/how-to-use-map-control?WT.mc_id=academic-17441-jabenn), hoặc, nếu bạn đang xây dựng ứng dụng di động, [Android SDK](https://docs.microsoft.com/azure/azure-maps/how-to-use-android-map-control-library?WT.mc_id=academic-17441-jabenn&pivots=programming-language-java-android). Trong bài học này, bạn sẽ sử dụng Web SDK để vẽ bản đồ và hiển thị đường đi của vị trí GPS từ cảm biến của bạn. ## Tạo tài nguyên Azure Maps Bước đầu tiên của bạn là tạo một tài khoản Azure Maps. ### Nhiệm vụ - tạo tài nguyên Azure Maps 1. Chạy lệnh sau từ Terminal hoặc Command Prompt để tạo tài nguyên Azure Maps trong nhóm tài nguyên `gps-sensor`: ```sh az maps account create --name gps-sensor \ --resource-group gps-sensor \ --accept-tos \ --sku S1 ``` Điều này sẽ tạo một tài nguyên Azure Maps có tên `gps-sensor`. Tầng được sử dụng là `S1`, một tầng trả phí bao gồm nhiều tính năng, nhưng với số lượng cuộc gọi miễn phí hào phóng. > 💁 Để xem chi phí sử dụng Azure Maps, hãy xem [trang giá Azure Maps](https://azure.microsoft.com/pricing/details/azure-maps/?WT.mc_id=academic-17441-jabenn). 1. Bạn sẽ cần một khóa API cho tài nguyên bản đồ. Sử dụng lệnh sau để lấy khóa này: ```sh az maps account keys list --name gps-sensor \ --resource-group gps-sensor \ --output table ``` Sao chép giá trị `PrimaryKey`. ## Hiển thị bản đồ trên trang web Bây giờ bạn có thể thực hiện bước tiếp theo là hiển thị bản đồ trên trang web. Chúng ta sẽ chỉ sử dụng một tệp `html` cho ứng dụng web nhỏ của bạn; hãy nhớ rằng trong môi trường sản xuất hoặc làm việc nhóm, ứng dụng web của bạn có thể có nhiều phần phức tạp hơn! ### Nhiệm vụ - hiển thị bản đồ trên trang web 1. Tạo một tệp có tên index.html trong một thư mục nào đó trên máy tính của bạn. Thêm mã HTML để chứa bản đồ: ```html
``` Bản đồ sẽ được tải trong `div` có tên `myMap`. Một vài kiểu dáng cho phép nó chiếm toàn bộ chiều rộng và chiều cao của trang. > 🎓 Một `div` là một phần của trang web có thể được đặt tên và định kiểu. 1. Dưới thẻ `` mở, thêm một tệp style sheet bên ngoài để kiểm soát hiển thị bản đồ và một script bên ngoài từ Web SDK để quản lý hành vi của nó: ```html ``` Tệp style sheet này chứa các cài đặt cho cách bản đồ hiển thị, và tệp script chứa mã để tải bản đồ. Thêm mã này tương tự như việc bao gồm các tệp header trong C++ hoặc nhập các module trong Python. 1. Dưới script đó, thêm một khối script để khởi chạy bản đồ. ```javascript ``` Thay `