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 hatta hızlı ya da güvenli bir şekilde hedefe ulaşmanızı sağlamayabilir.
  • Rota hesaplayabilmesi için önce adres dizelerinin enlem/boylam koordinatlarına dönüştürülmek üzere Routes API tarafından coğrafi olarak kodlanması 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ği daha iyi sonuçlar verebilir.

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 (ör. enlem 37.423021 ve boylam -122.083739) dönüştürme işlemidir.

Bir ara noktanın konumu olarak bir adres dizesi 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 coğrafi kodlayarak enlem ve boylam koordinatlarına dönüştürür.

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 değer ya da kısmi 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. Bu da rota 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") 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",
      ...
    }
  ]
}

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 sağlayabilir. 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 ara nokta 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 kesin bir adresi olmadığı için teslimat alması zor olabilir. Adresi olan kişiler ise 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 türetilen 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:

  • 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" 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ştirilmesiyle oluşturulur.

    Örneğin, "450 Serra Mall, Stanford, CA 94305, ABD" adresinin yerel kodu "CRHJ+C3"tür. Bileşik bir adres 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, 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.