Yönlendirme özetini hesaplama

Yanıttaki her bir yere olan seyahat süresini ve mesafeyi hesaplamak için Metin Arama (Yeni) veya Yakındaki Arama (Yeni)'yı kullanmak istiyorsanız:

  1. Yönlendirme kaynağının enlem ve boylam koordinatlarını belirtmek için isteğe routingParameters.origin parametresini iletin. Bu parametre, yanıttaki her bir yere olan mesafeyi ve süreyi hesaplamak için gereklidir.

  2. Yanıtın routingSummaries dizisini içermesi için alan maskesine routingSummaries ekleyin. Bu dizi, yönlendirme kaynağından yanıttaki her yere kadar olan süreyi ve mesafeyi içerir.

Metin aramayı kullanma (Yeni)

Aşağıdaki istekte, Metin Arama (Yeni) yanıtındaki her bir yere olan seyahat süresini ve mesafeyi 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ıt iki JSON dizisi içerir: places dizisi eşleşen yerleri, routingSummaries dizisi ise her bir yere gitme süresini ve mesafeyi içerir:

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

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

routingSummaries dizisinin uzunluğu, places dizisinin uzunluğuyla aynıdır. Bir yer için routingSummary mevcut değilse dizi girişi boş olur.

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

{
  "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 örnekte, yönlendirme başlangıcı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 yere olan seyahat süresini ve mesafeyi hesaplarsınız. Bu örnekte, Avustralya'nın Sidney kentindeki restoranlar aranır ve konum kısıtlaması ile rota başlangıcı aynı enlem ve boylam koordinatına ayarlanır:

  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 için ve yönlendirme kaynağı için aynı koordinatları kullanmanız gerekmez. Örneğin, arama sonuçlarını bu daireye yönlendirmek için locationRestriction'yi Sydney'in merkez noktasına ayarlayabilirsiniz. Ancak daha sonra rota başlangıcını evinizin koordinatlarına, yani arama çemberi içindeki 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 belirtin

Süre ve mesafe hesaplamaları varsayılan olarak bir araç için yapılır. Ancak aramada araç türünü ve diğer seçenekleri kontrol edebilirsiniz.

  • Taşıma modunu 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 mülkünü kullanın. Her seçeneğin veri kalitesi ve gecikmesi farklıdır. Daha fazla bilgi için Trafik verilerinin nasıl ve ne zaman dahil edileceğini belirtme başlıklı makaleyi inceleyin.

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

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

Aşağıdaki örnekte, ulaşım şeklini DRIVE olarak belirtir ve otoyollardan kaçınılmasını istersiniz:

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'