Rota için konum belirtme

Rotayı hesaplamak için en azından rotanın başlangıç noktası ve rota hedefinin konumlarını belirtmeniz gerekir. Bu konumları rota üzerinde ara noktalar olarak tanımlarsınız.

Kalkış ve hedefe ek olarak, farklı türde ara noktalar 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 konum belirtme

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

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

Verimlilik ve doğruluk için enlem/boylam koordinatları veya adres dizeleri yerine yer kimliklerini kullanın. Yer kimlikleri benzersiz bir şekilde açıkça belirtilir ve yönlendirme için erişim noktaları ile 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 sabitlenmesine neden olabilir. Bu yol, tesise erişim noktası, hatta hedefe hızlı veya güvenli bir şekilde giden bir yol olmayabilir.
  • Adres dizelerinin bir rota hesaplayabilmesi için öncelikle Routes API tarafından enlem/boylam koordinatlarına dönüştürülmesi için adres dizelerinin coğrafi olarak kodlanması gerekir. Bu dönüşüm, performansı etkileyebilir.

Yer kimliği olarak bir konum belirtin

Bir referans noktasının konumunu belirtmek için yer kimliği kullanabilirsiniz. Enlem ve boylam koordinatları yollara sabitlendiği için bazı durumlarda yer kimliğinin daha iyi sonuçlar sunduğunu 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 yer kimliği iletmek amacıyla placeId özelliği kullanılmaktadır:

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

Enlem ve boylam koordinatları olarak bir yer belirtme

Bir referans noktasında konumu tanımlamak için enlem/boylam koordinatlarını kullanarak Konum (REST) veya Konum(gRPC) değerini 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
      }
    }
  },
...
}

Adres dizesi olarak bir konum belirtme

Adres dizeleri, bir dizeyle temsil edilen düz adreslerdir (ör. "1600 Amfitiyatro 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, dizeyi enlem ve boylam koordinatlarına dönüştürmek için dahili olarak coğrafi olarak kodlar.

Ö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 olarak kodlamaktadır.

Adres değeri belirsizse Routes API, benzer adreslerden ayırt etmek için bir arama çağırabilir. Örneğin, "1. Cadde" tam bir değer ya da "1. sokak KD" veya "1. Cadde SE" için kısmi bir değer olabilir. Bu sonuç, Geocoding API tarafından döndürülen sonuçtan farklı olabilir. Yer kimliklerini kullanarak olası yanlış yorumlamaları önleyebilirsiniz.

Adresin bölgesini ayarlama

Eksik bir adres dizesini bir referans noktasının konumu olarak iletirseniz API, coğrafi olarak kodlanan yanlış enlem/boylam koordinatlarını kullanabilir. Örneğin, kalkış noktası olarak "Toledo"yu ve sürüş rotasının hedefi olarak "Madrid"i belirten bir istek oluşturursunuz:

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

Bu örnekte "Toledo", İspanya'da değil ABD'nin Ohio eyaletinde bir şehir olarak yorumlanı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ıklandırılmış sonuçlar döndürecek şekilde yapılandırabilirsiniz. Bu parametre, bölge kodunu iki karakterlik bir ccTLD ("üst düzey alan") değeri 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 "gb" (teknik olarak "Birleşik Krallık ve Kuzey İrlanda" tüzel kişiliği için) "gb"dir.

"Toledo"dan "Madrid"e regionCode parametresini içeren bir yol tarifi isteği, "Toledo" İspanya'da bir şehir olarak yorumlandığından 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çeriyor:

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

Plus Code olarak bir konum belirtin

Birçok kişinin kesin bir adresi olmadığından teslimat almayı zorlaştırabilir. Ya da adresi olan kişiler, arka giriş veya yükleme yuvası gibi daha spesifik konumlarda teslimat kabul etmeyi tercih edebilir.

Plus Code'lar, gerçek bir adresi olmayan kişilerin veya yerlerin açık adresleri gibidir. Artı Kodları, sokak adları ve numaraları olan adreslerin yerine enlem/boylam koordinatlarını temel alır ve sayı ve harf şeklinde gösterilir.

Google, adresin avantajını herkese ve her şeye sunmak için Artı Kodları'nı geliştirdi. Artı Kodu, enlem/boylam koordinatlarından türetilen ve bir alanı temsil eden, kodlanmış bir konum referansıdır: derecenin 1/8.000 x 1/8.000 (ekvatorda yaklaşık 14 metre x 14 m) veya daha küçük bir alanı temsil eder. Mevcut olmadıkları veya binaların numaralandırılmamış ya da sokakların adlandırılmadığı yerlerde açık adreslerin yerine Plus Code'ları kullanabilirsiniz.

Plus Code'lar global kod veya bileşik kod olarak biçimlendirilmelidir:

  • Genel kod, 4 karakterli alan kodu ve 6 veya daha uzun bir yerel koddan oluşur.

    Örneğin, "1600 Amphitheatre Parkway, Mountain View, CA" adresi için global kod "849V", yerel kod "CWC8+R9"dur. Daha sonra, 10 karakterlik Plus Code'un tamamını kullanarak konum değerini "849VCWC8+R9" olarak belirtirsiniz.

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

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

    Örneğin, Plus Code'lardan yararlanarak origin ve destination rotası için bir ara nokta belirterek rota hesaplayın:

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

Plus Code'lar; Otomatik Yer Tamamlama, Yer Ayrıntıları, Yol Tarifi API'si ve Geocoding API gibi Google Haritalar Platformu API'lerinde desteklenir. Örneğin, konumun Plus Code'unu belirlemek amacıyla enlem/boylam koordinatlarıyla belirtilen bir konumun coğrafi kodlamasını değiştirmek için Geocoding API'yi kullanabilirsiniz.