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ürlerdeki 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:

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.
  • Routes API, bir rotayı hesaplayabilmesi için önce adres dizelerini coğrafi olarak kodlayarak enlem/boylam koordinatlarına dönüştürmelidir. 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ği daha iyi sonuçlar verebilir.

Geocoding API ve Places API (Yeni)'den (Autocomplete (Yeni) 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 (ör. 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 origin ve destination 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 kodluyor.

Adres değeri belirsizse Routes API, benzer adresler arasında netlik sağlamak için bir arama başlatabilir. Örneğin, "1st Street" değeri "1st street NE" veya "1st St SE" için tam ya da 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.

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 istekte bulunuyorsunuz:

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

Bu örnekte "Toledo", İspanya'daki değil, Amerika Birleşik Devletleri'ndeki Ohio eyaletinde bulunan bir şehir olarak yorumlanıyor. Bu nedenle, istek boş bir dizi döndürür. Bu da herhangi bir rotanın mevcut olmadığı anlamına gelir:

{
  []
}

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 adı") 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 giden rota yer alıyor:

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

Bir gezinme noktası jetonu, bir konumu ve ek rota bağlamını kodlayan bir dizedir. Navigasyon noktası jetonları, girişlerin, yükleme rampalarının veya belirlenmiş teslim alma alanlarının yakınındaki belirli erişim noktalarına hassas rota oluşturabilir. Bu özellik, teslim alma veya bırakma noktasının belirsiz olabileceği yemek teslimatı ya da araç paylaşımı gibi durumlarda kullanışlıdır.

Geocoding API'nin Destinations yöntemini çağırarak bir gezinme noktası jetonu alabilirsiniz.

Bir gezinme noktası jetonu belirtmek için:

  1. Geocoding API'nin SearchDestinations yönteminden navigationPointToken alın. Daha fazla bilgi için Geocoding API belgelerine bakın.
  2. navigationPointToken değerini ileterek bir yol noktası oluşturun.

Aşağıdaki örnekte, hem origin hem de destination için bir gezinme noktası jetonu iletmek üzere navigation_point_token özelliği kullanılmaktadır:

{
  "origin":{
    "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_ORIGIN"
  },
  "destination":{
    "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_DESTINATION"
  },
  ...
}

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.

Artı kodlar, gerçek adresi olmayan kişiler veya yerler için açık adresler gibidir. Sokak adları ve numaraları içeren adresler yerine, Plus Kodlar 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. Plus Kodu, enlem/boylam koordinatlarından elde edilen ve bir alanı temsil eden kodlanmış bir konum referansıdır: 1/8000 dereceye 1/8000 derece (Ekvator'da yaklaşık 14 m x 14 m) veya daha küçük. Plus kodları, sokak adreslerinin olmadığı veya binaların numaralandırılmadığı ya da sokakların adlandırılmadığı yerlerde sokak adreslerinin yerine kullanılabilir.

Plus kodları, global kod veya bileşik kod olarak biçimlendirilmelidir:

  • Genel 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"dur. Ardından, konum değerini "849VCWC8+R9" olarak belirtmek için 10 karakterlik Plus Kod'un tamamını kullanırsınız.

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

    Ö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, rota için bir ara nokta belirterek origin ve destination Plus Code'ları kullanarak bir rota hesaplayın:

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

Plus kodları, Autocomplete (New), Yer Ayrıntıları (New) ve Geocoding API dahil olmak üzere Google Haritalar Platformu API'lerinde desteklenir. Örneğin, bir konumun Plus Code'unu belirlemek için enlem/boylam koordinatlarıyla belirtilen bir konumun ters coğrafi kodlamasını yapmak üzere Geocoding API'yi kullanabilirsiniz.