Rota için konum belirtme

Bir rotayı hesaplamak için en azından rota başlangıcının ve rota hedefinin konumlarını belirtmeniz gerekir. Bu konumları, rota üzerinde ara nokta olarak tanımlarsınız.

Başlangıç ve varış noktasına ek olarak, farklı ara nokta türleri ve bir rota için ara noktaların nasıl ele alınacağını belirleyebilirsiniz. Daha fazla bilgi ve örnek için şu konulara bakın:

Rota için konumları belirtme

Bir konumu, Waypoint (REST) veya Waypoint (gRPC) nesnesi oluşturarak temsil edersiniz. Ara nokta tanımında, bir konumu aşağıdaki yöntemlerden birini kullanarak belirtebilirsiniz:

Bir istekteki tüm ara noktalar için konumları aynı şekilde belirtebilir veya bunları karıştırabilirsiniz. Örneğin, başlangıç noktası için enlem/boylam koordinatları, hedef ara nokta için de yer kimliği kullanabilirsiniz.

Verimlilik ve doğruluk için enlem/boylam koordinatları veya adres dizeleri yerine yer kimlikleri kullanın. Yer kimlikleri benzersizdir ve yönlendirme için erişim noktaları ve trafik değişkenleri gibi coğrafi kodlama avantajları sağlar. Bunlar, konum belirtmenin diğer yollarından kaynaklanabilecek aşağıdaki durumlardan kaçınmaya yardımcı olur:

  • Enlem/boylam koordinatlarının kullanılması, konumun bu koordinatlara en yakın yola eklenmesine neden olabilir. Bu yola, tesise erişim noktası ya da hedefe hızlı veya güvenli bir şekilde giden bir yol olmayabilir.
  • Adres dizelerinin bir rota hesaplanabilmesi için önce enlem/boylam koordinatlarına dönüştürülmesi için Routes API tarafından coğrafi kodlaması yapılmalıdır. Bu dönüşüm performansı etkileyebilir.

Yer kimliği olarak bir konum belirtme

Bir referans noktasının konumunu belirtmek için yer kimliğini kullanabilirsiniz. Enlem ve boylam koordinatları yollara tutturulduğundan, bazı durumlarda yer kimliğinin daha iyi sonuçlar verdiğini görebilirsiniz.

Geocoding API ve Places API'den (Yer Otomatik Tamamlama dahil) yer kimliklerini alın. Yer kimlikleri hakkında daha fazla bilgi için Yer kimliğine genel bakış konusuna bakın.

Aşağıdaki örnekte, hem origin hem de destination için bir yer kimliği iletmek amacıyla placeId özelliği kullanılmaktadır:

{
  "origin":{
    "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o"
  },
  "destination":{
    "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU"
  },
  ...
}

Enlem ve boylam koordinatları olarak bir konum belirtme

Bir referans noktasında konumu tanımlamak için enlem/boylam koordinatlarını kullanarak Konum (REST) veya Konum(gRPC) özelliğini belirtin.

Örneğin, latitude ve longitude koordinatlarını kullanarak origin ve destination rotası için bir ara nokta belirtin:

{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
...
}

Bir konumu adres dizesi olarak belirtme

Adres dizeleri, dizeyle temsil edilen bire bir adreslerdir (ör. "1600 Amphitheatre Parkway, Mountain View, CA"). Coğrafi kodlama, bir adres dizesini enlem ve boylam koordinatlarına (ör. enlem 37.423021 ve boylam -122.083739) dönüştürme işlemidir.

Bir adres dizesini referans noktasının konumu olarak ilettiğinizde, Routes API'si dizeyi enlem ve boylam koordinatlarına dönüştürmek için dahili olarak coğrafi kodlamasını yapar.

Örneğin, bir rotayı hesaplamak için adres dizelerini kullanarak origin ve destination rotası için bir ara nokta belirtirsiniz:

{
  "origin":{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA"
  },
  "destination":{
    "address": "450 Serra Mall, Stanford, CA 94305, USA"
  },
  ...
}

Bu örnekte, Routes API her iki adresi de enlem ve boylam koordinatlarına dönüştürmek için coğrafi kodlamasını yapmaktadır.

Adres değeri belirsizse Routes API, benzer adreslerden ayırt etmek için bir arama başlatabilir. Örneğin, "1. Cadde", "1. sokak NE" veya "1. Cadde" için tam veya kısmi bir değer olabilir. Bu sonuç, Geocoding API'nin döndürdüğü sonuçtan farklı olabilir. Yer kimliklerini kullanarak olası yanlış yorumlamaları önleyebilirsiniz.

Adresin bölgesini ayarlayın

Bir referans noktasının konumu olarak eksik bir adres dizesi iletirseniz API, coğrafi kodlaması yapılmış yanlış enlem/boylam koordinatlarını kullanabilir. Örneğin, başlangıç noktası olarak "Toledo", sürüş rotasının hedefi olarak da "Madrid"i belirten bir istekte bulunursunuz:

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE"
}

Bu örnekte "Toledo", İspanya'da değil, ABD'nin Ohio eyaletinde bir şehir olarak yorumlanmıştır. Bu nedenle, istek boş bir dizi döndürür, yani herhangi bir rota yoktur:

{
  []
}

regionCode parametresini ekleyerek API'yi belirli bir bölgeye ağırlık verilmiş sonuçlar döndürecek şekilde yapılandırabilirsiniz. Bu parametre, bölge kodunu ccTLD ("üst düzey alan") iki karakterli değer olarak belirtir. Çoğu ccTLD kodu, bazı önemli istisnalar dışında ISO 3166-1 kodlarıyla aynıdır. Örneğin, Birleşik Krallık'ın ccTLD'si "uk" (.co.uk), ISO 3166-1 kodu ise "gb"dir (teknik olarak "Büyük Britanya ve Kuzey İrlanda Birleşik Krallık'ı" için kullanılır).

"Toledo" İspanya'da bir şehir olarak yorumlandığından, regionCode parametresini içeren "Toledo" için "Madrid"e gönderilen bir yol tarifi isteği uygun sonuçlar döndürür:

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE",
  "regionCode": "es"
}

Yanıt artık Toledo, İspanya'dan Madrid, İspanya'ya hesaplanan rotayı içermektedir:

{
  "routes": [
    {
      "distanceMeters": 75330,
      "duration": "4137s",
      ...
    }
  ]
}

Bir konumu Plus Code olarak belirtme

Birçok kişinin tam adresi olmadığı için teslimat almalarını zorlaştırabilir. Ayrıca adresi olan kişiler, arka giriş veya yükleme alanı gibi daha belirli konumlarda teslimat almayı tercih edebilir.

Artı Kodu, gerçek adresi olmayan kişi veya yerlerin açık adresleri gibidir. Artı Kodları, sokak adları ve numaraları içeren adresler yerine enlem/boylam koordinatlarına dayalıdır ve sayılar ve harfler olarak gösterilir.

Google, adreslerin herkese ve her şeye faydasını sağlamak için Plus Code'ları geliştirdi. Artı Kodu, bir alanı temsil eden, enlem/boylam koordinatlarından türetilen kodlanmış konum referansıdır: Bir derecenin 1/8.000'i 1/8.000'i (ekvatorda yaklaşık 14 m x 14 m) veya daha küçük bir alanı temsil eder. Bulunmadığı veya binaların numaralandırılmadığı ya da caddelerin adlanmadığı yerlerde açık adreslerin yerine Plus Code'ları kullanabilirsiniz.

Artı Kodları global kod veya bileşik kod olarak biçimlendirilmelidir:

  • Global kod, 4 karakterlik bir alan kodundan ve 6 karakter veya daha uzun bir yerel koddan oluşur.

    Örneğin, "1600 Amphitheatre Parkway, Mountain View, CA" adresi için global kod "849V", yerel kod ise "CWC8+R9" şeklindedir. Ardından, konum değerini "849VCWC8+R9" olarak belirtmek için 10 karakterli Plus Code'un tamamını kullanırsınız.

  • Birleşik kod, açık bir konumla birlikte 6 karakter veya daha uzun bir yerel koddan oluşur.

    Örneğin, "450 Serra Mall, Stanford, CA 94305, ABD" adresinde yerel kod "CRHJ+C3" bulunmaktadır. Birleşik adres için yerel kodu "CRHJ+C3 Stanford, CA 94305, ABD" biçiminde adresin şehir, eyalet, posta kodu ve ülke kısmıyla birleştirin.

    Örneğin, Plus Code'ları kullanarak origin ve destination rotası için bir ara nokta belirleyerek bir rota hesaplayın:

    {
      "origin":{
        "address": "849VCWC8+R9"
      },
      "destination":{
        "address": "CRHJ+C3 Stanford, CA 94305, USA"
      },
      "travelMode": "DRIVE"
    }

Artı Kodları; Otomatik Yer Tamamlama, Yer Ayrıntıları, Directions API ve Geocoding API gibi Google Haritalar Platformu API'lerinde desteklenir. Örneğin, bir konumun Plus Code'unu belirlemek amacıyla enlem/boylam koordinatları tarafından belirtilen bir konumun coğrafi kodlamasını tersine çevirmek için Geocoding API'yi kullanabilirsiniz.