SDK Maps dành cho Thư viện tiện ích Android

Chọn nền tảng: Android iOS

Bạn muốn thêm các tính năng nâng cao vào bản đồ của mình? Maps SDK cho Thư viện tiện ích Android là một thư viện nguồn mở gồm các lớp hữu ích cho nhiều ứng dụng. Kho lưu trữ GitHub bao gồm các lớp tiện ích và một ứng dụng minh hoạ minh hoạ cách sử dụng từng lớp.

Trong video này, Chris Broadfoot thảo luận về thư viện tiện ích, tập trung vào giải mã hình nhiều đường, hình học cầu và biểu tượng bong bóng.

Thiết lập nhanh

Để cài đặt Maps SDK cho Thư viện tiện ích Android, hãy làm theo hướng dẫn thiết lập.

Các tiện ích

Bản đồ có lớp GeoJSON

Nhập GeoJSON vào bản đồ của bạn

Bạn có thể lưu trữ các đối tượng ở định dạng GeoJSON và sử dụng tiện ích này để hiển thị các đối tượng đó dưới dạng một lớp trên bản đồ. Gọi addLayer() để thêm dữ liệu GeoJSON vào bản đồ. Bạn cũng có thể thêm từng tính năng bằng cách gọi addFeature(), truyền vào một đối tượng GeoJsonFeature.

Để biết thông tin chi tiết, hãy xem tài liệu về Tiện ích GeoJSON của Google Maps cho Android.

Bản đồ có lớp KML

Nhập tệp KML vào bản đồ

Bằng cách sử dụng tiện ích này, bạn có thể chuyển đổi các đối tượng KML thành hình dạng địa lý và kết xuất các đối tượng đó dưới dạng một lớp trên bản đồ. Gọi addLayerToMap() để thêm lớp vào bản đồ. Bạn có thể truy cập vào các thuộc tính trong đối tượng KML bằng cách gọi getProperties() trên bất kỳ Dấu vị trí, Lớp phủ mặt đất, Tài liệu hoặc Thư mục nào.

Để biết thông tin chi tiết, hãy xem tài liệu về Tiện ích KML của Google Maps dành cho Android.

Bản đồ có bản đồ nhiệt

Thêm bản đồ nhiệt vào bản đồ của bạn

Bản đồ nhiệt giúp người xem hiểu được mức độ phân bổ và cường độ tương đối của các điểm dữ liệu trên bản đồ. Thay vì đặt điểm đánh dấu tại mỗi vị trí, bản đồ nhiệt sử dụng màu sắc và hình dạng để thể hiện sự phân bố của dữ liệu. Tạo HeatmapTileProvider, truyền cho đối tượng này một tập hợp các đối tượng LatLng đại diện cho các địa điểm yêu thích trên bản đồ. Sau đó, hãy tạo một TileOverlay mới, truyền cho lớp phủ này trình cung cấp ô bản đồ nhiệt và thêm lớp phủ ô vào bản đồ.

Để biết thông tin chi tiết, hãy xem tài liệu về Tiện ích bản đồ nhiệt Android của Google Maps.

Bản đồ có biểu tượng bong bóng

Tuỳ chỉnh điểm đánh dấu bằng biểu tượng bong bóng

Thêm IconGenerator để hiển thị đoạn thông tin trên điểm đánh dấu. Tiện ích này cung cấp một cách để làm cho biểu tượng điểm đánh dấu của bạn trông giống như cửa sổ thông tin, trong đó bản thân điểm đánh dấu có thể chứa văn bản và nội dung khác. Ưu điểm là bạn có thể mở nhiều điểm đánh dấu cùng một lúc, trong khi chỉ có thể mở một cửa sổ thông tin tại một thời điểm. Bạn cũng có thể tạo kiểu cho điểm đánh dấu, thay đổi hướng của điểm đánh dấu và/hoặc nội dung, đồng thời thay đổi hình nền/nine-patch của điểm đánh dấu.

Bản đồ có điểm đánh dấu

Tạo ảnh động cho điểm đánh dấu

Bạn có thể tạo ảnh động cho điểm đánh dấu để điểm đánh dấu di chuyển mượt mà từ vị trí hiện tại đến vị trí mới. Lớp AnimationUtil cung cấp chức năng này. Để xem ví dụ về cách sử dụng, hãy xem AnimationUtilDemoActivity trong kho lưu trữ GitHub của thư viện tiện ích.

Bản đồ có các điểm đánh dấu được nhóm lại

Quản lý cụm điểm đánh dấu

ClusterManager giúp bạn quản lý nhiều điểm đánh dấu ở các mức thu phóng khác nhau. Điều này có nghĩa là bạn có thể đặt một số lượng lớn điểm đánh dấu trên bản đồ mà không làm cho bản đồ trở nên khó đọc. Khi người dùng xem bản đồ ở mức thu phóng cao, các điểm đánh dấu riêng lẻ sẽ xuất hiện trên bản đồ. Khi người dùng thu nhỏ đến mức thu phóng thấp hơn, các điểm đánh dấu sẽ tập hợp lại thành các cụm để giúp người dùng xem bản đồ dễ dàng hơn.

Để biết thông tin chi tiết, hãy xem tài liệu về Tiện ích phân cụm điểm đánh dấu của Google Maps trên Android.

Bản đồ có nhiều lớp

Thêm nhiều lớp vào cùng một bản đồ

Bạn có thể hiển thị các đối tượng từ GeoJSON, KML và cụm, cũng như các điểm đánh dấu, hình nhiều đường và đa giác của riêng bạn, tất cả trên cùng một bản đồ. Bạn cũng có thể làm cho các lớp này có tính tương tác bằng cách thêm trình theo dõi lượt nhấp vào mỗi lớp. Để làm việc này, hãy tạo thực thể cho các lớp MarkerManager, GroundOverlayManager, PolygonManager và PolylineManager, sau đó truyền các lớp này vào hàm khởi tạo của GeoJsonLayer, KmlLayer và ClusterManager khi bạn thiết lập các lớp này. Sau đó, bạn có thể sử dụng trực tiếp các lớp Manager này để thêm điểm đánh dấu, hình nhiều đường và đa giác của riêng bạn vào bản đồ.

Để biết thông tin chi tiết, hãy xem tài liệu về Bản minh hoạ nhiều lớp của Google Maps trên Android.

Bản đồ có hình nhiều đường được mã hoá

Mã hoá và giải mã hình nhiều đường

Lớp PolyUtil chuyển đổi các hình nhiều đường và đa giác được mã hoá thành toạ độ vĩ độ/kinh độ, đồng thời chuyển đổi toạ độ thành các hình nhiều đường và đa giác được mã hoá.

Trong Google Maps, toạ độ vĩ độ và kinh độ xác định một hình nhiều đường hoặc đa giác được lưu trữ dưới dạng một chuỗi được mã hoá. Xem nội dung giải thích chi tiết về mã hoá hình nhiều đường. Bạn có thể nhận được chuỗi được mã hoá này trong phản hồi từ một API của Google, chẳng hạn như Directions API (Phiên bản cũ).

Bạn có thể sử dụng PolyUtil trong Maps SDK cho Thư viện tiện ích Android để mã hoá một chuỗi toạ độ vĩ độ/kinh độ ("LatLng") thành một chuỗi đường dẫn được mã hoá và giải mã một chuỗi đường dẫn được mã hoá thành một chuỗi LatLng. Điều này sẽ đảm bảo khả năng tương tác với các dịch vụ web của API Google Maps.

Tính khoảng cách giữa hai điểm trên bản đồ

Tính khoảng cách, diện tích và hướng bằng hình học cầu

Bằng cách sử dụng các tiện ích hình học cầu trong SphericalUtil, bạn có thể tính toán khoảng cách, diện tích và hướng dựa trên vĩ độ và kinh độ. Sau đây là một số phương thức có trong tiện ích:

  • computeDistanceBetween() – Trả về khoảng cách (tính bằng mét) giữa hai toạ độ vĩ độ/kinh độ.
  • computeHeading() – Trả về góc phương vị, tính bằng độ, giữa hai toạ độ vĩ độ/kinh độ.
  • computeArea() – Trả về diện tích (tính bằng mét vuông) của một đường dẫn khép kín trên Trái Đất.
  • interpolate() – Trả về toạ độ vĩ độ/kinh độ của một điểm nằm ở một phần nhất định của khoảng cách giữa hai điểm cho trước. Ví dụ: bạn có thể sử dụng thuộc tính này để tạo ảnh động cho điểm đánh dấu giữa hai điểm.

Hãy tham khảo tài liệu tham khảo để biết danh sách đầy đủ các phương thức trong tiện ích.

Kiểm tra xem một vị trí có được hỗ trợ trong Chế độ xem đường phố hay không

Kiểm tra xem một vị trí có được hỗ trợ trong Chế độ xem đường phố hay không

Lớp StreetViewUtil cung cấp chức năng kiểm tra xem một vị trí có được hỗ trợ trong Chế độ xem đường phố hay không. Bạn có thể tránh lỗi khi thêm ảnh toàn cảnh trong Chế độ xem đường phố vào ứng dụng Android bằng cách gọi tiện ích siêu dữ liệu này và chỉ thêm ảnh toàn cảnh trong Chế độ xem đường phố nếu phản hồi là OK.

Để biết thông tin chi tiết, hãy xem tài liệu về tiện ích siêu dữ liệu của Chế độ xem đường phố trên GitHub.