Kết hợp thông tin tóm tắt về đường đi với tính năng tìm dọc theo tuyến đường

Bạn có thể kết hợp các phép tính tóm tắt về việc định tuyến với tính năng tìm kiếm dọc theo tuyến đường. Trong trường hợp này, Tìm kiếm bằng văn bản (Mới) sẽ trả về thời gian di chuyển và khoảng cách đến từng địa điểm trong phản hồi, sau đó là từ từng địa điểm đến đích đến cuối cùng của tuyến đường.

Cách sử dụng tính năng Tìm kiếm bằng văn bản (Mới) để tính toán thông tin tóm tắt về việc định tuyến cùng với thông tin tìm kiếm dọc theo một tuyến đường:

  1. Sử dụng Routes API để tính toán một tuyến đường trả về một đường nhiều đường trên tuyến đường trong phản hồi.

  2. Sử dụng tham số searchAlongRouteParameters.polyline.encodedPolyline để truyền đường đa tuyến đến tính năng Tìm kiếm bằng văn bản (Mới) nhằm điều chỉnh kết quả tìm kiếm theo tuyến đường. Sau đó, phản hồi sẽ chứa những địa điểm phù hợp với tiêu chí tìm kiếm và cũng nằm gần tuyến đường đã chỉ định.

  3. 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 bắt đầu định tuyến đến từng địa điểm trong phản hồi.

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

Theo mặc định, tính năng Tìm kiếm bằng văn bản (Mới) sẽ thực hiện tìm kiếm dọc theo toàn bộ tuyến đường:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food",
  "searchAlongRouteParameters": {
    "polyline": {
      "encodedPolyline": "ROUTE_POLYLINE"
    }
  }
}' \
-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: 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": [
    {
      "formattedAddress": "1199 El Camino Real, San Bruno, CA 94066, USA",
      "priceLevel": "PRICE_LEVEL_INEXPENSIVE",
      "displayName": {
        "text": "Vegan Mob - Vegan BBQ and Soul Food",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "839 Kearny St, San Francisco, CA 94108, USA",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Enjoy Vegetarian",
        "languageCode": "en"
      }
    },
   
],
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "285s",
          "distanceMeters": 1616
        },
        {
          "duration": "2466s",
          "distanceMeters": 58147
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808f87f9ede375f5:0xa37171fea1a16b28!1m0!3e0"
    },
    {
      "legs": [
        {
          "duration": "696s",
          "distanceMeters": 4704
        },
        {
          "duration": "2787s",
          "distanceMeters": 58901
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808580f4cebdb06f:0xd3af09e5742234f2!1m0!3e0"
    },
   
  ]
}

Đối với mỗi mục trong mảng legs, Tìm kiếm bằng văn bản (Mới) sẽ trả về thời gian của chuyến đi gồm 2 chặng:

  • Chặng đầu tiên chứa thời gian di chuyển và khoảng cách từ điểm khởi hành đến địa điểm. Trong ví dụ này, thời lượng và khoảng cách từ điểm xuất phát đến vị trí đầu tiên trong kết quả là 285 giây và 1.616 mét.

  • Chặng thứ hai chứa thời gian di chuyển và khoảng cách từ địa điểm đến điểm đến của tuyến đường. Trong ví dụ này, thời lượng và khoảng cách là 2466 giây và 58147 mét.

Chỉ định điểm bắt đầu định tuyến, chế độ di chuyển và các đối tượng sửa đổi tuyến đường

Bạn có thể sửa đổi cách tính tóm tắt về tìm kiếm và định tuyến bằng cách chỉ định điểm bắt đầu định tuyến, phương tiện di chuyển, các thông số sửa đổi tuyến đường và lựa chọn ưu tiên về định tuyến. Chế độ di chuyển và các đối tượng sửa đổi tuyến đường hoạt động giống như khi tính toán thông tin tóm tắt về việc định tuyến mà không cần chỉ định tuyến đường như minh hoạ trong chủ đề Chỉ định các lựa chọn di chuyển.

Theo mặc định, chặng đầu tiên của mỗi kết quả chứa khoảng cách từ điểm xuất phát do đường nhiều đoạn xác định đến từng địa điểm. Tuy nhiên, bạn có thể ghi đè giá trị mặc định đó bằng cách chỉ định rõ ràng một nguồn gốc định tuyến trong yêu cầu. Nếu được chỉ định, chặng đầu tiên của tất cả các phản hồi sẽ chỉ định khoảng cách và thời lượng từ điểm bắt đầu định tuyến đã chỉ định, ghi đè điểm bắt đầu từ đường nhiều đường.

Trong ví dụ tiếp theo, bạn chỉ định điểm bắt đầu của tuyến đường là toạ độ của San Mateo, California, chỉ định tránh đường thu phí và đặt số lượng kết quả thành 5:

  curl -X POST -d '{
    "textQuery" : "Spicy Vegetarian Food",
    "maxResultCount": 5,
    "searchAlongRouteParameters": {
      "polyline": {
        "encodedPolyline": "ROUTE_POLYLINE"
      }
    },
    "routingParameters": {
      "origin": {
        "latitude": 37.56617,
        "longitude": -122.30870
      },
      "travelMode":"DRIVE",
      "routeModifiers": {
        "avoidTolls": 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ình ảnh sau đây cho thấy một bản đồ có chứa đường nhiều đường, điểm xuất phát mới (ghim màu xanh dương nhạt) và các địa điểm trong kết quả tìm kiếm (ghim màu xanh lục). Lưu ý cách tất cả kết quả nằm dọc theo tuyến đường, nhưng sau San Mateo:

Kết quả tìm kiếm từ nguồn cập nhật.

Hãy dùng thử!

Trình khám phá API cho phép bạn đưa ra các yêu cầu mẫu để có thể 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 (không bắt buộc).

  3. Chọn nút 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.