Rota, başlangıç konumu (kaynak) ile bitiş konumu (hedef) arasındaki gezinilebilir yoldur. Yürüyüş, bisiklet veya farklı araç türleri gibi farklı ulaşım modları için rota almayı seçebilirsiniz. Ayrıca mesafe, rotada gezinmek için tahmini süre, beklenen geçiş ücretleri ve rotada gezinmek için adım adım talimatlar gibi rota ayrıntılarını da isteyebilirsiniz.
İki konum arasında rota isteğinde bulunmak için computeRoutes()
yöntemini çağırın. Aşağıdaki örnekte, bir isteğin nasıl tanımlanacağı ve ardından rota almak için computeRoutes()
işlevinin nasıl çağrılacağı gösterilmektedir.
// Import the Routes library. const { Route } = await google.maps.importLibrary('routes'); // Define a computeRoutes request. const request = { origin: 'Mountain View, CA', destination: 'San Francisco, CA', }; // Call the computeRoutes() method to get routes. const {routes} = await Route.computeRoutes(request);
Döndürülecek alanları seçin
Rota isteğinde bulunduğunuzda, yanıtta hangi bilgilerin döndürülmesi gerektiğini belirtmek için alan maskesi kullanmanız gerekir. Alan maskesinde Rota sınıfı özelliklerinin adlarını belirtebilirsiniz.
Alan maskesi kullanmak, gereksiz veriler istememenizi de sağlar. Bu da yanıt gecikmesini azaltır ve sisteminizin ihtiyaç duymadığı bilgilerin döndürülmesini önler.
Aşağıdaki snippet'te gösterildiği gibi ComputeRoutesRequest.fields
özelliğini ayarlayarak ihtiyacınız olan alanların listesini belirtin:
TypeScript
// Define a routes request. const request = { origin: 'Mountain View, CA', destination: 'San Francisco, CA', travelMode: 'DRIVING', fields: ['path'], // Request fields needed to draw polylines. };
JavaScript
// Define a routes request. const request = { origin: 'Mountain View, CA', destination: 'San Francisco, CA', travelMode: 'DRIVING', fields: ['path'], // Request fields needed to draw polylines. };
Bir rota için konum belirtme
Bir rotayı hesaplamak için en azından rotanın başlangıç ve bitiş konumlarını ve bir alan maskesini belirtmeniz gerekir. Ayrıca, bir rota üzerindeki ara geçiş noktalarını da belirtebilir ve geçiş noktalarını kullanarak rotaya duraklar veya geçiş noktaları ekleme gibi başka işlemler de yapabilirsiniz.
ComputeRoutesRequest
bölümünde, aşağıdaki yöntemlerden birini kullanarak konum belirtebilirsiniz:
- Yer (tercih edilen)
- Enlem/boylam koordinatları
- Adres dizesi ("Chicago, IL" veya "Darwin, NT, Australia")
- Plus Code
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 bir yer nesnesini kullanabilirsiniz.
Verimlilik ve doğruluk için enlem/boylam koordinatları veya adres dizeleri yerine yer nesnelerini kullanın. Yer kimlikleri benzersiz ve açık olduğundan erişim noktaları ve trafik değişkenleri gibi yönlendirme için coğrafi kodlama avantajları sağlar. Bu türler, 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 hedefe hızlı ya da güvenli bir şekilde ulaşmayı sağlamayabilir.
- Rotaları hesaplayabilmesi için önce adres dizelerinin 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.
Konumu Yer nesnesi olarak belirtin (tercih edilen yöntem)
Bir yer kullanarak konum belirtmek için yeni bir Place
örneği oluşturun. Aşağıdaki snippet'te, Place
için yeni origin
ve destination
örneklerinin oluşturulması ve ardından bunların ComputeRoutesRequest
içinde kullanılması gösterilmektedir:
TypeScript
// Use Place IDs in a directions request. const originPlaceInstance = new Place({ id: 'ChIJiQHsW0m3j4ARm69rRkrUF3w', // Mountain View, CA }); const destinationPlaceInstance = new Place({ id: 'ChIJIQBpAG2ahYAR_6128GcTUEo', // San Francisco, CA }); const requestWithPlaceIds = { origin: originPlaceInstance, destination: destinationPlaceInstance, fields: ['path'], // Request fields needed to draw polylines. };
JavaScript
// Use Place IDs in a directions request. const originPlaceInstance = new Place({ id: 'ChIJiQHsW0m3j4ARm69rRkrUF3w', // Mountain View, CA }); const destinationPlaceInstance = new Place({ id: 'ChIJIQBpAG2ahYAR_6128GcTUEo', // San Francisco, CA }); const requestWithPlaceIds = { origin: originPlaceInstance, destination: destinationPlaceInstance, fields: ['path'], // Request fields needed to draw polylines. };
Enlem/boylam koordinatları
Bir konumu enlem/boylam koordinatları olarak belirtmek için yeni bir google.maps.LatLngLiteral
, google.maps.LatLngAltitude
veya google.maps.LatLngAltitudeLiteral
örneği oluşturun. Aşağıdaki snippet'te, origin
ve destination
için yeni google.maps.LatLngLiteral
örneklerinin oluşturulması ve ardından bunların computeRoutesRequest
içinde kullanılması gösterilmektedir:
TypeScript
// Use lat/lng in a directions request. // Mountain View, CA const originLatLng = {lat: 37.422000, lng: -122.084058}; // San Francisco, CA const destinationLatLng = {lat: 37.774929, lng: -122.419415}; // Define a computeRoutes request. const requestWithLatLngs = { origin: originLatLng, destination: destinationLatLng, fields: ['path'], };
JavaScript
// Use lat/lng in a directions request. // Mountain View, CA const originLatLng = { lat: 37.422000, lng: -122.084058 }; // San Francisco, CA const destinationLatLng = { lat: 37.774929, lng: -122.419415 }; // Define a computeRoutes request. const requestWithLatLngs = { origin: originLatLng, destination: destinationLatLng, fields: ['path'], };
Adres dizesi
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 kitaplığı dizeyi dahili olarak coğrafi kodlayarak enlem ve boylam koordinatlarına dönüştürür.
Aşağıdaki snippet'te, origin
ve destination
için adres dizesi içeren bir ComputeRoutesRequest
oluşturma işlemi gösterilmektedir:
TypeScript
// Use address strings in a directions request. const requestWithAddressStrings = { origin: '1600 Amphitheatre Parkway, Mountain View, CA', destination: '345 Spear Street, San Francisco, CA', fields: ['path'], };
JavaScript
// Use address strings in a directions request. const requestWithAddressStrings = { origin: '1600 Amphitheatre Parkway, Mountain View, CA', destination: '345 Spear Street, San Francisco, CA', fields: ['path'], };
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ını "Toledo", varış noktasını ise "Madrid" olarak belirten bir istek gönderiyorsunuz:
// Define a request with an incomplete address string. const request = { origin: 'Toledo', destination: 'Madrid', };
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 ccTLD ("üst düzey alan") olarak iki karakterli bir değer şeklinde 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) 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).
Bölge kodu 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:
const request = { origin: 'Toledo', destination: 'Madrid', region: 'es', // Specify the region code for Spain. };
Plus Code
Birçok kişinin tam adresi olmadığı için teslimat alması zor olabilir. Adresi olan kişiler, teslimatları daha belirli yerlerde (ör. arka giriş veya yükleme alanı) 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 dayalıdır ve sayı ve harf olarak gösterilir.
Google, Plus Code'ları geliştirerek herkese ve her şeye adres avantajı sunmayı 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 (Ekvator'da yaklaşık 14 m x 14 m) veya daha küçük. Plus Code'ları, sokak adreslerinin olmadığı veya binaların numaralandırılmadığı ya da sokakların adlandırılmadığı yerlerde sokak adreslerinin 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 genel kod "849V", yerel kod ise "CWC8+R9"dur. 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 karakterli veya daha uzun bir yerel kod ile açık bir konumun 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 birleştirerek "CRHJ+C3 Stanford, CA 94305, ABD" biçiminde yazın.
Aşağıdaki snippet'te, rota başlangıcı ve hedefi için Plus kodları kullanılarak bir rota hesaplama işlemi gösterilmektedir:
TypeScript
// Use Plus Codes in a directions request. const requestWithPlusCodes = { origin: '849VCWC8+R9', // Mountain View, CA destination: 'CRHJ+C3 Stanford, CA 94305, USA', // Stanford, CA fields: ['path'], };
JavaScript
// Use Plus Codes in a directions request. const requestWithPlusCodes = { origin: '849VCWC8+R9', // Mountain View, CA destination: 'CRHJ+C3 Stanford, CA 94305, USA', // Stanford, CA fields: ['path'], };