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 API Google Maps về mặt bảo mật, hiệu suất và mức sử dụng.

Bảo mật

Xem lại các phương pháp hay nhất về bảo mật

Khoá API là thông tin xác thực theo từng dự án và cần được áp dụng các biện pháp phòng ngừa tương tự như đối với mã nhận dạng người dùng và mật khẩu. Hãy xem Các phương pháp hay nhất về bảo mật 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 việc sử dụng hạn mức không đúng cách và các khoản phí không mong muốn cho tài khoản của bạn.

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

Khoá API là phương thức xác thự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ã ứng dụng, nhưng khoá API hỗ trợ các biện pháp 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 chuyển đến 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 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 đợi luỹ thừa để cho phép xử lý các yêu cầu. Thuật toán đợ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

Chỉ gửi yêu cầu đến các API có lượt tương tác của người dùng theo yêu cầu. Tức 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 thích hợp. Việc sử dụng phương pháp theo yêu cầu sẽ tránh các yêu cầu không cần thiết đến API, giảm mức sử dụng API.

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

Tránh sử 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 lúc có thể gây ra độ trễ hoặc kết xuất gián đoạn. Chỉ thêm hoặc xoá nội dung lớp phủ khỏi bản đồ sau khi người dùng ngừng di chuyển hoặc thu phóng.

Tránh các thao tác tốn nhiều tài nguyên 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ẽ nhưng tốn nhiều tài nguyên trong phương thức Draw(). Ví dụ: tránh những thao tác sau trong mã phương thức Draw():

  • Các truy vấn trả về một lượng lớn nội dung.
  • 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).

Các thao tác này có thể làm chậm hiệu suất và gây ra độ trễ hoặc hình ảnh bị giật 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 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

Quá trình tối ưu hoá giúp nâng cao hiệu suất bằng cách kết xuất nhiều điểm đánh dấu dưới dạng một phần tử tĩnh. Đ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, API JavaScript của Maps sẽ quyết định xem một điểm đánh dấu có được tối ưu hoá hay không. Khi có nhiều điểm đánh dấu, API JavaScript của Maps 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ả điểm đánh dấu đều có thể được tối ưu hoá. Trong một số trường hợp, API JavaScript của Maps có thể cần kết xuất đ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 GIF động hoặc PNG, 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ụm để quản lý việc hiển thị điểm đánh dấu

Để giúp quản lý việc hiển thị điểm đánh dấu nhằm xác định vị trí trên bản đồ, hãy tạo cụm điểm đánh dấu bằng thư viện Marker Clusterer. Thư viện Marker Clusterer bao gồm 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 trong một cụm.
  • Mức thu phóng tối đa, để chỉ định mức thu phóng tối đa mà bạn muốn hiển thị cụm.
  • Đường dẫn hình ảnh, cho các 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 bài viết Quản lý chi phí.