Rota matrisi için konumları belirtme

Avrupa Ekonomik Alanı (AEA) geliştiricileri

Rota matrisi hesaplamak için en az bir rota başlangıç noktası ve bir rota hedef noktası belirtmeniz gerekir.

Rota için konumları 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ın konumlarını aynı şekilde belirtebilir veya farklı yöntemleri bir arada kullanabilirsiniz. Ö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 bir şekilde açıktır ve erişim noktaları ve trafik değişkenleri gibi rotalar için coğrafi kodlama avantajları sağlar. Bu sayede, bir konumu belirtmenin diğer yollarından kaynaklanabilecek aşağıdaki durumlardan kaçınabilirsiniz:

  • 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.
  • Adres dizelerinin, rota hesaplanmadan önce enlem/boylam koordinatlarına dönüştürülmesi için Routes API tarafından coğrafi olarak kodlanması gerekir. Bu dönüşüm performansı etkileyebilir.

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 (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, latitude ve longitude koordinatlarını kullanarak origin ile destination arasındaki rota için 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 coğrafi olarak 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, "1. Cadde", "1. Cadde Kuzeydoğu" veya "1. Cadde Güneydoğu" için tam bir değer 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.

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 bir şehir olarak değil, ABD'nin Ohio eyaletindeki bir şehir olarak yorumlanır. 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 sonuca ağırlık verme 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).

"Toledo"dan "Madrid"e yol tarifi isteği regionCode parametresini içeriyorsa "Toledo" İspanya'da bir şehir olarak yorumlandığı için uygun sonuçlar döndürülü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",
      ...
    }
  ]
}

Navigasyon 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 kesin bir adresi yoktur. Bu durum, teslimat almalarını zorlaştırabilir. 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 Code'ları, açık adreslerin bulunmadığı veya binaların numaralandırılmadığı ya da sokakların adlandırılmadığı yerlerde açık adreslerin yerine kullanabilirsiniz.

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 kod ile açık bir konumun birleşiminden 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, rota için bir ara nokta belirterek rotayı hesaplayın origin ve destination Plus Code'ları kullanarak:

    {
      "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.