Khắc phục sự cố

Lỗi

Trong trường hợp xảy ra lỗi, nội dung phản hồi của lỗi định dạng chuẩn sẽ được trả về và mã trạng thái HTTP sẽ được đặt thành trạng thái lỗi.

Phản hồi chứa một đối tượng có một đối tượng error với các khoá sau:

  • code: Trạng thái này giống với trạng thái HTTP của phản hồi.
  • message: Mô tả ngắn về lỗi.
  • status: Mã trạng thái cho biết bản chất của lỗi.

Ví dụ: việc gửi một tham số placeId không hợp lệ sẽ trả về lỗi sau:

{
  "error": {
    "code": 400,
    "message": "\"placeId\" value is malformed: \"aChIJqaknMTeuEmsRUYCD5Wd9ARM\"",
    "status": "INVALID_ARGUMENT"
  }
}

Các lỗi có thể xảy ra bao gồm:

Trạng thái Thông điệp Khắc phục sự cố
400 INVALID_ARGUMENT Khoá bạn cung cấp không hợp lệ. Khoá API của bạn không hợp lệ hoặc không được đưa vào yêu cầu. Hãy đảm bảo rằng bạn đã đưa vào toàn bộ khoá và bạn đã bật API cho khoá này.
400 INVALID_ARGUMENT Thông số "\"path\" chứa giá trị không hợp lệ: ☃" Yêu cầu của bạn chứa các đối số không hợp lệ. Nguyên nhân có thể gây ra lỗi này là:
  • Có vấn đề với thông số path của bạn.
    Hãy đảm bảo bạn có ít nhất 1 điểm và ít hơn 100 điểm. Mỗi điểm phải là một cặp số được phân tách bằng dấu phẩy, chẳng hạn như: 48.409114,-123.369158. Các điểm phải được phân tách bằng một dấu gạch dọc: "|".
  • Yêu cầu của bạn có chứa một placeId không hợp lệ.
  • Yêu cầu của bạn có cả placeIdpath. Bạn chỉ có thể chỉ định một trong các thông số này cho mỗi yêu cầu.

Lỗi này sẽ không được trả về nếu placeId được chuyển cho một con đường không còn tồn tại hoặc cho một địa điểm không phải là đường.

403 PERMISSION_DENIED Đã chặn yêu cầu chưa đăng ký. Vui lòng đăng ký bằng Google Developers Console. Yêu cầu đã bị từ chối vì một hoặc nhiều lý do sau đây:
  • Khoá API bị thiếu hoặc không hợp lệ.
  • Tài khoản của bạn chưa được bật tính năng thanh toán.
  • Đã vượt quá giới hạn sử dụng tự đặt.
  • Phương thức thanh toán đã cung cấp không còn hợp lệ (ví dụ: thẻ tín dụng đã hết hạn).

Để sử dụng các sản phẩm của Nền tảng Google Maps, bạn phải bật tính năng thanh toán trên tài khoản và tất cả các yêu cầu phải bao gồm một khóa API hợp lệ. Để khắc phục vấn đề này, hãy làm theo các bước sau:

404 NOT_FOUND Bạn cần bật HTTPS cho dịch vụ này. Đảm bảo rằng bạn đang gửi yêu cầu tới https://roads.googleapis.com/ chứ không phải http://roads.googleapis.com/.
429 RESOURCE_EXHAUSTED Yêu cầu bị điều tiết do đã đạt đến giới hạn yêu cầu của dự án. Bạn đã vượt quá hạn mức yêu cầu mà bạn đã thiết lập trong Google Cloud Platform Console. Giới hạn này thường được đặt là số yêu cầu/ngày, số yêu cầu/100 giây và số yêu cầu/100 giây/người dùng. Bạn nên định cấu hình giới hạn này để ngăn một nhóm nhỏ hoặc một nhóm người dùng sử dụng hết hạn mức hằng ngày, trong khi vẫn cho phép tất cả người dùng truy cập hợp lý. Hãy xem phần Giới hạn mức sử dụng API để định cấu hình các giới hạn này.

Thuật toán thời gian đợi luỹ thừa

Khi yêu cầu không thành công, bạn nên đảm bảo rằng bạn thử lại các yêu cầu bằng thuật toán thời gian đợi luỹ thừa. Ví dụ: nếu một yêu cầu không thành công một lần, hãy thử lại sau một giây, nếu yêu cầu bị lỗi lần nữa, hãy thử lại sau hai giây, rồi bốn giây, v.v. Điều này đảm bảo rằng các yêu cầu bị hỏng hoặc các lỗi thất bại trên quy mô lớn sẽ không làm tràn máy chủ của Google, vì nhiều ứng dụng tìm cách thử lại các yêu cầu rất nhanh chóng.

Câu hỏi thường gặp về cách khắc phục sự cố

Các vấn đề về triển khai

Tôi nên lấy mẫu vị trí xe của mình với tần suất như thế nào?
Bạn nên sử dụng tốc độ 1-10 giây một lần để có được kết quả nhanh chóng, chất lượng cao.
Có giới hạn về số điểm tôi có thể gửi cho mỗi cụm từ tìm kiếm không?
Có, một truy vấn có thể có tối đa 100 điểm.
Tôi nên sử dụng mức độ chính xác nào để lưu trữ các cặp vĩ độ/kinh độ đã chụp?
Để đảm bảo rằng các đường dẫn chụp nhanh theo đường ở tất cả các mức thu phóng, ngay cả ở mức thu phóng tối đa, bạn nên lưu trữ các cặp vĩ độ/kinh độ đã chụp ở 7 vị trí thập phân.
Tôi có thể sử dụng đa giác đã mã hoá để hiển thị đường dẫn chụp nhanh không?
Đường kẻ đa mã hoá được mã hoá chỉ có độ chính xác gồm 5 chữ số thập phân để tạo ra sai số khoảng 2 mét. Do đó, các đường đa tuyến được mã hoá sẽ không phù hợp nếu bạn muốn các đường dẫn đã chụp nhanh đi theo đường ở mức thu phóng cao.

Các sự cố thường gặp:

Một số điểm không được chụp nhanh hoặc tôi có khoảng trống trong đường dẫn đã chụp. Làm cách nào để sửa lỗi này?
  • Nếu bạn đang lấy mẫu điểm của mình vào các khoảng thời gian được tính giờ, hãy đảm bảo điểm của bạn được lấy mẫu ở các khoảng thời gian ngắn hơn (1 – 10 giây một lần). Nếu sử dụng khoảng thời gian dài hơn (ví dụ: 60 giây), thì thuật toán chụp nhanh đường phố có thể không xác định được các đường đã đi đủ chính xác.
  • Nếu đang nhấp vào bản đồ theo cách thủ công để tạo điểm, bạn rất dễ tạo đường dẫn có ít điểm hoặc điểm thưa thớt mà thuật toán chụp ảnh không xử lý tốt. Thuật toán chụp nhanh hoạt động tốt nhất cho các điểm gần nhau. Hãy dùng thử Bản minh hoạ về tính năng Bám đường vào hoặc sử dụng trình kiểm tra đường để thử nghiệm các đường dẫn của bạn.
Tại sao đường dẫn chụp nhanh của tôi bị giật hoặc hơi lệch khỏi đường khi tôi phóng to?
  • Bạn có đang cắt ngắn độ chính xác của các cặp vĩ độ/kinh độ đã chụp trước khi hiển thị chúng không? Việc lưu trữ các cặp vĩ độ/kinh độ được chụp nhanh ở độ chính xác dưới 7 chữ số thập phân sẽ gây ra lỗi chính xác khi đường dẫn được chụp nhanh được hiển thị trên bản đồ.
  • Bạn có đang sử dụng đa tuyến đã mã hóa không? Các đường đa hình bị mã hoá sẽ cắt ngắn các cặp vĩ độ/kinh độ thành 5 chữ số thập phân, tạo ra lỗi vài mét, dẫn đến các đường răng cưa bị răng cưa hoặc hơi lệch khỏi đường ở mức thu phóng cao.

Nếu không phải trường hợp nào ở trên, thì các ô bản đồ có thể đã được cập nhật gần đây, khiến các ô này không đồng bộ với chỉ mục đường được dùng để chụp nhanh. Nếu chỉ một vài truy vấn của bạn bị ảnh hưởng, thì đây có thể là nguyên nhân. Vì Google Maps được cập nhật thường xuyên, nên điều này đôi khi có thể xảy ra và có thể xảy ra thường xuyên hơn nếu bạn thường xuyên xem các đường dẫn cũ trên bản đồ (ví dụ: các đường dẫn đã được chụp nhanh vài tuần trước). Để hình ảnh hóa tối ưu, bạn nên bắt đầu lại các đường dẫn cũ ngay trước khi hiển thị các đường dẫn đó trên bản đồ để giảm thiểu sự không nhất quán giữa các ô bản đồ và chỉ mục đường dùng để giành lấy.

Đâu là nguyên nhân có thể khiến giới hạn tốc độ của đường X hiển thị không chính xác?
Giới hạn về tốc độ đến từ nhiều nguồn khác nhau về độ chính xác và phạm vi bao phủ. Nếu bạn thấy một mẫu, ví dụ như giới hạn tốc độ cho một loại đường cụ thể hoặc trong một khu vực cụ thể luôn bị sai, vui lòng làm theo các bước sau để cho chúng tôi biết:
  1. Mở Google Maps trên máy tính của bạn HOẶC ứng dụng Google Maps dành cho Android.
  2. Mở trình đơn bên trái.
  3. Chọn Gửi phản hồi. Lưu ý: bạn có thể được nhắc đăng nhập.
  4. Chọn Chỉnh sửa bản đồ.
  5. Chọn đoạn đường bạn muốn chỉnh sửa.
  6. Chọn Tiếp theo.
  7. Trong trường "Khác", hãy cho biết rằng tốc độ giới hạn cho đường đó là không chính xác.
  8. Chọn Gửi.
Bạn cũng có thể báo cáo các vấn đề khác tại đây (ví dụ: đường có tên không chính xác, được vẽ không chính xác, bị đóng hoặc riêng tư).
Tại sao đường dẫn của tôi bị cắt sang đường thay vì đi theo đường?
Để khắc phục vấn đề này, hãy kiểm tra các vấn đề sau:
  • Đảm bảo tham số interpolate được đặt thành true.
  • Kiểm tra để đảm bảo rằng các điểm dữ liệu ban đầu được lấy mẫu ở khoảng thời gian đủ gần (mỗi 1-10 giây).
Tại sao tôi lại nhận được nhiều đoạn đường được trả về trong đường dẫn đã chụp cho đường không có giới hạn tốc độ thay đổi?
Khi tham số interpolate được đặt thành true, truy vấn chụp nhanh đường đi sẽ trả về một đường kẻ đi theo đường xung quanh các góc, đường cong và đường vòng. Nếu đường cong, nhiều đoạn đường sẽ được trả về ngay cả khi giới hạn tốc độ không thay đổi để tạo hình nhiều đường tuân theo hình dạng đường.