Yönlendirme özetini hesaplama

Yanıtın her bir yerindeki seyahat süresini ve mesafeyi hesaplamak için Metin Arama (Yeni) veya Yakında Arama (Yeni)'yı kullanmak için:

  1. İstekle birlikte routingParameters.origin parametresini ileterek rotanın başlangıç noktasının enlem ve boylam koordinatlarını belirtin. Bu parametre, yanıttaki her bir yerin süresini ve mesafesini hesaplamak için gereklidir.

  2. 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:

Aşağıdaki istekte, Metin Arama (Yeni) yanıtındaki her bir yerin seyahat süresini ve mesafesini hesaplarsınız:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    }
  }
}' \
-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 JSON dizisi bulunur: places dizisi eşleşen yerleri, routingSummaries dizisi ise her bir yere seyahat etme süresini ve mesafesini içerir:

{
  "places": [
    {
      object (Place)
    }
  ]
  "routingSummaries": [
    {
      object (RoutingSummary)
    }
}

routingSummaries dizisindeki her öğe, places dizisindeki yerle aynı dizi konumundadır. Yani, routingSummaries[0] konumundaki öğe, places[0] konumundaki yere karşılık gelir.

routingSummaries dizisinin uzunluğu, places dizisinin uzunluğuyla aynıdır. Bir yer için routingSummary kullanılamıyorsa dizi girişi boştur.

Bu örnekte, rota oluşturma başlangıcından her bir yere olan süre ve mesafe hesaplandığından yanıttaki routingSummaries.legs alanı, rota oluşturma başlangıcından yere olan duration ve distanceMeters değerlerini içeren tek bir Leg nesnesi içerir.

{
  "places": [
    {
      "formattedAddress": "1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Gözleme King Sydney",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    
  ]
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "597s",
          "distanceMeters": 2607
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0"
    },
    {
      "legs": [
        {
          "duration": "562s",
          "distanceMeters": 2345
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0"
    },
   
  ]
}

Bu örnekten, rotanın başlangıç noktasından sonuçlardaki ilk yere kadar olan sürenin ve mesafenin 597 saniye ve 2.607 metre olduğunu görebilirsiniz.

Bu örnekte, Yakındaki Arama yanıtındaki her bir yer için seyahat süresini ve mesafesini hesaplarsınız. Bu örnekte, Avustralya'nın Sidney şehrindeki restoranlar aranıyor ve konum kısıtlaması ile yönlendirme başlangıcı aynı enlem ve boylam koordinatına ayarlanıyor:

  curl -X POST -d '{
    "includedTypes": ["restaurant"],
    "maxResultCount": 10,
    "locationRestriction": {
      "circle": {
        "center": {
          "latitude": -33.8688,
          "longitude": 151.1957362},
        "radius": 500.0
      }
    },
    "routingParameters": {
      "origin": {
        "latitude": -33.8688,
        "longitude": 151.1957362
      }
    }
  }' \
  -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY" \
  -H "X-Goog-FieldMask: places.displayName,routingSummaries" \
  https://places.googleapis.com/v1/places:searchNearby

locationRestriction ve yönlendirme kaynağı için aynı koordinatları kullanmanız gerekmez. Örneğin, arama sonuçlarını bu çemberle sınırlamak için locationRestriction değerini Sidney'in merkez noktası olarak ayarlarsınız. Ancak daha sonra yönlendirme başlangıcını evinizin koordinatlarına, yani arama çemberi içinde farklı bir konuma ayarlarsınız. Ardından istek, arama sonuçlarını daireye göre yönlendirir ve rota özetlerini evinizin konumuna göre hesaplar.

Seyahat seçeneklerini belirtme

Varsayılan olarak süre ve mesafe hesaplamaları araba için yapılır. Ancak, arama sonuçlarında araç türünü ve diğer seçenekleri kontrol edebilirsiniz.

  • Ulaşım şeklini DRIVE, BICYCLE, WALK veya TWO_WHEELER olarak ayarlamak için routingParameters.travelMode parametresini kullanın. Bu seçenekler hakkında daha fazla bilgi için Rotalar için kullanılabilen araç türleri başlıklı makaleyi inceleyin.

  • Yönlendirme tercihi seçeneğini TRAFFIC_UNAWARE (varsayılan), TRAFFIC_AWARE veya TRAFFIC_AWARE_OPTIMAL olarak ayarlamak için routingParameters.routingPreference özelliğini kullanın. Her seçeneğin veri kalitesi ve gecikme düzeyleri farklıdır. Daha fazla bilgi için Trafik verilerinin nasıl ve dahil edilip edilmeyeceğini belirtme başlıklı makaleyi inceleyin.

    Google Haritalar bağlantıyı açtığında trafik seçeneklerini gösterdiğinden routingParameters.routingPreference özelliği, Önizleme (GKST öncesi) directionsUri alanındaki talimatları etkiler.

  • routingParameters.routeModifiers özelliğini kullanarak avoidTolls, avoidHighways, avoidFerries ve avoidIndoor parametrelerini belirtin. Bu seçenekler hakkında daha fazla bilgi için Kaçınılacak rota özelliklerini belirtme başlıklı makaleyi inceleyin.

Sonraki örnekte, ulaşım şeklini DRIVE olarak belirtiyorsunuz ve otoyollardan kaçınıyorsunuz:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    },
    "travelMode":"DRIVE",
    "routeModifiers": {
      "avoidHighways": 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'

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.