Rota boyunca arama ile rota özetlerini birleştirme

Rota özeti hesaplamalarını rota boyunca arama ile birleştirebilirsiniz. Bu durumda Metin Arama (Yeni), yanıttaki her bir yere ve ardından her bir yerden rotanın son hedefine olan seyahat süresini ve mesafeyi döndürür.

Rota boyunca arama ile birlikte rota özetini hesaplamak için Text Search'ü (New) kullanmak istiyorsanız:

  1. Yanıtta rota çoklu çizgisi döndüren bir rota hesaplamak için Routes API'yi kullanın.

  2. Arama sonuçlarını rotaya yönlendirmek için rota çoklu çizgisini Text Search'e (Yeni) 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 değerini ekleyin. Bu dizi, rota başlangıç noktasından yanıttaki her bir yere olan süreyi ve mesafeyi içerir.

API Gezgini, API ve API seçeneklerini tanıyabilmeniz için canlı istekler göndermenize olanak tanır:

Varsayılan olarak, Text Search (Yeni) aramayı tüm rota boyunca gerçekleştirir:

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

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

  • İlk bölüm, başlangıç noktasından yere olan seyahat süresini ve mesafeyi içerir. Bu örnekte, başlangıç noktasından sonuçlardaki ilk yere olan süre ve mesafe 285 saniye ve 1.616 metredir.

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

Rota başlangıç noktasını, seyahat modunu ve rota değiştiricileri belirtme

Rota başlangıç noktasını, seyahat modunu, rota değiştiricileri ve rota tercihlerini belirterek arama ve rota özeti hesaplamasını değiştirebilirsiniz. Seyahat modu ve rota değiştiriciler, Seyahat seçeneklerini belirtme konusunda gösterildiği gibi rota belirtmeden rota özetlerini hesaplamak için kullanılanlarla 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 açıkça bir rota başlangıç noktası belirterek bu varsayılanı geçersiz kılabilirsiniz. Belirtilirse tüm yanıtların ilk ayağı, belirtilen rota kaynağından olan mesafeleri ve süreyi belirtir ve çoklu çizgiden gelen kaynağı geçersiz kılar.

Bir sonraki örnekte, rota kaynağını San Mateo, Kaliforniya'nın koordinatları olarak belirtiyor, ücretli yollardan kaçınmayı belirtiyor 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'dan sonra olduğuna dikkat edin:

Güncelleme kaynağından gelen arama sonuçları.

Deneyin.

API Gezgini, API ve API seçeneklerini tanıyabilmeniz için örnek istekler göndermenize olanak tanır.

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

  2. İsterseniz istek parametrelerini düzenleyebilirsiniz.

  3. Execute (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 panelinde, API Gezgini penceresini genişletmek için tam ekran simgesini fullscreen seçin.