Rota özetlerini rota üzerinde arama ile birleştirme

Rota özeti hesaplamalarını rota boyunca 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.

Bir rota boyunca arama yapmanın yanı sıra yönlendirme özetini hesaplamak için Metin Arama (Yeni) özelliğini kullanmak istiyorsanız:

  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 poliline'ını Metin Arama (Yeni) hizmetine iletmek ü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 yönlendirme 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 etapta, başlangıç noktasından yere kadar olan seyahat süresi ve mesafe yer alır. Bu örnekte, başlangıç noktasından sonuçlardaki ilk yere kadar olan süre ve mesafe 285 saniye ve 1.616 metredir.

  • İ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 başlangıcını, ulaşım şeklini ve rota değiştiricilerini belirtme

Yönlendirme başlangıcı, ulaşım şekli, rota değiştiriciler ve yönlendirme tercihleri belirterek arama ve yönlendirme özeti hesaplamasını değiştirebilirsiniz. Seyahat modu ve rota değiştiriciler, Seyahat seçeneklerini belirtme konusundaki örnekte 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ındaki başlangıcı geçersiz kılar.

Sonraki örnekte, rota başlangıcı olarak Kaliforniya, San Mateo'nun koordinatlarını belirtiyor, ücretli yollardan 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 raptiye) ve arama sonuçlarındaki yerleri (yeşil raptiyeler) içeren bir harita gösterilmektedir. Tüm sonuçların rota üzerinde ancak San Mateo'nun ötesinde olduğuna dikkat edin:

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

Deneyin.

API Gezgini, API ve API seçeneklerine alışabilmeniz 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.