Rota için konum belirtme

Avrupa Ekonomik Alanı (AEA) geliştiricileri

Bir rotayı hesaplamak için en azından rotanın başlangıç ve hedef konumlarını belirtmeniz gerekir. Bu konumları rotadaki ara noktalar olarak tanımlarsınız.

Başlangıç ve varış noktasına ek olarak, farklı türlerde ara noktalar ve bir rotadaki ara noktaların nasıl işleneceğini belirtebilirsiniz. Daha fazla bilgi ve örnek için şu konulara bakın:

Bir rota için konum belirtme

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

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

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

  • Enlem/boylam koordinatlarını kullanmak, konumun bu koordinatlara en yakın yola sabitlenmesine neden olabilir. Bu yol, mülke erişim noktası olmayabilir veya hedefe hızlı ya da güvenli bir şekilde ulaşmayı sağlamayabilir.
  • Rota hesaplayabilmesi için adres dizelerinin önce Rota API'si tarafından coğrafi olarak kodlanarak enlem/boylam koordinatlarına dönüştürülmesi gerekir. Bu dönüşüm performansı etkileyebilir.

Bir konumu yer kimliği olarak belirtme

Bir ara noktanın konumunu belirtmek için yer kimliği kullanabilirsiniz. Enlem ve boylam koordinatları yollara sabitlendiğinden bazı durumlarda yer kimliğinin daha iyi sonuçlar verdiğini görebilirsiniz.

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

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

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

Konumu enlem ve boylam koordinatları olarak belirtme

Bir ara noktada konumu tanımlamak için enlem/boylam koordinatlarını kullanarak Konum (REST) veya Konum(gRPC)'yi belirtin.

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

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

Konumu adres dizesi olarak belirtme

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

Bir adres dizesini ara nokta konumu olarak ilettiğinizde, Routes API dizeyi dahili olarak coğrafi kodlayarak enlem ve boylam koordinatlarına dönüştürür.

Örneğin, bir rotayı hesaplamak için adres dizelerini kullanarak rota için bir ara nokta origin ve destination 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 kodluyor.

Adres değeri belirsizse Routes API, benzer adresler arasında netlik sağlamak için bir arama başlatabilir. Örneğin, "1st Street" ifadesi, "1st street NE" veya "1st St SE" için tam ya da kısmi bir değer olabilir. Bu sonuç, Coğrafi Kodlama API'sinin döndürdüğü sonuçtan farklı olabilir. Yer kimliklerini kullanarak olası yanlış yorumlamaları önleyebilirsiniz.

Adres için bölgeyi ayarlama

Bir ara noktanın konumu olarak eksik bir adres dizesi iletirseniz API, yanlış coğrafi kodlu enlem/boylam koordinatlarını kullanabilir. Örneğin, bir sürüş rotası için kalkış noktası olarak "Toledo"yu, varış noktası olarak "Madrid"i belirten bir istek gönderiyorsunuz:

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

Bu örnekte "Toledo", İspanya'daki değil, ABD'deki Ohio eyaletinde bulunan bir şehir olarak yorumlanıyor. Bu nedenle, istek boş bir dizi döndürür. Yani rota yoktur:

{
  []
}

regionCode parametresini ekleyerek API'yi belirli bir bölgeye yönelik 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. Bazı önemli istisnalar dışında çoğu ccTLD kodu, ISO 3166-1 kodlarıyla aynıdır. Örneğin, Birleşik Krallık'ın ccTLD'si "uk" (.co.uk) iken ISO 3166-1 kodu "gb"dir (teknik olarak "Büyük Britanya ve Kuzey İrlanda Birleşik Krallığı" tüzel kişiliği için).

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

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

Yanıtta artık İspanya'nın Toledo şehrinden İspanya'nın Madrid şehrine hesaplanan rota yer alıyor:

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

Konumu Plus Code olarak belirtme

Birçok kişinin tam adresi olmadığı için teslimat alması zor olabilir. Adresi olan kullanıcılar, teslimatları daha belirli yerlerde (ör. arka giriş veya yükleme rampası) kabul etmeyi tercih edebilir.

Plus Code'lar, gerçek adresi olmayan kişiler veya yerler için açık adres gibidir. Artı Kodları, sokak adları ve numaraları içeren adresler yerine enlem/boylam koordinatlarına dayanır ve sayı ve harf olarak gösterilir.

Google, Plus Code'ları geliştirerek adreslerin avantajlarından herkesin ve her şeyin yararlanmasını sağlamayı amaçlamıştır. Artı kodu, enlem/boylam koordinatlarından elde edilen ve bir alanı temsil eden kodlanmış bir konum referansıdır: 1/8000 dereceye 1/8000 derece (ekvatorda yaklaşık 14 m x 14 m) veya daha küçük. Plus Code'ları, açık adreslerin olmadığı veya binaların numaralandırılmadığı ya da sokakların adlandırılmadığı yerlerde açık adreslerin yerine kullanabilirsiniz.

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

  • Küresel kod, 4 karakterlik bir alan kodu ve 6 karakterlik 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" olur. Ardından, konum değerini "849VCWC8+R9" olarak belirtmek için 10 karakterlik Artı Kodunun tamamını kullanırsınız.

  • Bileşik kod, 6 karakter veya daha uzun bir yerel kodun açık bir konumla birleştirilmesinden oluşur.

    Örneğin, "450 Serra Mall, Stanford, CA 94305, ABD" adresinin yerel kodu "CRHJ+C3" şeklindedir. Bileşik adresler için yerel kodu, adresin şehir, eyalet, posta kodu ve ülke bölümüyle "CRHJ+C3 Stanford, CA 94305, ABD" biçiminde birleştirin.

    Örneğin, rotanın ara noktasını origin ve destination Plus Code'ları kullanarak belirleyerek rota hesaplayın:

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

Plus Kodlar, Place Autocomplete, Place Details, Directions API (Legacy) ve Geocoding API dahil olmak üzere Google Haritalar Platformu API'lerinde desteklenir. Örneğin, enlem/boylam koordinatlarıyla belirtilen bir konumun Plus Code'unu belirlemek için Geocoding API'yi kullanarak ters coğrafi kodlama yapabilirsiniz.