Tính toán tóm tắt đị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
vào yêu cầu để chỉ định vĩ độ và kinh độ của nguồn gốc định tuyến. Thông số này là cần thiết để tính toán thời gian và khoảng cách đến mỗi địa điểm trong của bạn. -
Thêm
routingSummaries
vào mặt nạ trường để phản hồi bao gồm mảngroutingSummaries
. Mảng này chứa thời lượng và khoảng cách từ nguồn gốc định tuyến đến từng vị trí trong phản hồi.
Sử dụng tính năng tìm kiếm 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": [ { "legs": [ object (Leg) ] } ] }
Mỗi phần tử trong mảng routingSummaries
đều nằm trong mảng tương ứng
vị trí làm địa điểm 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ừ tuyến đường
điểm gốc của mỗi vị trí, trường legs
trong phản hồi sẽ chứa một Leg
duy nhất
đối tượng chứa duration
và distanceMeters
trong nguồn gốc định tuyến
vào đị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 } ] }, { "legs": [ { "duration": "562s", "distanceMeters": 2345 } ] }, … ] }
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 tính toán thời gian di chuyển và khoảng cách để đến mỗi địa điểm theo 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í và đ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 phải sử dụng cùng toạ độ cho locationRestriction
và
để định tuyến điểm khởi hành. Ví dụ: bạn đặt locationRestriction
thành chính giữa
điểm đến Sydney để hướng kết quả tìm kiếm vào vòng tròn đó. Nhưng sau đó, bạn đặ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 nội dung tìm kiếm.
-
Sử dụng tham số
routingParameters.travelMode
để đặt chế độ phương tiện giao thông đếnDRIVE
,BICYCLE
,WALK
hoặcTWO_WHEELER
. Để biết thêm thông tin về những lựa chọn này, hãy xem Các loại xe có sẵn 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 bài viết Chỉ định cách thức và trường hợp bao gồm lưu lượng truy cập . -
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'