Hướng dẫn tối ưu hoá

Hướng dẫn này mô tả một số chiến lược để tối ưu hoá việc sử dụng Google Maps API về tính bảo mật, hiệu suất và mức tiêu thụ.

Bảo mật

Xem xét các phương pháp bảo mật hay nhất

Khoá API là thông tin đăng nhập theo hướng dự án và cần được bảo vệ bằng các biện pháp phòng ngừa tương tự như mã nhận dạng và mật khẩu người dùng. Tham khảo Các phương pháp bảo mật tốt nhất cho API để bảo vệ khoá của bạn khỏi việc sử dụng ngoài ý muốn. Việc này có thể dẫn đến mức sử dụng hạn mức không phù hợp và các khoản phí ngoài dự kiến cho tài khoản của bạn.

Sử dụng khoá API để truy cập vào Maps API

Khoá API là phương thức xác thực được ưu tiên để truy cập vào API Google Maps. Mặc dù vẫn hỗ trợ việc sử dụng mã nhận dạng ứng dụng, nhưng khoá API hỗ trợ các chế độ kiểm soát bảo mật chi tiết hơn và có thể được điều chỉnh để hoạt động với các địa chỉ web, địa chỉ IP và SDK dành cho thiết bị di động (Android và iOS) cụ thể. Để biết thông tin về cách tạo và bảo mật khoá API, hãy truy cập vào trang "Sử dụng khoá API" cho từng API hoặc SDK. (Ví dụ: đối với API JavaScript của Maps, hãy truy cập vào trang Sử dụng khoá API.)

Hiệu suất

Sử dụng thuật toán đợi luỹ thừa để xử lý lỗi

Nếu ứng dụng của bạn gặp lỗi do cố gắng gọi một API quá nhiều lần trong một khoảng thời gian ngắn (chẳng hạn như lỗi hạn mức), hãy cân nhắc sử dụng thuật toán thời gian đợi luỹ thừa để cho phép các yêu cầu xử lý. Thuật toán thời gian đợi luỹ thừa hữu ích nhất đối với các lỗi trong phạm vi 500.

Cụ thể, hãy điều chỉnh tốc độ của các truy vấn. Trong mã của bạn, hãy thêm khoảng thời gian chờ là S giây giữa các truy vấn. Nếu truy vấn vẫn dẫn đến lỗi hạn mức, hãy tăng gấp đôi khoảng thời gian chờ rồi gửi một truy vấn khác. Tiếp tục điều chỉnh khoảng thời gian chờ cho đến khi truy vấn trả về mà không có lỗi.

Gửi yêu cầu tương tác của người dùng theo yêu cầu

Bạn chỉ nên gửi yêu cầu đến các API có hoạt động tương tác của người dùng khi có nhu cầu. Điều này có nghĩa là bạn phải đợi người dùng cuối thực hiện một hành động (chẳng hạn như on-click) để bắt đầu yêu cầu API, sau đó sử dụng kết quả để tải bản đồ, đặt đích đến hoặc hiển thị thông tin phù hợp. Việc sử dụng phương pháp theo yêu cầu sẽ tránh được các yêu cầu không cần thiết đối với API, giúp giảm mức tiêu thụ API.

Tránh hiển thị nội dung lớp phủ khi bản đồ đang di chuyển

Tránh dùng Draw() để hiển thị nội dung lớp phủ tuỳ chỉnh trên bản đồ cùng lúc người dùng có thể đang di chuyển bản đồ. Vì bản đồ được vẽ lại mỗi khi người dùng di chuyển bản đồ, nên việc đặt nội dung lớp phủ trên bản đồ cùng một lúc có thể gây ra độ trễ hoặc hiện tượng giật hình. Chỉ thêm hoặc xoá nội dung lớp phủ khỏi bản đồ khi người dùng ngừng di chuyển hoặc thu phóng.

Tránh các thao tác chuyên sâu trong phương thức Draw

Theo nguyên tắc chung, bạn nên tránh các thao tác không vẽ có hiệu suất cao trong phương thức Draw(). Ví dụ: tránh dùng những nội dung sau trong mã phương thức Draw():

  • Những truy vấn trả về một lượng lớn nội dung.
  • Có nhiều thay đổi đối với dữ liệu đang hiển thị.
  • Thao tác với nhiều phần tử Mô hình đối tượng tài liệu (DOM).

Những thao tác này có thể làm giảm hiệu suất và gây ra độ trễ hoặc hiện tượng giật hình khi bản đồ kết xuất.

Sử dụng hình ảnh raster cho điểm đánh dấu

Sử dụng hình ảnh raster, chẳng hạn như hình ảnh ở định dạng .PNG hoặc .JPG, khi thêm điểm đánh dấu để xác định một vị trí trên bản đồ. Tránh sử dụng hình ảnh Đồ hoạ vectơ có thể mở rộng (SVG), vì việc kết xuất hình ảnh SVG có thể gây ra độ trễ khi bản đồ được vẽ lại.

Tối ưu hoá điểm đánh dấu

Hoạt động tối ưu hoá giúp nâng cao hiệu suất bằng cách hiển thị nhiều điểm đánh dấu dưới dạng một phần tử tĩnh duy nhất. Điều này hữu ích trong trường hợp cần có nhiều điểm đánh dấu. Theo mặc định, Maps JavaScript API sẽ quyết định xem có tối ưu hoá một điểm đánh dấu hay không. Khi có nhiều điểm đánh dấu, Maps JavaScript API sẽ cố gắng kết xuất các điểm đánh dấu bằng cách tối ưu hoá. Không phải tất cả các điểm đánh dấu đều có thể được tối ưu hoá; trong một số trường hợp, Maps JavaScript API có thể cần hiển thị các điểm đánh dấu mà không cần tối ưu hoá. Tắt tính năng kết xuất được tối ưu hoá cho ảnh GIF hoặc PNG động, hoặc khi mỗi điểm đánh dấu phải được kết xuất dưới dạng một phần tử DOM riêng biệt.

Tạo các cụm để quản lý việc hiển thị điểm đánh dấu

Để giúp quản lý việc hiển thị các điểm đánh dấu nhằm xác định vị trí trên bản đồ, hãy tạo một cụm điểm đánh dấu bằng thư viện Marker Clusterer. Thư viện Phân cụm điểm đánh dấu có các lựa chọn sau:

  • Kích thước lưới để chỉ định số lượng điểm đánh dấu cần nhóm lại với nhau trong một cụm.
  • Mức thu phóng tối đa, để chỉ định mức thu phóng tối đa để hiển thị cụm.
  • Đường dẫn hình ảnh cho hình ảnh đồ hoạ dùng làm biểu tượng điểm đánh dấu.

Xem nội dung

Để biết thông tin về cách quản lý chi phí của Google Maps Platform, bao gồm cả việc tạo ngân sách, sửa đổi hạn mức và thiết lập cảnh báo, hãy xem phần Quản lý chi phí.