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 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: Nội dung 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 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ó trong yêu cầu. Vui lòng đảm bảo rằng bạn đã thêm toàn bộ khoá và đã bật API cho khoá này.
400 INVALID_ARGUMENT "Thông số "path" chứa một 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ệ. Những nguyên nhân có thể gây ra lỗi này là:
  • Vấn đề với tham số path.
    Vui lòng đảm bảo bạn có ít nhất 1 và dưới 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 dấu gạch chéo: '|'.
  • Yêu cầu của bạn có một placeId không hợp lệ.
  • Yêu cầu của bạn bao gồm cả placeIdpath. Bạn chỉ có thể chỉ định một trong các tham số này cho mỗi yêu cầu.

Lỗi này sẽ không được trả về nếu bạn truyền placeId 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 Yêu cầu chưa đăng ký đã bị chặn. Vui lòng đăng ký bằng Google Developers Console. Yêu cầu của bạn bị từ chối vì một hoặc nhiều lý do sau:
  • 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.
  • Bạ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 Google Maps Platform, bạn phải bật tính năng thanh toán trên tài khoản và tất cả yêu cầu phải có một khoá 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 Dịch vụ này yêu cầu sử dụng HTTPS. Đảm bảo rằng bạn đang gửi yêu cầu đến 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 dự án. Bạn đã vượt quá hạn mức yêu cầu mà bạn đã định cấu hình trong Bảng điều khiển Google Cloud Platform. Giới hạn này thường được đặt là số yêu cầu mỗi ngày, số yêu cầu mỗi 100 giây và số yêu cầu mỗi 100 giây trên mỗi người dùng. Bạn nên định cấu hình giới hạn này để ngăn một người dùng hoặc một nhóm nhỏ 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 một cách 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 phải đảm bảo rằng bạn thử lại các yêu cầu theo 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 lại không thành công, hãy thử lại sau hai giây, sau đó là 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 lỗi trên quy mô lớn không làm ngập máy chủ của Google, vì nhiều ứng dụng cố gắng thử lại các yêu cầu rất nhanh.

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

Vấn đề về việc triển khai

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

Các vấn đề thường gặp

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

Điều gì có thể khiến giới hạn tốc độ cho đường X hiển thị không chính xác?
Giới hạn tốc độ được lấy từ một số nguồn có độ chính xác và phạm vi khác nhau. Nếu bạn phát hiện thấy một mẫu, chẳng hạn như giới hạn tốc độ cho một loại đường cụ thể hoặc ở một khu vực cụ thể luôn 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 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 ý kiến 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 mà 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 giới hạn tốc độ không chính xác đối với đường đó.
  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ụ: nếu đường có tên không chính xác, được vẽ không chính xác hoặc đã đóng hoặc là đường tư nhân).
Tại sao đường dẫn được chụp nhanh của tôi lại cắt góc thay vì đi theo đường?
Để khắc phục vấn đề này, hãy kiểm tra những điều sau:
  • Đảm bảo bạn đã đặt tham số interpolate 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 đến 10 giây).
Tại sao tôi nhận được nhiều đoạn đường được trả về trong đường dẫn chụp nhanh cho một con đường không có thay đổi về giới hạn tốc độ?
Khi tham số interpolate được đặt thành true, truy vấn chụp nhanh theo đường sẽ trả về một đường đa tuyến theo đường quanh các góc, đường cong và vòng xoay. 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 một đường đa tuyến theo sát hình học đường.