Độ mượt và độ chân thực
Bạn có thể tuỳ chỉnh giao diện và độ chính xác của đa giác đầu ra bằng cách sử dụng các tham số polygon_fidelity và enable_smoothing. Mặc dù các tuỳ chọn này độc lập, nhưng chúng hoạt động cùng nhau để xác định hình dạng cuối cùng.
polygonFidelity(polygon_fidelity): Độ phân giải. Kiểm soát kích thước của các ô lưới không gian cơ bản dùng để tính toán khu vực có thể tiếp cận.LOW: Sử dụng các ô lưới lớn nhất (rộng vài trăm mét). Phù hợp nhất để bao phủ các khu vực rộng lớn mà không có khoảng trống và giảm thiểu số lượng đỉnh, dẫn đến hình dạng tổng quát có thể ước tính quá mức khu vực có thể tiếp cận dọc theo các hành lang đường hẹp.MEDIUM: Độ chính xác và kích thước tải trọng cân bằng.HIGH: Sử dụng các ô lưới nhỏ nhất (khoảng 100-150 mét). Kết quả là đa giác vừa khít hơn với mạng lưới đường, có nhiều đỉnh hơn, nhưng có thể tạo ra các lỗ bên trong nơi mạng lưới đường thưa thớt.- Mặc định (
POLYGON_FIDELITY_UNSPECIFIED): Nếu bạn không chỉ định, dịch vụ sẽ tự động chọn độ phân giải dựa trên phương tiện di chuyển và thời gian, sử dụng các ô nhỏ hơn cho thời gian ngắn và choWALK, còn các ô lớn hơn cho thời gian dài. Để so sánh các đường đẳng thời gian trên các khoảng thời gian hoặc phương thức di chuyển khác nhau, hãy đặtpolygonFidelitymột cách rõ ràng để các đường này sử dụng cùng một độ phân giải.
Kích thước ô chỉ mang tính tương đối. Các đường đẳng thời rất lớn có thể được tổng quát hoá thêm để giữ cho kích thước phản hồi ở mức có thể quản lý được.
enableSmoothing(enable_smoothing): Tính thẩm mỹ. Kiểm soát việc có bo tròn các cạnh bậc thang của ô lưới do độ chân thực xác định hay không.false(Thô): Trả về ranh giới được căn chỉnh theo lưới. Các cạnh có vẻ lởm chởm hoặc có bậc, phản ánh các ô lưới. Phù hợp nhất cho độ chính xác phân tích, chẳng hạn như các phép kiểm tra điểm trong đa giác nghiêm ngặt.true(Làm mịn): Bo tròn các góc trong khi vẫn giữ nguyên diện tích của mỗi vòng. Phù hợp nhất để hiển thị trực quan trên bản đồ. Vì ranh giới không còn tuân theo các ô lưới, nên đừng sử dụng ranh giới này cho các bài kiểm thử điểm trong đa giác nghiêm ngặt.
Cách các thuộc tính này tương tác: Độ chân thực đặt chi tiết cơ sở mà thuật toán làm mượt sẽ tác động.
- Độ chân thực cao + Làm mượt: Tạo ra hình dạng chi tiết, trông tự nhiên và bám sát các điểm cuối của đường.
- Độ chân thực thấp + Làm mịn: Tạo ra hình dạng "đốm màu" rộng và khái quát.
Kích thước tải trọng và kết xuất
Đường đẳng thời lớn (đặc biệt là các yêu cầu có thời lượng dài với độ chân thực HIGH) có thể chứa hàng chục nghìn toạ độ và phản hồi JSON chưa nén có thể lên đến vài trăm kilobyte trở lên.
- Băng thông: Xin lưu ý rằng kích thước phản hồi JSON là đáng kể đối với các yêu cầu có thời lượng tối đa và độ chân thực cao.
- Hiển thị: Việc hiển thị các đa giác cực kỳ chi tiết sẽ ảnh hưởng đến hiệu suất của ứng dụng. Để giảm số lượng đỉnh và kích thước tải trọng, hãy chọn
polygonFidelity: MEDIUMhoặcLOW, hoặc đơn giản hoá hình học trên ứng dụng trước khi kết xuất bằng cách sử dụng thuật toán đơn giản hoá đường thẳng như Douglas-Peucker.
Độ trễ và thời gian chờ của ứng dụng
Độ trễ phản hồi tăng theo quy mô của mạng lưới đường bộ được duyệt qua: thời lượng ngắn và các chế độ WALK và BICYCLE là nhanh nhất, trong khi các yêu cầu DRIVE và TWO_WHEELER dài (đặc biệt là với TRAFFIC_AWARE) mất nhiều thời gian nhất.
- Thời gian chờ được đề xuất của ứng dụng: Định cấu hình thời hạn của ứng dụng HTTP hoặc gRPC thành ít nhất 30 giây để các yêu cầu dài không bị huỷ sớm do thời gian chờ ngắn của ứng dụng.
Xử lý lỗi
Triển khai logic thử lại bằng thuật toán đợi luỹ tiến và độ trễ ngẫu nhiên cho các phản hồi giới hạn tốc độ 429
RESOURCE_EXHAUSTED và lỗi phía máy chủ 5xx. Đừng thử lại các lỗi ứng dụng 400, 403 hoặc 404 mà không thay đổi yêu cầu:
INVALID_ARGUMENT (400): Kiểm tra để đảm bảotravelDurationnằm trong khoảng từ1sđến3600s(DRIVE/TWO_WHEELER) hoặc7200s(WALK/BICYCLE),locationkhông bị bỏ qua và không phải là(0, 0)(hoặcplacelà mã địa điểm hợp lệ) vàTRAFFIC_AWAREchỉ được dùng vớiDRIVEhoặcTWO_WHEELER.latitudehoặclongitudebị bỏ qua sẽ được coi là0.0, vì vậy, việc chỉ bỏ qua một trong hai giá trị này thường không gây ra lỗi400(trừ phi giá trị còn lại cũng là0.0). Hãy kiểm tra kỹ cả hai giá trị nếu đường đẳng thời xuất hiện không đúng vị trí.PERMISSION_DENIED (403): Xác minh rằng khoá API hoặc mã thông báo OAuth của bạn đã được đưa vào, đồng thời API Isochrones và tính năng thanh toán đã được bật trong dự án trên đám mây Google của bạn.NOT_FOUND (404): Không thể phân giảiplacethành một vị trí hoặc không thể điều chỉnh điểm xuất phát cho khớp với một đường gần đó mà phương thức di chuyển có thể sử dụng (trong phạm vi khoảng 200 mét hoặc ít hơn đối vớiWALKvàBICYCLE).RESOURCE_EXHAUSTED (429): Dự án của bạn đã vượt quá hạn mức yêu cầu mỗi phút (mặc định là 300 QPM). Thử lại với thời gian đợi luỹ thừa.