Rota özetlerini rota üzerinde arama ile birleştirme

Rota özeti hesaplamalarını rota üzerindeki arama ile birleştirebilirsiniz. Bu durumda, Metin Arama (Yeni), yanıttaki her bir yerin seyahat süresini ve mesafesini, ardından her bir yerden rotanın son varış noktasına olan seyahat süresini ve mesafesini döndürür.

Rota boyunca arama ile birlikte yönlendirme özetini hesaplamak için Metin Arama (Yeni) özelliğini kullanmak üzere:

  1. Yanıt olarak bir rota poliline döndüren bir rota hesaplamak için Routes API'yi kullanın.

  2. Arama sonuçlarını rotaya göre yönlendirmek için rota çoklu çizgisini Metin Arama'ya (Yeni) aktarmak üzere searchAlongRouteParameters.polyline.encodedPolyline parametresini kullanın. Yanıt, arama ölçütleriyle eşleşen ve belirtilen rotanın yakınında bulunan yerleri içerir.

  3. Yanıtın routingSummaries dizisini içermesi için alan maskesine routingSummaries ekleyin. Bu dizide, yanıttaki her bir yerin rota başlangıcına olan süresi ve mesafesi yer alır.

API Gezgini, API ve API seçenekleri hakkında bilgi edinmek için canlı isteklerde bulunmanıza olanak tanır:

Varsayılan olarak, Metin Arama (Yeni) tüm rota boyunca arama yapar:

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'

Yanıtta iki dizi bulunur: eşleşen yerleri içeren places dizisi ve her bir yere seyahat etme süresini ve mesafesini içeren routingSummaries dizisi:

{
  "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"
    },
   …
  ]
}

Metin Arama (Yeni), legs dizisindeki her giriş için iki ayaklı bir gezi süresi döndürür:

  • İlk etap, başlangıç noktasından yere kadar olan seyahat süresini ve mesafeyi içerir. Bu örnekte, sürenin ve başlangıç noktasından sonuçlardaki ilk yere olan mesafenin 285 saniye ve 1.616 metre olduğu gösteriliyor.

  • İkinci bölüm, seyahat süresini ve rotanın varış noktasına olan mesafeyi içerir. Bu örnekte süre ve mesafe 2.466 saniye ve 58.147 metredir.

Yönlendirme kaynağını, seyahat modunu ve rota değiştiricileri belirtin

Arama ve rota özeti hesaplamasını, rota başlangıcını, ulaşım şeklini, rota değiştiricileri ve rota tercihlerini belirterek değiştirebilirsiniz. Seyahat modu ve rota değiştiriciler, Seyahat seçeneklerini belirtme konusunda gösterildiği gibi, rota belirtmeden yönlendirme özetlerini hesaplarken aynı şekilde çalışır.

Varsayılan olarak, her sonucun ilk ayağı, çoklu çizgiyle tanımlanan başlangıç noktasından her yere olan mesafeyi içerir. Ancak, istekte yönlendirme kaynağını açıkça belirterek bu varsayılanı geçersiz kılabilirsiniz. Belirtilirse tüm yanıtlardaki ilk adım, belirtilen rota başlangıcından itibaren mesafeleri ve süreyi belirtir. Bu, çoklu çizgi başlangıcını geçersiz kılar.

Sonraki örnekte, rota başlangıcı olarak Kaliforniya, San Mateo'nun koordinatlarını belirtiyor, geçiş ücretlerinden kaçınılmasını istiyor ve sonuç sayısını 5 olarak ayarlıyorsunuz:

  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'

Aşağıdaki resimde, rota çoklu çizgisini, yeni başlangıç noktasını (açık mavi iğne) ve arama sonuçlarındaki yerleri (yeşil iğneler) içeren bir harita gösterilmektedir. Tüm sonuçların rota üzerinde ancak San Mateo'dan sonra olduğuna dikkat edin:

Güncellemenin kaynağındaki arama sonuçları.

Deneyin.

API Gezgini, API ve API seçenekleri hakkında bilgi edinmek için örnek istekler göndermenize olanak tanır.

  1. Sayfanın sağ tarafındaki API simgesini api seçin.

  2. İsteğe bağlı olarak istek parametrelerini düzenleyin.

  3. Yürüt düğmesini seçin. İletişim kutusunda, isteği göndermek için kullanmak istediğiniz hesabı seçin.

  4. API Gezgini penceresini genişletmek için API Gezgini panelinde tam ekran simgesini fullscreen seçin.