Tính toán thông tin tóm tắt về định tuyến
Cách sử dụng tính năng Tìm kiếm bằng văn bản (Mới) hoặc Tìm kiếm lân cận (Mới) để tính thời gian di chuyển và khoảng cách đến từng địa điểm trong câu trả lời:
-
Truyền tham số
routingParameters.origin
trong yêu cầu để chỉ định tọa độ vĩ độ và kinh độ của điểm xuất phát định tuyến. Tham số này là bắt buộc để tính toán thời lượng và khoảng cách đến từng địa điểm trong phản hồi. -
Thêm
routingSummaries
vào mặt nạ trường để phản hồi bao gồm cả mảngroutingSummaries
. Mảng này chứa thời lượng và khoảng cách từ điểm xuất phát định tuyến đến từng địa điểm trong phản hồi.
Trình khám phá API cho phép bạn tạo các yêu cầu trực tiếp để làm quen với API và các tuỳ chọn API:
Hãy làm thử!Sử dụng tính năng Tìm kiếm bằng văn bản (Mới)
Trong yêu cầu sau, bạn tính thời gian di chuyển và khoảng cách đến từng địa điểm trong phản hồi Tìm kiếm bằng văn bản (Mới):
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia", "routingParameters": { "origin": { "latitude": -33.8688, "longitude": 151.1957362 } } }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \ 'https://places.googleapis.com/v1/places:searchText'
Phản hồi chứa hai mảng JSON: mảng places
chứa các địa điểm trùng khớp và mảng routingSummaries
chứa thời lượng và khoảng cách di chuyển đến từng địa điểm:
{ "places": [ { object (Place) } ] "routingSummaries": [ { object (RoutingSummary) } }
Mỗi phần tử trong mảng routingSummaries
nằm ở vị trí mảng tương ứng như vị trí trong mảng places
. Tức là phần tử tại routingSummaries[0]
tương ứng với vị trí tại places[0]
.
Độ dài mảng của routingSummaries
giống với độ dài mảng của places
. Trong trường hợp không có routingSummary
cho một địa điểm, mục nhập mảng sẽ trống.
Vì ví dụ này tính toán thời lượng và khoảng cách từ điểm xuất phát định tuyến đến từng địa điểm, nên trường routingSummaries.legs
trong phản hồi chứa một đối tượng Leg
chứa duration
và distanceMeters
từ điểm xuất phát định tuyến đến địa điểm.
{ "places": [ { "formattedAddress": "1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia", "displayName": { "text": "Gözleme King Sydney", "languageCode": "en" } }, { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, … ] "routingSummaries": [ { "legs": [ { "duration": "597s", "distanceMeters": 2607 } ], "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0" }, { "legs": [ { "duration": "562s", "distanceMeters": 2345 } ], "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0" }, … ] }
Từ ví dụ này, bạn có thể thấy rằng thời lượng và khoảng cách từ điểm xuất phát định tuyến đến vị trí đầu tiên trong kết quả là 597 giây và 2607 mét.
Sử dụng tính năng Tìm kiếm lân cận
Trong ví dụ này, bạn sẽ tính thời gian di chuyển và khoảng cách đến từng địa điểm trong phản hồi Tìm kiếm lân cận. Ví dụ này tìm kiếm nhà hàng ở Sydney, Australia và đặt giới hạn vị trí cũng như điểm xuất phát định tuyến thành cùng một toạ độ vĩ độ và kinh độ:
curl -X POST -d '{ "includedTypes": ["restaurant"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": -33.8688, "longitude": 151.1957362}, "radius": 500.0 } }, "routingParameters": { "origin": { "latitude": -33.8688, "longitude": 151.1957362 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY" \ -H "X-Goog-FieldMask: places.displayName,routingSummaries" \ https://places.googleapis.com/v1/places:searchNearby
Bạn không nhất thiết phải sử dụng cùng một toạ độ cho locationRestriction
và nguồn định tuyến. Ví dụ: bạn đặt locationRestriction
thành tâm của Sydney để thiên lệch kết quả tìm kiếm về vòng tròn đó. Tuy nhiên, sau đó, bạn sẽ đặt nguồn định tuyến thành toạ độ của nhà bạn, nghĩa là một vị trí khác trong vòng tròn tìm kiếm. Sau đó, yêu cầu này sẽ thiên vị kết quả tìm kiếm cho vòng tròn và tính toán bản tóm tắt định tuyến dựa trên vị trí của nhà bạn.
Chỉ định các lựa chọn đi lại
Theo mặc định, thời gian và quãng đường được tính cho ô tô. Tuy nhiên, bạn có thể kiểm soát loại xe cũng như các lựa chọn khác trong kết quả tìm kiếm.
-
Sử dụng tham số
routingParameters.travelMode
để đặt phương thức di chuyển thànhDRIVE
,BICYCLE
,WALK
hoặcTWO_WHEELER
. Để biết thêm thông tin về các tuỳ chọn này, hãy xem phần Các loại xe hiện có cho tuyến đường. -
Sử dụng thuộc tính
routingParameters.routingPreference
để đặt tuỳ chọn ưu tiên định tuyến thànhTRAFFIC_UNAWARE
(mặc định),TRAFFIC_AWARE
hoặcTRAFFIC_AWARE_OPTIMAL
. Mỗi tuỳ chọn có các mức chất lượng dữ liệu và độ trễ khác nhau. Để biết thêm thông tin, hãy xem phần Chỉ định cách và liệu có nên đưa dữ liệu lưu lượng truy cập vào hay không.Thuộc tính
routingParameters.routingPreference
ảnh hưởng đến các chỉ dẫn có trong trườngdirectionsUri
Xem trước (Trước khi phát hành công khai) vì Google Maps hiển thị các lựa chọn về tình trạng giao thông khi mở đường liên kết. -
Sử dụng thuộc tính
routingParameters.routeModifiers
để chỉ định choavoidTolls
,avoidHighways
,avoidFerries
vàavoidIndoor
. Để biết thêm thông tin về các tuỳ chọn này, hãy xem phần Chỉ định các đặc điểm tuyến đường cần tránh.
Trong ví dụ tiếp theo, bạn chỉ định chế độ đi lại là DRIVE
và tránh xa đường cao tốc:
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia", "routingParameters": { "origin": { "latitude": -33.8688, "longitude": 151.1957362 }, "travelMode":"DRIVE", "routeModifiers": { "avoidHighways": true } } }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \ 'https://places.googleapis.com/v1/places:searchText'