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:
- Araç yönünü ve yolun yanını belirtme
- Ara ara noktaları belirtin
- Rota boyunca durak ayarlama
- Rotanın geçeceği bir nokta ayarlama
- Rotanızdaki durakların sırasını optimize etme
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:
- Yer kimliği (tercih edilen)
- Enlem/boylam koordinatları
- Adres dizesi ("Chicago, IL" veya "Darwin, NT, Australia")
- Artı Kodu
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
vedestination
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.