Yönlendirme özetini hesaplama

Metin Arama (Yeni) veya Yakında Arama (Yeni) özelliğini kullanmak için cevaptaki her yere seyahat süresini ve mesafeyi hesaplamak için:

  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 yerin süresini ve mesafesini hesaplamak için gereklidir.

  2. Yanıtın routingSummaries dizisini içermesi için alan maskesine routingSummaries ekleyin. Bu dizi, süre ve mesafeyi içerir başlangıç noktasından yanıttaki her yere otomatik olarak gönderilir.

Metin Arama'yı Kullan (Yeni)

Aşağıdaki istekte her bir ara hedefe seyahat süresini ve mesafeyi yer: Metin Arama (Yeni) yanıtında:

  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": [
    {
      "legs": [
        object (Leg)
      ]
    }
  ]
}

routingSummaries dizisindeki her öğe, karşılık gelen dizidedir konumu places dizisindeki yer olarak gösterilir. Yani, routingSummaries[0], places[0] adresindeki yere karşılık gelir.

routingSummaries dizisinin uzunluğu, dizinin uzunluğuyla aynıdır. places. Bir yere ait routingSummary öğesinin mevcut olmadığı durumlarda, dizi girişi boş.

Bu örnekte, yönlendirme kaynağından her yere olan süre ve mesafe hesaplandığından yanıttaki legs alanında, yönlendirme kaynağı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
        }
      ]
    },
    {
      "legs": [
        {
          "duration": "562s",
          "distanceMeters": 2345
        }
      ]
    },
   …
  ]
}

Bu örnekte, rotaya olan mesafenin ve süre ile mesafenin başlangıç noktası 597 saniye ve 2607 metre.

Bu örnekte, seyahat süresini ve her bir yere olan mesafeyi Yakındaki Arama yanıtı. 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 başlangıç noktası evinizin koordinatlarına yönlendirme (yani farklı bir konum) arama dairesi içinde. Ardından istek, arama sonuçlarını daireye göre yönlendirir ve rota özetlerini evinizin konumuna göre hesaplar.

Seyahat seçeneklerini belirtin

Varsayılan olarak süre ve mesafe hesaplamaları bir araba içindir. Ancak aramada araç türünü ve diğer seçenekleri kontrol edebilirsiniz.

Bir sonraki örnekte, ulaşım şeklini DRIVE olarak belirtiyorsunuz. otoyollar:

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'