Để tạo đường đẳng thời, hãy cung cấp cho API một điểm xuất phát, một phương tiện đi lại (chẳng hạn như lái xe, xe hai bánh, đi xe đạp hoặc đi bộ) và một giới hạn thời gian. Bạn cũng có thể điều chỉnh lựa chọn ưu tiên về tuyến đường và giao diện trực quan của đa giác kết quả.
Phương tiện đi lại
Sử dụng tham số travelMode (travel_mode) bắt buộc để chỉ định phương thức vận chuyển:
DRIVE: Tính toán phạm vi có thể đến được cho xe ô tô chở khách dọc theo các tuyến đường có thể lái xe bằng cách sử dụng giới hạn tốc độ đã đăng, hệ thống phân cấp đường, hình phạt rẽ và (không bắt buộc) tình trạng giao thông theo thời gian thực.TWO_WHEELER: Tính toán phạm vi có thể đến được cho xe cơ giới hai bánh (chẳng hạn như xe máy hoặc xe tay ga) bằng cách sử dụng các quy tắc tiếp cận đường dành riêng cho phương tiện và tốc độ mô hình hoá thấp hơnDRIVEtrên đường cao tốc. Do đó, một đường đẳng thờiTWO_WHEELERthường bao phủ một khu vực lớn hơnBICYCLEnhưng nhỏ hơnDRIVEdọc theo đường cao tốc.BICYCLE: Tính toán phạm vi có thể đến được của người đi xe đạp dọc theo các đường phố, làn đường dành cho xe đạp và đường chung mà xe đạp có thể đi, với tốc độ được điều chỉnh theo loại đường và độ dốc, không bao gồm đường cao tốc và đường cao tốc có kiểm soát lối vào.WALK: Tính toán phạm vi có thể đến được của người đi bộ dọc theo vỉa hè, lối đi bộ, đường mòn và đường phố mà người đi bộ có thể tiếp cận, với tốc độ đi bộ được điều chỉnh theo độ dốc. Việc đi bộ sẽ bỏ qua các quy định hạn chế về xe một chiều.
Chân trời thời gian
Ràng buộc chính mà bạn cung cấp cho dịch vụ là travelDuration (travel_duration). Thuộc tính này xác định khoảng thời gian cho phép tính.
- Thời lượng tối thiểu và tối đa: Thời lượng phải ít nhất là
"1s"(1 giây). Giá trị 0 ("0s"), thời lượng âm và thời lượng dưới 1 giây (chẳng hạn như"0.5s") sẽ trả về lỗi400 INVALID_ARGUMENT. API này hỗ trợ thời gian di chuyển tối đa là 3.600 giây (1 giờ) cho các chế độDRIVEvàTWO_WHEELER, và 7.200 giây (2 giờ) cho các chế độWALKvàBICYCLE. - Tối thiểu hoá đa giác: Vì API chuyển đổi các đoạn đường đã đến thành các ô lưới không gian, nên thời lượng rất ngắn sẽ trả về một đa giác nhỏ bao phủ các ô lưới xung quanh điểm xuất phát được điều chỉnh.
- Hiệu suất: Thời gian tính toán sẽ thay đổi theo thời lượng được yêu cầu và phương tiện di chuyển đã chọn. Đường đẳng thời lái xe một giờ bao phủ một khu vực địa lý và mạng lưới đường bộ lớn hơn đáng kể so với đường đẳng thời đi bộ một giờ, dẫn đến độ trễ cao hơn cho yêu cầu lái xe.
- Định dạng: Vì API sử dụng
google.protobuf.Duration, nên thời lượng phải được định dạng dưới dạng chuỗi kết thúc bằng"s"(ví dụ:"3600s"), thay vì số nguyên.
Điểm xuất phát và tính năng bám đường
Bạn có thể chỉ định điểm xuất phát cho đường đẳng thời theo hai cách:
- Toạ độ (
location): Một cặp vĩ độ và kinh độ. Cung cấp cảlatitude(trong[-90, 90]) vàlongitude(trong[-180, 180]). Nếu bạn bỏ qua một trong hai giá trị này, API sẽ coi giá trị đó là0.0, tức là đặt điểm trên đường Xích đạo hoặc kinh tuyến gốc. Nếu bạn bỏ qua cả hai ({}) hoặc gửi(0, 0), API sẽ trả về lỗi400 INVALID_ARGUMENT. - Mã địa điểm (
place): Giá trị nhận dạng riêng biệt cho một địa điểm cụ thể trên Google Maps. Khi bạn cung cấp mã địa điểm, dịch vụ sẽ phân giải địa điểm đó thành toạ độ tâm và ghim điểm đó vào đường gần nhất. Sử dụng định dạng tên tài nguyên bắt đầu bằngplaces/(ví dụ:places/ChIJIQBpAG2ahYAR_6128GcTUEo); chúng tôi cũng chấp nhận mã địa điểm không có tiền tốplaces/. Để biết thêm thông tin về mã địa điểm, hãy xem bài viết Mã địa điểm.
Bất kể phương thức nhập là gì, API đều không tính thời gian di chuyển từ điểm thực tế chính xác nếu điểm đó không nằm trên đường, chẳng hạn như bên trong công viên hoặc toà nhà. Để xử lý tình huống này, dịch vụ sẽ sử dụng tính năng bám đường. Tính năng bám đường có các đặc điểm sau:
- Đường đi thông minh: Dịch vụ này cố gắng đưa điểm xuất phát của bạn đến đoạn đường gần nhất có thể đi qua.
- Nhận biết chế độ: Logic chụp nhanh sẽ xem xét
travel_modecủa bạn. Nếu bạn yêu cầuDRIVEhoặcTWO_WHEELER, API sẽ bỏ qua các lối đi chỉ dành cho người đi bộ và tìm đường gần nhất mà xe có thể đi được. Nếu bạn yêu cầuWALK, API sẽ ưu tiên đường đi bộ và vỉa hè. - Trường hợp không thành công: Nếu API không thể tìm thấy đoạn đường phù hợp trong khoảng cách bám dính tối đa của điểm xuất phát (khoảng 200 mét hoặc ít hơn đối với
WALKvàBICYCLE), thì API sẽ trả về lỗi404 NOT_FOUND. Các đối tượng địa lý lớn (chẳng hạn như công viên, khuôn viên trường hoặc điểm ngắm cảnh) có thể có tâm mã địa điểm xa hơn khoảng cách bám dính từ đường gần nhất mà phương thức di chuyển có thể sử dụng; trong những trường hợp đó, hãy truyền toạ độlocationrõ ràng của lối vào đường.
Hướng di chuyển (Chiều đến so với Chiều đi)
Bạn có thể tính toán cả khả năng kết nối đến và đi bằng cách sử dụng tham số travelDirection (travel_direction):
FROM(Chiều đi): Tính toán khu vực có thể tiếp cận từ điểm xuất phát trong giới hạn thời gian đã chỉ định. Lớp này phù hợp với các trường hợp sử dụng như khu vực giao hàng hoặc phạm vi cung cấp dịch vụ.TO(Đến): Tính toán khu vực mà bạn có thể di chuyển đến điểm xuất phát trong giới hạn thời gian đã chỉ định. Điều này phù hợp để xác định vùng lưu vực, chẳng hạn như nơi nhân viên có thể di chuyển đến văn phòng trung tâm.
Nhận biết tình hình giao thông
Kiểm soát mức độ ảnh hưởng của dữ liệu lưu lượng truy cập đến đa giác được tạo bằng tham số routingPreference (routing_preference):
TRAFFIC_UNAWARE(Mặc định): Sử dụng giới hạn tốc độ khi đường thông thoáng và hệ thống phân cấp đường để tạo đa giác đẳng thời. Điều này tạo ra một hình dạng tất định không biến động theo thời gian trong ngày. Tham số này phù hợp cho việc phân tích chung hoặc lập kế hoạch theo kịch bản cơ sở.TRAFFIC_AWARE: Tính toán đường đẳng thời bằng cách sử dụng tình trạng giao thông trực tiếp tại thời điểm chính xác mà yêu cầu được xử lý (không thể định cấu hình dấu thời gian khởi hành hoặc đến tuỳ chỉnh trong tương lai hoặc trong quá khứ trong phiên bản 1). Điều này khiến khu vực có thể tiếp cận bị thu hẹp khi tắc nghẽn và mở rộng vào giờ thấp điểm; trong điều kiện lưu thông thông suốt hoặc giờ thấp điểm,TRAFFIC_AWAREvàTRAFFIC_UNAWAREcó thể trả về các đa giác gần như giống hệt nhau. Lưu ý: Tính năng định tuyến dựa trên thông tin giao thông chỉ được hỗ trợ khitravelModeđược đặt thànhDRIVEhoặcTWO_WHEELER.
Độ 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ố polygonFidelity (polygon_fidelity) và enableSmoothing (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: Kiểm soát độ phân giải ô lưới không gian dùng để ước chừng ranh giới 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 lớn có ít đỉnh hơn và không có khoảng trống bên trong, tạo ra một 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à số lượng đỉnh 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à vùng phủ sóng sẽ khớp chặt hơn với mạng lưới đường đã đến, nhưng có thể tạo ra các lỗ hổng bên trong nơi mạng lưới đường thưa thớt.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 thức di chuyển và thời gian, sử dụng các ô nhỏ hơn cho thời gian ngắn và choWALK, và các ô lớn hơn cho thời gian dài. Để so sánh các đường đẳng thời gian giữa 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.
Độ chân thực của đa giác cao, trung bình và thấp
enableSmoothing: Kiểm soát việc các cạnh bậc thang của ô lưới do độ chân thực xác định có được làm tròn hay không.false(Thô): Mặc định. Trả về ranh giới được căn chỉnh theo lưới. Các cạnh xuất hiện theo từng bước dọc theo các ô lưới. Phù hợp nhất cho độ chính xác của dữ liệu 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(Smoothed): Bo tròn các góc nhọn để hiển thị bản đồ trực quan trong khi vẫn giữ nguyên diện tích của mỗi vòng. Ranh giới không còn tuân theo các ô lưới nữa.
Đường đẳng thời có và không có tính năng làm mượt