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á mức sử dụng API Google Maps 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 hay nhất về bảo mật

Khoá API là thông tin xác thực chú trọng vào dự án và cần phải có biện pháp phòng ngừa giống như mã nhận dạng và mật khẩu người dùng. Xem lại Các phương pháp hay nhất về bảo mật API để bảo mật khoá khỏi việc sử dụng ngoài ý muốn, điều này có thể dẫn đến việc sử dụng quá hạn mức và mức phí ngoài dự kiến đối với tài khoản của bạn.

Sử dụng các khóa 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ù việc sử dụng mã ứng dụng hiện vẫn được hỗ trợ, các 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 địa chỉ web, địa chỉ IP và SDK dành cho thiết bị di động cụ thể (Android và iOS). Để biết thông tin về cách tạo và bảo mật khoá API, hãy truy cập trang "Sử dụng Khoá API" cho mỗi API hoặc SDK. (Ví dụ: đối với API JavaScript cho Maps, hãy truy cập vào trang về Sử dụng khoá API.)

Hiệu suất

Sử dụng thời gian đợi luỹ thừa để xử lý lỗi

Nếu ứng dụng của bạn gặp lỗi khi 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 QPS, hãy cân nhắc sử dụng tính năng đợi luỹ thừa để cho phép các yêu cầu xử lý.

Cụ thể, bạn sẽ điều chỉnh tốc độ của các truy vấn. Trong mã, hãy thêm thời gian chờ là S giây giữa các lượt truy vấn. Nếu truy vấn vẫn dẫn đến lỗi QPS, hãy nhân đô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 gặp 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 các yêu cầu đến các API có chứa hoạt động tương tác của người dùng theo yêu cầu. Điều này có nghĩa là chờ người dùng cuối thực hiện một thao tác (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 đối với các 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 sử dụng Draw() để hiển thị nội dung lớp phủ tuỳ chỉnh trên bản đồ cùng lúc với thời điểm người dùng 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 gián đoạn hình ảnh. 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 phương thức Draw

Theo nguyên tắc chung, bạn nên tránh các thao tác nặng về hiệu suất không vẽ trong phương thức Draw(). Ví dụ: hãy tránh sau đây trong mã phương thức Draw() của bạn:

  • 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 được hiển thị.
  • Sửa đổ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 giảm hiệu suất và gây ra độ trễ hình ảnh hoặc tình trạng giật hình khi bản đồ kết xuất.

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 bản đồ được vẽ lại.

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 phần tử tĩnh duy nhất. Điều này rất hữu ích trong trường hợp cần một số lượng lớn các điểm đánh dấu. Theo mặc định, API JavaScript của Maps sẽ quyết định xem có tối ưu hoá điểm đánh dấu hay không. Khi số lượng điểm đánh dấu lớn, API Maps JavaScript sẽ cố gắng kết xuất các điểm đánh dấu bằng tính năng tối ưu hóa. Không phải tất cả Điểm đánh dấu đều có thể được tối ưu hóa; 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 hóa. Tắt tính năng kết xuất hình ảnh tối ưu cho ảnh GIF hoặc PNG hoặc khi mỗi điểm đánh dấu phải được hiển thị dưới dạng phần tử DOM riêng biệt.

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

Để 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 đánh dấu bằng cách sử dụng thư viện Marker Clusterer. Thư viện Trình đánh dấu cụm có các tùy chọn cho:

  • Kích thước lưới, để chỉ định số lượng điểm đánh dấu để nhóm lại 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à sẽ hiển thị cụm.
  • Đường dẫn hình ảnh, để hình ảnh đồ họa sử dụng làm biểu tượng điểm đánh dấu.

Mức tiêu thụ

Để lập kế hoạch ngân sách và kiểm soát chi phí, hãy làm như sau:

  • Đặt cảnh báo ngân sách để theo dõi mức chi phí của bạn đang tăng lên theo một số tiền cụ thể. Việc đặt ngân sách không giới hạn mức sử dụng API – chỉ giới hạn 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í của các API có thể thanh toán. Bằng cách đặt giới hạn số yêu cầu mỗi ngày, 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ới hạn hằng ngày của bạn, tuỳ thuộc vào số tiền bạn muốn chi tiêu: (chi phí hằng tháng/giá mỗi lượt )/30 = giới hạn yêu cầu mỗi ngày (đối với một API). Quá trình triển khai cụ thể của bạn có thể sử dụng nhiều API có thể lập hoá đơn, vì vậy, hãy điều chỉnh phương trình nếu cần. Bạn có thể sử dụng khoản tín dụng API Google Maps trị giá 200 đô la Mỹ mỗi tháng để tính toán khoản đó.
  • Sử dụng nhiều dự án để tách biệt, sắp xếp mức độ ưu tiên và theo dõi mức sử dụng của bạn. Ví dụ: giả sử bạn thường xuyên sử dụng các API Nền tảng Google Maps trong các thử nghiệm của mình. Bằng cách tạo một dự án riêng cho thử nghiệm – với hạn mức và khoá API riêng, bạn có thể kiểm tra kỹ lưỡng trong khi tránh phải chi tiêu quá mức bất ngờ.

Quản lý mức tiêu thụ trên Maps

Dùng một bản đồ duy nhất cho mỗi trang là một cách hiệu quả để tối ưu hoá chế độ 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ác trên bản đồ để hiển thị các tập dữ liệu khác nhau, tuỳ thuộc vào nhu cầu và tương tác của khách hàng.

Sử dụng hình ảnh tĩnh

Các yêu cầu sử dụng hình ảnh động (Bản đồ động và Chế độ xem phố linh động) sẽ tốn nhiều chi phí hơn so với Bản đồ tĩnh và Chế độ xem phố tĩnh. Nếu bạn không thấy trước được tương tác của người dùng với Map hoặc Chế độ xem phố (thu phóng hoặc kéo), hãy sử dụng các phiên bản tĩnh của các API này.

Hình thu nhỏ - bản đồ và ảnh rất nhỏ - là một cách hay khác cho Bản đồ tĩnh và Chế độ xem phố tĩnh. Các mục này được tính phí ở mức thấp hơn và khi người dùng tương tác (khi nhấp) và có thể đưa người dùng đến một phiên bản động để có trải nghiệm Google Maps đầy đủ.

Sử dụng Maps Nhúng API

Bạn có thể sử dụng Maps Nhúng API để thêm một bản đồ miễn phí có một điểm đánh dấu hoặc một bản đồ động. Sử dụng API Nhúng bản đồ cho các ứng dụng yêu cầu một điểm đánh dấu duy nhất và không cần tuỳ chỉnh bản đồ. Các 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ẽ được lập hóa đơn (xem bảng giá để biết thông tin chi tiết).

Sử dụng SDK bản đồ dành cho thiết bị di động cho ứng dụng dành cho thiết bị di động

Đối với ứng dụng dành cho thiết bị di động, hãy sử dụng SDK Maps dành cho Android hoặc SDK Maps dành cho iOS khi hiển thị bản đồ. Hãy sử dụng API Maps tĩnh hoặc API JavaScript của Maps khi các yêu cầu loại trừ bằng cách sử dụng SDK dành cho thiết bị di động.

Quản lý mức tiêu thụ trong tuyến đường

Giới hạn điểm tham chiếu API Chỉ đường

Khi có thể, hãy giới hạn 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. Những yêu cầu chứa hơn 10 điểm tham chiếu sẽ được lập hóa đơn theo tỷ lệ cao hơn.

Sử dụng tính năng tối ưu hoá API Chỉ đường để định tuyến tối ưu

Các yêu cầu sử dụng đối số tối ưu hóa điểm tham chiếu sẽ được tính phí theo tỷ lệ cao hơn. Để biết thêm thông tin, hãy xem bài viết Tối ưu hóa Đ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, nghĩa là việc di chuyển từ A đến E là một trải nghiệm 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 đường không được tối ưu hoá (chẳng hạn như A-D-B-C-E).

Dùng mô hình lưu lượng truy cập theo thời gian thực trong API chỉ đường và API ma trận khoảng cách

Các yêu cầu API Chỉ đường và API Ma trận khoảng cách bao gồm các mô hình lưu lượng truy cập theo thời gian thực sẽ được tính phí cao hơn. Bật mô hình giao thông theo thời gian thực 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ị bỏ qua trong một yêu cầu, thì kết quả sẽ chỉ dựa trên các yếu tố thực tế: đường, khoảng cách và giới hạn tốc độ.

Sử dụng Tuyến đường đi lạ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 Maps, Tuyến đường đi lại và Đường gần đây nhất sẽ được đưa vào cấp nâng cao và sẽ được lập hoá đơn 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 đường. Giới hạn tốc độ, 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.

Vị trí giới hạn tốc độ lấy mẫu trong khoảng thời gian từ 5 đến 15 phút

Để giảm thiểu số lượng lệnh gọi đến dịch vụ Giới hạn tốc độ API Maps Maps, hãy lấy mẫu vị trí của tài sản tại các khoảng thời gian từ 5 đến 15 phút. Giá trị chính xác phụ thuộc vào tốc độ truyền tải của một tài sản. Nếu một thành phần tĩnh, thì chỉ cần một mẫu vị trí là đủ. Bạn không cần 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 tích luỹ một số dữ liệu thay vì gọi API mỗi khi nhận được vị trí của tài sản trên thiết bị di động.

Quản lý mức tiêu thụ trong Địa điểm

Tối ưu hoá phương thức triển khai tính năng Tự động hoàn thành địa điểm

Cách tối ưu hoá chi phí sử dụng tính năng Tự động hoàn thành địa điểm:

  • sử dụng mặt nạ trường trong các tiện ích Tự động hoàn thành JavaScript, AndroidiOS để chỉ trả về Các trường dữ liệu địa điểm mà bạn cần.

  • các tuỳ chọn thanh toán chọn lọc tuỳ thuộc vào trường hợp sử dụng của bạn. Tuỳ thuộc vào việc quá trình triển khai của bạn có sử dụng Phiên không hoàn chỉnh hay không, bạn sẽ bị tính phí SKU là Tự động hoàn thành – Mỗi 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 của bạn, hãy xem bài viết Các phương pháp hay nhất về việc tối ưu hoá chi phí cho tính năng Tự động hoàn thành.

Trả về dữ liệu cho các trường cụ thể trong thông tin chi tiết về Địa điểm và các yêu cầu Tìm kiếm địa điểm

Bạn có thể tuỳ chỉnh Thông tin chi tiết về địa điểm và yêu cầu Tìm kiếm địa điểm để trả về dữ liệu cho các trường cụ thể dùng trong ứng dụng của bạn. Các trường này được chia thành các danh mục: Cơ bản, Liên hệKhí quyển. Những yêu cầu không chỉ định bất kỳ trường nào sẽ nhận được dữ liệu cho tất cả các trường.

Việc lập hóa đơn cho các yêu cầu Thông tin chi tiết về địa điểm dựa trên các loại và lượng dữ liệu được yêu cầu. Các yêu cầu không chỉ định bất kỳ trường nào sẽ bị tính phí theo tỷ lệ đầy đủ. Để biết thêm thông tin, hãy xem bài viết Chi tiết địa điểmTì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ý các địa chỉ do người dùng nhập, thì các địa chỉ đô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 để nhận vị trí.

Tuy nhiên, nếu có địa chỉ chính xác (hoặc gần bằng địa chỉ đó), bạn có thể giảm chi phí bằng cách sử dụng phương thức Mã hoá địa lý thay vì Tự động hoàn thành. Để biết thêm thông tin, hãy xem phần Các phương pháp hay nhất về mã hóa địa lý.

Cách hoạt động của hạn mức của Nền tảng Google Maps

Tất cả các API của chúng tôi đều giới hạn 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 này được định cấu hình theo từng phút. Khi bạn đã đạt hạn mức lệnh gọi trên một API nhất định trong một phút, các lệnh gọi trong tương lai sẽ không được chấp nhận cho đến phút tiếp theo.

Chỉ những yêu cầu thành công và các yêu cầu gây ra lỗi máy chủ mới được tính vào hạn mức. Những yêu cầu không đạt yêu cầu sẽ không được tính vào hạn mức.

Một số API của Maps có biện pháp thực thi mỗi giây bên cạnh việc thực thi hạn mức mỗi phút. Việc thực thi mỗi giây này không đảm bảo mức sử dụng đồng nhất trong toàn bộ phút và cũng sẽ không ngăn bạn đạt hạn mức sử dụng trong phút đó. Tính năng này giúp bạn không sử dụng hết hạn mức trong một hoặc hai phút đầu tiên và bảo vệ bạn không bị gián đoạn dịch vụ trong trường hợp mức sử dụng đột ngột tăng đột biến. Để xử lý những điểm khác biệt trong biện pháp thực thi này, hãy lên kế hoạch sử dụng hạn mức và yêu cầu bằng cách trung bình sử dụng QPM trên các QPS.

Các API GMP thực thi mỗi giây là API chỉ đường, API ma trận khoảng cách, API độ cao, API mã hóa địa lý, API địa điểm và API đường.

Ước tính chi phí của bạn 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.