Kết hợp thông tin tóm tắt về tuyến đường 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 định tuyến với 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 và quãng đường di chuyển đến từng nơi trong phản hồi, sau đó từ mỗi nơi đế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 văn bản (Mới) để tính toán bản tóm tắt định tuyến cùng với tính năng tìm kiếm dọc theo một tuyến:

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

  2. Sử dụng thông số searchAlongRouteParameters.polyline.encodedPolyline để truyền đường đa tuyến của tuyến đường đến tính năng Tìm kiếm bằng văn bản (Mới) nhằm thiên vị kết quả tìm kiếm cho 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 cả 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 định tuyến đến từng địa điểm trong phản hồi.

Theo mặc định, tính năng Tìm kiếm bằng văn bản (Mới) sẽ 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 hai mảng: mảng places chứa các địa điểm 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ính năng Tìm kiếm bằng văn bản (Mới) sẽ trả về thời gian đi hai chặng:

  • Chuyến bay đầu tiên chứa thời gian di chuyển và khoảng cách từ điểm xuất phát đến nơi đến. 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à 1616 mét.

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

Chỉ định điểm xuất phát định tuyến, chế độ di chuyển và đối tượng sửa đổi tuyến đường

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

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 gốc do đường đa tuyế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õ nguồn đị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 xuất phát định tuyến được chỉ định, ghi đè điểm xuất phát từ đường đa tuyến.

Trong ví dụ tiếp theo, bạn chỉ định điểm xuất phát định tuyến là toạ độ của San Mateo, California, chỉ định tránh đường có thu phí và đặt số lượng kết quả là 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 đồ chứa đường đa tuyến của tuyến đườ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). Hãy lưu ý cách tất cả kết quả đều nằm dọc theo tuyến đường nhưng đã qua San Mateo:

Kết quả tìm kiếm từ nguồn gốc của bản cập nhật.