Tính toán tóm tắt về tuyến đường

Cách sử dụng Tìm kiếm văn bản (Mới) hoặc Nearby Search (Mới) để tính toán thời lượng và khoảng cách di chuyển đến từng địa điểm trong phản hồi:

  1. Truyền tham số routingParameters.origin trong yêu cầu để chỉ định toạ độ vĩ độ và kinh độ của điểm xuất phát cho tuyến đường. 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.

  2. Thêm routingSummaries vào mặt nạ trường để phản hồi bao gồm mảng routingSummaries. Mảng này chứa thời lượng và khoảng cách từ điểm xuất phát cho tuyến đường đến từng địa điểm trong phản hồi.

APIs Explorer cho phép bạn đưa ra các yêu cầu trực tiếp để làm quen với API và các lựa chọn API:

Trong yêu cầu sau đây, bạn sẽ tính toán thời lượng và khoảng cách di chuyển đến từng địa điểm trong phản hồi của tính năng Tìm kiếm 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 2 mảng JSON: mảng places chứa các địa điểm phù hợ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 với địa điểm trong mảng places. Tức là phần tử tại routingSummaries[0] tương ứng với địa điểm tại places[0].

Độ dài mảng của routingSummaries bằ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 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 cho tuyến đường đế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 duy nhất chứa durationdistanceMeters từ điểm xuất phát cho tuyến đường đế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"
    },
   
  ]
}

Trong 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 cho tuyến đường đến địa điểm đầu tiên trong kết quả là 597 giây và 2.607 mét.

Trong ví dụ này, bạn sẽ tính toán thời lượng và khoảng cách di chuyển đến từng địa điểm trong phản hồi của tính năng Tìm kiếm lân cận. Ví dụ này tìm kiếm nhà hàng ở Sydney, Úc và đặt giới hạn vị trí cũng như điểm xuất phát cho tuyến đường theo cùng 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 cần dùng cùng toạ độ cho locationRestriction và điểm xuất phát cho tuyến đường. Ví dụ: bạn đặt locationRestriction thành điểm trung tâm của Sydney để ưu tiên kết quả tìm kiếm cho vòng tròn đó. Tuy nhiên, sau đó, bạn đặt điểm xuất phát cho tuyến đường theo toạ độ nhà của mình, tức là một vị trí khác trong vòng tròn tìm kiếm. Sau đó, yêu cầu sẽ ưu tiên kết quả tìm kiếm cho vòng tròn và tính toán phần tóm tắt về tuyến đường dựa trên vị trí nhà của bạn.

Chỉ định các lựa chọn di chuyển

Theo mặc định, các phép tính thời lượng và khoảng cách là dà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 quá trình tìm kiếm.

  • Sử dụng tham số routingParameters.travelMode để đặt phương thức di chuyển thành DRIVE, BICYCLE, WALK, hoặc TWO_WHEELER. Để biết thêm thông tin về các lựa chọn này, hãy xem bài viết Các loại xe có sẵn cho tuyến đường.

  • Sử dụng thuộc tính routingParameters.routingPreference để đặt lựa chọn ưu tiên về tuyến đường thành TRAFFIC_UNAWARE (mặc định), TRAFFIC_AWARE hoặc TRAFFIC_AWARE_OPTIMAL. Mỗi lựa 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 và có nên đưa dữ liệu giao thông vào hay không.

    Thuộc tính routingParameters.routingPreference có ảnh hưởng đến đường đi có trong trường directionsUri (Bản dùng thử – trước khi phát hành rộng rãi) vì Google Maps sẽ hiển thị các lựa chọn về giao thông khi mở đường liên kết.

  • Sử dụng thuộc tính routingParameters.routeModifiers để chỉ định avoidTolls, avoidHighways, avoidFerries, và avoidIndoor. Để biết thêm thông tin về các lựa chọn này, hãy xem bài viết Chỉ định các tính năng của tuyến đường cần tránh.

Trong ví dụ tiếp theo, bạn sẽ chỉ định chế độ di chuyển là DRIVE và tránh đườ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'

Hãy làm thử!

APIs Explorer cho phép bạn đưa ra các yêu cầu mẫu để làm quen với API và các lựa chọn API.

  1. Chọn biểu tượng API api ở bên phải trang.

  2. Bạn có thể chỉnh sửa các tham số yêu cầu.

  3. Chọn nút Execute (Thực thi). Trong hộp thoại, hãy chọn tài khoản mà bạn muốn dùng để đưa ra yêu cầu.

  4. Trong bảng điều khiển APIs Explorer, hãy chọn biểu tượng toàn màn hình fullscreen để mở rộng cửa sổ APIs Explorer.