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 xét các phương pháp hay nhất về bảo mật
Khoá API là thông tin xác thực tập trung vào dự án, 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 người dùng và mật khẩu. Xem lại 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, 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 pháp xác thực ưu tiên để truy cập vào API Google Maps. Mặc dù mã ứng dụng khách vẫn được hỗ trợ, 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 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 Maps JavaScript API, hãy truy cập vào trang Sử dụng khoá API.)
Hiệu suất
Sử dụng thuật toán thời gian đợi luỹ thừa để xử lý lỗi
Nếu ứng dụng của bạn gặp lỗi do 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 xử lý các yêu cầu. Thuật toán thời gian đợi luỹ thừa hữu ích nhất đối với các lỗi trong dải 500.
Cụ thể, hãy điều chỉnh tố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 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ần.
Đ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 điểm đế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 giúp 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 khi 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 hiện tượng giật hình hoặc giật hình ảnh. Chỉ thêm hoặc xoá nội dung lớp phủ khỏi bản đồ sau khi người dùng ngừng xoay/lướt 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ẽ, tốn nhiều hiệu suất trong phương thức Draw(). Ví dụ: tránh
những điều sau trong mã phương thức Draw() của bạn:
- Cụm từ tìm kiếm 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 hiện tượng giật hình hoặc giật hình ảnh khi bản đồ hiển thị.
Sử dụng hình ảnh đường quét cho điểm đánh dấu
Sử dụng hình ảnh đường quét, 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 vẽ lại bản đồ.
Đang tối ưu hoá hộp mực
Tính nă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ó một số lượng lớn đ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 hiển thị các điểm đánh dấu bằng tính năng tối ưu hoá. Không phải điểm đánh dấu nào cũng có thể 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 ả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ụ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 phân 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 bao gồm các tuỳ chọn cho:
- 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 mà tại đó cụm sẽ hiển thị.
- Đườ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í Google Maps Platform, bao gồm cả việc tạo ngân sách, sửa đổi hạn mức và đặt cảnh báo, hãy xem phần Quản lý chi phí.