Hướng dẫn này mô tả một số chiến lược để tối ưu hóa API Google Maps của bạn về mặt 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 tập trung vào dự án, xứng đáng được áp dụng các biện pháp phòng ngừa tương tự làm mã nhận dạng người dùng và mật khẩu. Xem xét Các phương pháp hay nhất về bảo mật API để bảo vệ khoá của bạn việc sử dụng ngoài ý muốn có thể dẫn đến việc sử dụng hạn mức quá hạn và các khoản phí ngoài dự kiến đối với tài khoản của bạn.
Sử dụng khoá API để truy cập API Maps
Khoá API là phương pháp xác thực ưu tiên để truy cập API Google Maps API. Mặc dù chúng tôi vẫn hỗ trợ mã ứng dụng khách, nhưng bạn vẫn có thể sử dụng khoá API hỗ trợ các 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 địa chỉ web, địa chỉ IP và SDK dành cho thiết bị di động (Android và iOS). Để biết thông tin về cách tạo và bảo mật khoá API, hãy chuyển đến phần "Sử dụng khoá API" cho mỗi API hoặc SDK. (Ví dụ: đối với API Maps JavaScript, hãy truy cập trang về 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 quá nhiều lần cố gắng gọi một API 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ý 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 bộ nhớ 500. Để biết thêm thông tin, hãy xem phần Xử lý mã trạng thái trả lại HTTP.
Cụ thể, hãy điều chỉnh tốc độ của các cụm từ tìm kiếm. Trong mã của bạn, hãy thêm
thời gian chờ S
giây giữa các truy vấn. Nếu truy vấn vẫn có kết quả
trong 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 thời gian chờ cho đến khi truy vấn được 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ó bao gồm hoạt động tương tác của người dùng khi có yêu cầu.
Tức là chờ 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 một
hoặc hiển thị thông tin phù hợp. Sử dụng phương pháp tiếp cận theo yêu cầu
tránh các yêu cầu không cần thiết đối với 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 nội dung lớp phủ tuỳ chỉnh trên một bản đồ tại cùng một thời điểm
thời gian mà người dùng có thể di chuyển bản đồ. Vì bản đồ được vẽ lại mỗi lần
người dùng di chuyển bản đồ, việc đặt nội dung lớp phủ trên bản đồ cùng một lúc có thể
làm gián đoạn hình ảnh hoặc trễ. Chỉ thêm hoặc xoá nội dung lớp phủ khỏi
bản đồ khi người dùng ngừng xoay hoặc thu phóng.
Tránh các thao tác chuyên sâu trong các phương thức Draw
Theo quy tắc chung, tốt nhất là bạn nên tránh đặt nặng vào hiệu suất
các thao tác không vẽ trong phương thức Draw()
. Ví dụ: tránh
sau đây trong mã phương thức Draw()
:
- Các 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 được hiển thị.
- Thao túng 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 chậm hiệu suất và gây ra tình trạng trễ hoặc gián đoạn hình ảnh khi bản đồ hiển thị.
Sử dụng hình ảnh đường quét để đá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 một vị trí trên bản đồ. Tránh sử dụng vectơ có thể mở rộng Hình ảnh đồ hoạ (SVG), do việc kết xuất hình ảnh SVG có thể gây ra độ trễ khi bản đồ được vẽ lại.
Đang tối ưu hoá điểm đánh dấu
Tính năng tối ưu hoá 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 hình ảnh tĩnh . Điều này rất hữu ích trong trường hợp cần một số lượng lớn điểm đánh dấu. Theo mặc định, API Maps JavaScript sẽ quyết định xem một điểm đánh dấu sẽ được tối ưu hoá. Khi có một số lượng lớn điểm đánh dấu, API JavaScript của Maps sẽ cố kết xuất điểm đánh dấu với 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 hiển thị Điểm đánh dấu mà không cần tối ưu hoá. Tắt tính năng hiển thị đượ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 hiển thị dưới dạng một phần tử DOM riêng biệt.
Tạo cụm để quản lý hiển thị điểm đánh dấu
Để giúp quản lý việc hiển thị điểm đánh dấu để xác định vị trí trên bản đồ, tạo một cụm điểm đánh dấu bằng cách sử dụng Thư viện Marker Clusterer. Thư viện Marker Clusterer 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 với nhau trong một cụm.
- Thu phóng tối đa, để chỉ định mức thu phóng tối đa mà để hiển thị cụm đó.
- Đường dẫn hình ảnh, để hình ảnh đồ hoạ dùng làm biểu tượng điểm đánh dấu.
Xem nội dung
Để lập kế hoạch ngân sách và kiểm soát chi phí, hãy làm như sau:
- Đặt thông báo về ngân sách
để theo dõi cách chi phí của bạn tăng lên một mức cụ thể. Đặt ngân sách
không giới hạn mức sử dụng API mà chỉ thông báo cho bạn khi chi phí của bạn gần đạt đến
số tiền đã chỉ định.
- Giới hạn mức sử dụng API hằng ngày để quản lý chi phí cho các API có thể tính phí. Bằng cách đặt giới hạn về yêu cầu trên mỗi , bạn có thể giới hạn chi phí của mình. Sử dụng một phương trình đơn giản để xác định giá trị hằng ngày của bạn tối đa, tuỳ thuộc vào số tiền bạn muốn chi tiêu: (hàng tháng chi phí/giá mỗi giao dịch )/30 = số yêu cầu tối đa mỗi ngày (đối với một API). Cách triển khai cụ thể của bạn có thể sử dụng nhiều API có thể tính phí, do đó hãy điều chỉnh phương trình nếu cần. Đáp Khoản tín dụng 200 đô la Mỹ cho API Google Maps có sẵn mỗi tháng, do đó, hãy tính giá trị đó vào tính toán của bạn.
- Sử dụng nhiều dự án để tách biệt, ưu tiên và theo dõi mức sử dụng. Ví dụ: giả sử bạn thường xuyên sử dụng API của Nền tảng Google Maps trong kiểm thử. Bằng cách tạo một dự án riêng để thử nghiệm – có hạn mức và Khoá API – bạn có thể kiểm thử kỹ lưỡng đồng thời đề phòng những bất ngờ chi tiêu quá mức.
Quản lý mức sử dụng trong Maps
Sử dụng một bản đồ duy nhất trên mỗi trang là một cách hay để tối ưu hoá hiển thị bản đồ, vì người dùng thường chỉ tương tác với một bản đồ tại một thời điểm. Ứng dụng của bạn có thể thao túng bản đồ để hiển thị các tập dữ liệu khác nhau, tuỳ thuộc vào tương tác của khách hàng và nhu cầu của bạn.
Sử dụng hình ảnh tĩnh
Chi phí cho các yêu cầu sử dụng hình ảnh động (Bản đồ động và Chế độ xem đường phố động) hơn Bản đồ tĩnh và Chế độ xem phố tĩnh. Nếu không đoán trước được người dùng tương tác với Bản đồ hoặc Chế độ xem phố (thu phóng hoặc kéo), hãy sử dụng ảnh tĩnh phiên bản của các API này.
Hình thu nhỏ - bản đồ và ảnh rất nhỏ - là một cách sử dụng hiệu quả khác cho Static Bản đồ và Chế độ xem đường phố tĩnh. Các mặt hàng này được lập hoá đơn với mức phí thấp hơn và ngày tương tác của người dùng (khi nhấp) và có thể đưa người dùng đến phiên bản động để xem Trải nghiệm Google Maps.
Sử dụng API Nhúng của Maps
Bạn có thể sử dụng API Nhúng của Maps để thêm bản đồ có một điểm đánh dấu hoặc một bản đồ động, miễn phí. Sử dụng API nhúng của Maps dành cho các ứng dụng mà trong đó và không tuỳ chỉnh bản đồ. Yêu cầu API Nhúng của Maps sử dụng Chế độ Chỉ đường, Chế độ xem hoặc Chế độ tìm kiếm sẽ bị tính phí (xem bảng giá để biết chi tiết).
Sử dụng SDK bản đồ di động cho các ứng dụng trên điện thoại di động
Đối với ứng dụng trên điện thoại di động, hãy sử dụng SDK Bản đồ dành cho Android hoặc SDK Bản đồ dành cho iOS khi hiển thị bản đồ. Sử dụng API tĩnh của Maps hoặc API Maps JavaScript khi không áp dụng yêu cầu thông qua các SDK dành cho thiết bị di động.
Quản lý mức sử dụng trong Tuyến
Giới hạn điểm tham chiếu API Chỉ đường
Khi có thể, hãy giới hạn các mục nhập của người dùng trong một truy vấn ở tối đa 10 điểm tham chiếu. Yêu cầu có hơn 10 điểm tham chiếu sẽ được tính phí cao hơn.
Sử dụng tính năng tối ưu hoá API Đường đi để tối ưu hoá việc định tuyến
Yêu cầu sử dụng đối số tối ưu hoá điểm tham chiếu được tính phí cao hơn. Để biết thêm thông tin, hãy xem bài viết Tối ưu hoá điểm tham chiếu.
Đối số tối ưu hoá sắp xếp các điểm tham chiếu để đảm bảo định tuyến tối ưu, có nghĩa là việc di chuyển từ A đến E sẽ tốt hơn khi được tối ưu hoá (A-B-C-D-E) so với trình tự ngẫu nhiên của một tuyến không được tối ưu hoá (chẳng hạn như A-D-B-C-E).
Sử dụng mô hình lưu lượng truy cập theo thời gian thực trong API hướng dẫn và API ma trận từ xa
API hướng dẫn và API ma trận khoảng cách
các yêu cầu bao gồm mô hình lưu lượng truy cập theo thời gian thực sẽ được lập hoá đơn ở mức cao hơn.
Mô hình giao thông theo thời gian thực sẽ được bật bằng cách đặt thời gian khởi hành thành now
.
Nếu mô hình lưu lượng truy cập bị loại khỏi yêu cầu, kết quả sẽ dựa trên chỉ dựa vào các yếu tố vật lý: đường sá, khoảng cách và giới hạn tốc độ.
Sử dụng tuyến đường đã đi & Đường gần nhất khi dữ liệu GPS không chính xác
Các tính năng của API Maps Road, Tuyến đường đã đi và Đường gần nhất, được bao gồm trong bậc nâng cao và có mức phí cao hơn . Sử dụng các tính năng này khi dữ liệu GPS không chính xác và API đường có thể giúp xác định đường chính xác. Tốc độ Giới hạn, một tính năng khác của API đường chỉ dành cho khách hàng Theo dõi thành phần.
Các vị trí giới hạn tốc độ lấy mẫu với khoảng thời gian từ 5 đến 15 phút
Để giảm thiểu số lượng lệnh gọi đến API Maps Road Dịch vụ Giới hạn tốc độ, lấy mẫu vị trí của thành phần trong khoảng từ 5 đến 15 phút ngắt quãng. Giá trị chính xác phụ thuộc vào tốc độ tải nội dung đi du lịch. Nếu một thành phần là cố định, thì một mẫu vị trí sẽ là là đủ. Bạn không cần phải thực hiện nhiều cuộc gọi.
Để giảm thiểu độ trễ tổng thể, hãy gọi dịch vụ Giới hạn tốc độ sau khi bạn đã tích luỹ một số dữ liệu thay vì gọi API mỗi khi địa điểm của nội dung di động được nhận.
Quản lý mức sử dụng trên Google Địa điểm
Tối ưu hoá việc triển khai tính năng Tự động hoàn thành về địa điểm
Để tối ưu hóa chi phí sử dụng tính năng Tự động hoàn thành về địa điểm:
sử dụng mặt nạ trường trong các tiện ích Tự động hoàn thành JavaScript, Android và iOS để chỉ trả về Trường dữ liệu địa điểm mà bạn cần.
chọn phương thức thanh toán tuỳ thuộc vào trường hợp sử dụng của bạn. Tuỳ thuộc vào việc cách triển khai của bạn có sử dụng phiên Autcomplete hay không, bạn sẽ bị tính phí theo các SKU Tự động hoàn thành – Theo yêu cầu hoặc Tự động hoàn thành – Mỗi phiên.
Để biết thêm thông tin và hướng dẫn về cách chọn phương án phù hợp cho trường hợp sử dụng của bạn, hãy tham khảo bài viết Các phương pháp hay nhất để tối ưu hoá chi phí cho tính năng Tự động hoàn thành.
Dữ liệu trả về cho các trường cụ thể trong yêu cầu Chi tiết địa điểm và Tìm kiếm địa điểm
Bạn có thể tuỳ chỉnh yêu cầu Chi tiết địa điểm và Tìm kiếm địa điểm để trả về dữ liệu cho các trường cụ thể được dùng trong ứng dụng của bạn. Các trường này được chia thành danh mục: Cơ bản, Tiếp xúc và Bầu không khí. Yêu cầu không chỉ định bất kỳ trường nào sẽ nhận dữ liệu cho tất cả các trường.
Thanh toán cho yêu cầu Chi tiết địa điểm dựa trên loại và số tiền dữ liệu được yêu cầu. Những yêu cầu không nêu rõ bất kỳ trường nào sẽ được lập hoá đơn ở mức giá đầy đủ. Để biết thêm thông tin, xem Chi tiết về địa điểm và Tìm kiếm địa điểm.
Giảm chi phí bằng cách sử dụng API mã hóa địa lý
Nếu ứng dụng của bạn xử lý địa chỉ do người dùng nhập, thì các địa chỉ đó sẽ đôi khi không rõ ràng (không đầy đủ, sai chính tả hoặc được định dạng không chính xác). Phân biệt các địa chỉ bằng tính năng Tự động hoàn thành, sau đó sử dụng mã địa điểm để xem vị trí của các địa điểm đó.
Tuy nhiên, nếu có địa chỉ chính xác (hoặc gần địa chỉ đó), bạn có thể giảm bằng cách sử dụng Mã hoá địa lý thay vì Tự động hoàn thành. Để biết thêm thông tin, hãy xem Các phương pháp hay nhất mã hóa địa lý địa chỉ.
Cách hoạt động của hạn mức trên Nền tảng Google Maps
Tất cả API của chúng tôi đều có giới hạn về số lượng cuộc gọi mà mỗi khách hàng có thể thực hiện. Các hạn mức được thiết lập theo từng phút. Khi bạn đã đạt đến hạn mức lệnh gọi trên một API nhất định trong một phút nữa, thì các lệnh gọi trong tương lai sẽ không được chấp nhận cho đến phút.
Chỉ các yêu cầu thành công và yêu cầu gây ra lỗi máy chủ mới được tính vào hạn mức. Các yêu cầu không xác thực được sẽ không được tính vào hạn mức.
Ước tính chi phí cho bất kỳ sản phẩm API GMP nào dựa trên tổng số lượng yêu cầu của bạn.