Azure hizmetleri için en iyi Haritalar Yönlendirme hizmeti
Azure'daki Rota Yönlendirmeleri ve Rota Haritalar Api'leri, istenen her rota için tahmini varış sürelerini (ETA) hesaplamak için kullanılabilir. Yol API'leri, gerçek zamanlı trafik bilgileri ve tarihi trafik verileri gibi, haftanın ve günün istenen günündeki tipik yol hızları gibi faktörleri dikkate almaktadır. API'ler, zaman veya mesafeye bağlı olarak birden çok hedef için aynı anda veya en iyi duruma getirilmiş sırada kullanılabilen en kısa veya en hızlı yolları geri döner. Kullanıcılar ayrıca tırlar, bisikletçiler ve kamyonlar gibi ticari araçlar için özelleştirilmiş rotalar ve ayrıntılar da talepte olabilir. Bu makalede, Azure Haritalar Route Service'içağırmaya yönelik en iyi yöntemleri paylaşacağız ve şunların nasıl olduğunu öğrenirsiniz:
- Yönlendirme Yönergeleri API'leri ile Matris Yönlendirme API'si arasında seçim
- Gerçek zamanlı ve geçmiş trafik verileri temelinde geçmişe ait ve tahmin edilebilir seyahat zamanları isteme
- Tüm yol ve rotanın her bir okuna ilişkin zaman ve mesafe gibi rota ayrıntılarını talep edin
- Kamyon gibi bir ticari araç için rota isteği
- Trafikle ilgili trafik bilgilerini (jams ve ücretli bilgiler gibi) talep edin
- Bir veya daha fazla duraktan (yol noktaları) oluşan bir yol isteği
- Her bir durak için en iyi sırayı elde etmek için bir veya daha fazla durak yolunu en iyi duruma getirme (yol noktası)
- Destek noktalarını kullanarak alternatif yolları iyileştirme. Örneğin, bir elektrik aracı ücretlendirme istasyonundan geçen alternatif yollar sunabilirsiniz.
- Yönlendirme Hizmetini Azure Haritalar Web SDK'sı ile kullanma
Önkoşullar
- Azure Haritalar hesabı yapma
- Birincil anahtar veya abonelikanahtarı olarak da bilinen birincil abonelik anahtarını alın.
Yönlendirme Hizmeti kapsamı hakkında daha fazla bilgi için bkz. Yönlendirme Kapsamı.
Bu makalede REST çağrıları oluşturmak için Postman uygulaması kullanılır, ancak herhangi bir API geliştirme ortamını seçebilirsiniz.
Rota Yönleri ve Matris Yönlendirmesi arasında seçim
Route Directions API'leri, bir rota yolunun seyahat süresi ve koordinatları dahil olmak üzere yönergeleri geri sağlar. Rota Matrisi API'si, başlangıç ve hedef konumlara göre tanımlanan bir yol kümesi için seyahat süresi ve mesafelerini hesaplamaya olanak sağlar. Matris API'si, belirli bir çıkış noktası için ilgili çıkış noktası ile belirli bir hedefe yönlendirmenin maliyetini (seyahat süresi ve mesafe) hesaplar. Bu API'lerin hepsi istenen kalkış saati, varış saatleri ve araba veya kamyon gibi araç türü gibi parametreleri belirtmenize olanak sağlar. Bunların hepsi en uygun rotaları geri dönmek için gerçek zamanlı veya tahmine dayalı trafik verilerini kullanır.
Senaryo şu şekilde olacaksa Yönlendirme Yönergeleri API'lerini çağırmayı düşünün:
- Teslimat araçlarınız için tam varış sürelerini elde etmek üzere iki veya daha fazla bilinen konum arasında en kısa veya en hızlı sürüş rotasını talep etmek.
- Rota geometrisi de dahil olmak üzere harita üzerinde yolları görselleştirmek için ayrıntılı yol kılavuzu isteği
- Müşteri konumlarının listesini verilen, her müşteri konumunu ziyaret etmek ve çıkış noktası geri dönmek için mümkün olan en kısa yolu hesapla. Bu senaryo genellikle seyahat eden satışçı sorunu olarak bilinir. Bir istekte en fazla 150 yol noktası (durur) geçesiniz.
- Tek bir API çağrısı kullanarak toplu sorguları Yönlendirme Yönergeleri Batch API'sinde gönderin.
Senaryo şöyle ise Matris Yönlendirme API'sini çağırmayı düşünün:
- Bir kaynak ve hedef kümesi arasındaki seyahat süresi veya mesafeyi hesap. Örneğin 12 sürücüye sahipsiniz ve restorandaki yemek teslimi için en yakın sürücüye ihtiyacınız var.
- Olası yolları gerçek seyahat mesafelerine veya zamanlarına göre sırala. Matris API'si her çıkış noktası ve hedef birleşimi için yalnızca seyahat sürelerini ve mesafeleri döndürür.
- Seyahat süresine veya mesafelere göre verileri kümeleme. Örneğin, şirketinizin 50 çalışanı var ve ofisten 20 dakikalık Sürüş Süresi içinde yaşayan tüm çalışanları bulun.
Yol Yönleri ve Matris API'lerinin bazı özelliklerini göstermek için bir karşılaştırma aşağıdaki şekildedir:
| Azure Haritalar API'si | İstekteki en fazla sorgu sayısı | Alanlardan kaçının | Kamyon ve elektrik araç yönlendirmesi | Yol Noktaları ve Seyahat Eden Satışçı iyileştirmesi | Destek noktaları |
|---|---|---|---|---|---|
| Rota YönergeleriNi Al | 1 | ✔ | ✔ | ||
| Yol Tarifi Sonrası | 1 | ✔ | ✔ | ✔ | ✔ |
| Yol Tarifi Sonrası Toplu İş | 700 | ✔ | ✔ | ||
| Rota Sonrası Matrisi | 700 | ✔ |
Elektrik araç yönlendirme özellikleri hakkında daha fazla bilgi edinmek için Python ile birlikte kullanarak elektrik Azure Notebooks yönlendirme öğreticimize bakın.
Eski ve gerçek zamanlı verileri talep
Varsayılan olarak Yönlendirme hizmeti seyahat modunun bir araba olduğunu ve kalkış saati olduğunu varsayıyor. Rota hesaplama isteği aksini belirtilmedikçe gerçek zamanlı trafik koşullarına göre yol döndürür. 'Saat 16:00 ile 18:00 arasında sol dönüşlere izin verilmez' gibi zaman bağımlı trafik kısıtlamaları yakalanır ve yönlendirme altyapısı tarafından dikkate alınır. Yol çalışmaları gibi yol kapatmaları, geçerli canlı trafiği yoksayan bir yol özellikle talep etmedikçe dikkate alınır. Geçerli trafiği yoksaymak için traffic false API isteğinde olarak ayarlayın.
TravelTimeInSeconds rota hesaplaması, trafikten dolayı gecikmeyi içerir. Kalkış saati şu anda olarak ayarlanmış olan geçerli ve tarihi seyahat zamanı verisi ile oluşturulur. Kalkış saati gelecekte ayarlanırsa, API'ler geçmiş verileri temel alarak tahmini seyahat sürelerini geri döner.
İsteğinize computeTravelTimeFor=all parametresini dahil ediyorsanız yanıtta özet öğesinde geçmiş trafik koşulları da dahil olmak üzere aşağıdaki ek alanlar yer alar:
| Öğe | Açıklama |
|---|---|
| noTrafficTravelTimeInSeconds | Rotada trafik koşullarından dolayı gecikme yok gibi hesaplanan tahmini seyahat süresi( örneğin tıkanıklık nedeniyle) |
| historicTrafficTravelTimeInSeconds | Zaman bağımlı tarihi trafik verileri kullanılarak hesaplanan tahmini seyahat süresi |
| liveTrafficIncidentsTravelTimeInSeconds | Gerçek zamanlı hız verileri kullanılarak hesaplanan tahmini seyahat süresi |
Sonraki bölümlerde, tartışılan parametreleri kullanarak Yönlendirme API'leri için çağrı yapma konusu ele alınmıştır.
Örnek sorgu
Kalkış saati altındaki ilk örnekte, yazma zamanında geleceğe ayarlanmıştır.
https://atlas.microsoft.com/route/directions/json?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=1.0&query=51.368752,-0.118332:51.385426,-0.128929&travelMode=car&traffic=true&departAt=2025-03-29T08:00:20&computeTravelTimeFor=all
Yanıt, aşağıdakine benzer bir özet öğesi içerir. Kalkış saati geleceğe ayarlanmış olduğundan trafficDelayInSeconds değeri sıfırdır. travelTimeInSeconds değeri, zaman bağımlı eski trafik verileri kullanılarak hesaplanır. Bu durumda travelTimeInSeconds değeri, historicTrafficTravelTimeInSeconds değerine eşittir.
"summary": {
"lengthInMeters": 2131,
"travelTimeInSeconds": 248,
"trafficDelayInSeconds": 0,
"departureTime": "2025-03-29T08:00:20Z",
"arrivalTime": "2025-03-29T08:04:28Z",
"noTrafficTravelTimeInSeconds": 225,
"historicTrafficTravelTimeInSeconds": 248,
"liveTrafficIncidentsTravelTimeInSeconds": 248
},
Örnek sorgu
Aşağıdaki ikinci örnekte kalkış saati olan gerçek zamanlı bir yönlendirme isteğimiz var. Varsayılan değer olduğundan URL'de açıkça belirtilmez.
https://atlas.microsoft.com/route/directions/json?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=1.0&query=47.6422356,-122.1389797:47.6641142,-122.3011268&travelMode=car&traffic=true&computeTravelTimeFor=all
Yanıt aşağıda gösterildiği gibi bir özet içerir. Tıkanıklık nedeniyle trafficDelaysInSeconds değeri sıfırdan büyüktür. Ayrıca, historicTrafficTravelTimeInSeconds 'den büyüktür.
"summary": {
"lengthInMeters": 16637,
"travelTimeInSeconds": 2905,
"trafficDelayInSeconds": 1604,
"departureTime": "2020-02-28T01:00:20+00:00",
"arrivalTime": "2020-02-28T01:48:45+00:00",
"noTrafficTravelTimeInSeconds": 872,
"historicTrafficTravelTimeInSeconds": 1976,
"liveTrafficIncidentsTravelTimeInSeconds": 2905
},
İstek yolu ve ayak ayrıntıları
Varsayılan olarak, yönlendirme hizmeti bir koordinat dizisi döndürür. Yanıt, adlı bir listede yolu oluşturan koordinatları içerir points . Yol yanıtı, yolun başından ve tahmini geçen sürenin uzaklığını da içerir. Bu değerler, tüm yolun ortalama hızını hesaplamak için kullanılabilir.
Aşağıdaki görüntüde points öğesi gösterilmektedir.

pointYolun koordinatlarının listesini görmek için öğesini genişletin:

Yol yönleri API 'Leri, Komutctionstype parametresini belirterek kullanılabilecek farklı yönergelerin biçimlerini destekler. Kolay bilgisayar işlemeye yönelik yönergeleri biçimlendirmek için, Komutctionstype = Coded kullanın. Yönergeleri kullanıcı için metin olarak göstermek için Komutctionstype = etiketli ' i kullanın. Ayrıca, yönergelerin bazı öğelerinin işaretlendiği ve yönergedeki özel biçimlendirmeyle birlikte sunulan yönergeler metin olarak biçimlendirilebilir. Daha fazla bilgi için desteklenen yönerge türleri listesinebakın.
Yönergeler istendiğinde, yanıt adlı yeni bir öğesi döndürür guidance . guidanceÖğesi iki bilgi parçasını tutar: açma yönü ve özetlenen yönergeler.

instructionsÖğesi seyahat için geri dönüş yönlerini tutar ve instructionGroups özetlenmiş yönergeleri vardır. Her yönerge Özeti, birden çok yol kapsayan seyahat segmentini kapsar. API 'Ler, bir yolun bölümlerinin ayrıntılarını döndürebilir. Örneğin, bir trafik sıkıştı koordinat aralığı veya trafiğin geçerli hızı.


Ticari araç için rota isteme
Azure Haritalar yönlendirme apı 'leri, ticari structuralks yönlendirmeyi kapsayan ticari araç yönlendirmeyi destekler. API 'Ler belirtilen sınırları göz önünde bulundurun. Örneğin, araç için yükseklik ve ağırlık ve eğer araç, tehlikeli Cargo 'yu taşırsaldır. Örneğin, bir araç flaşmaya çalışıyorsanız, yönlendirme altyapısı, yöresel alanlara yakın bazı tünellerden kaçınır.
Örnek sorgu
Aşağıdaki örnek istek, bir ticari kamyonun yolunu sorgular. Kamyonu, sınıf 1 tehlikeli atık malzemesini taşıma.
https://atlas.microsoft.com/route/directions/json?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=1.0&vehicleWidth=2&vehicleHeight=2&vehicleCommercial=true&vehicleLoadType=USHazmatClass1&travelMode=truck&instructionsType=text&query=51.368752,-0.118332:41.385426,-0.128929
Rota API 'SI, kamyonun boyutlarına ve tehlikeli çöp kutusu ile uyumlu yönler döndürür. Öğesini genişleterek yol yönergelerini okuyabilirsiniz guidance .

Örnek sorgu
Yukarıdaki sorgudaki US hazı sınıfını değiştirmek, bu değişikliğe uyum sağlamak için farklı bir yol oluşmasına neden olur.
https://atlas.microsoft.com/route/directions/json?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=1.0&vehicleWidth=2&vehicleHeight=2&vehicleCommercial=true&vehicleLoadType=USHazmatClass9&travelMode=truck&instructionsType=text&query=51.368752,-0.118332:41.385426,-0.128929
Aşağıdaki yanıt, sınıf 1 tehlikeli bir malzemeden daha az tehlikeli olan sınıf 9 tehlikeli bir malzeme taşıyan bir kamyon içindir. guidanceYönleri okumak için öğesini genişlettiğinizde, yönlerinin aynı olmadığına dikkat edin. Kamyonun Sınıf 1 tehlikeli malzemesini taşıyan daha fazla rota yönergesi bulunur.

Yol üzerinde trafik bilgilerini isteme
Azure Haritalar yol yönü apı 'leri sayesinde, geliştiriciler isteğe parametreyi ekleyerek her bir bölüm türü için ayrıntılar isteyebilir sectionType . Örneğin, her trafik sıkışıklığı kesimine yönelik hız bilgilerini isteyebilirsiniz. İstediğiniz çeşitli ayrıntılar hakkında bilgi edinmek için sectionType anahtarının değer listesine bakın.
Örnek sorgu
Aşağıdaki sorgu öğesini olarak ayarlar sectionType traffic . Seattle 'dan San Diego trafik bilgilerini içeren bölümleri ister.
https://atlas.microsoft.com/route/directions/json?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=1.0§ionType=traffic&query=47.6062,-122.3321:32.7157,-117.1611
Yanıt, verilen koordinatlar boyunca trafik için uygun olan bölümleri içerir.

Bu seçenek, aşağıdaki görüntüde olduğu gibi, Haritayı işlerken bölümleri renklendirmek için kullanılabilir:

Çok duraklı bir yolu hesaplama ve iyileştirme
Azure Haritalar şu anda iki yol iyileştirmesi sağlar:
Geçiş noktaları sırasını değiştirmeden, istenen yol türüne göre iyileştirmeler. Desteklenen yol türlerini buradan bulabilirsiniz
Her durdurmayı ziyaret etmek için en iyi sırayı elde etmek üzere waypoints sırasını değiştiren seyahat problemine iyileştirmesi
Çoklu durduran yönlendirme için, tek bir rota isteğinde en fazla 150 waypoints belirtilebilir. Başlangıç ve bitiş koordinat konumları, gidiş dönüş ile aynı olacak şekilde aynı olabilir. Ancak rota hesaplamasını yapmak için en az bir ek yol sağlamanız gerekir. Kaynak ve hedef koordinatları arasındaki içindeki sorguya waypoints eklenebilir.
Verilen waypoints 'i ziyaret etmek için en iyi sırayı iyileştirmek istiyorsanız computeBestOrder = true değerini belirtmeniz gerekir. Bu senaryo, seyahat problemine iyileştirme sorunu olarak da bilinir.
Örnek sorgu
Aşağıdaki sorgu, parametresi olarak ayarlanan altı waypoints için yol ister computeBestOrder false . Ayrıca, parametresi için varsayılan değerdir computeBestOrder .
https://atlas.microsoft.com/route/directions/json?api-version=1.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}&computeBestOrder=false&query=47.606544,-122.336502:47.759892,-122.204821:47.670682,-122.120415:47.480133,-122.213369:47.615556,-122.193689:47.676508,-122.206054:47.495472,-122.360861
Yanıt, 140.851 ölçüm olacak yol uzunluğunu açıklar ve bu yolu gezecek 9.991 saniye sürer.

Aşağıdaki görüntüde Bu sorgudan elde edilen yol gösterilmektedir. Bu yol, olası bir yoldur. Zamana veya mesafeye göre en iyi yol değildir.

Bu yol güzergah noktası sırası: 0, 1, 2, 3, 4, 5 ve 6.
Örnek sorgu
Aşağıdaki sorgu, yukarıdaki örnekteki gibi aynı altı waypoints için yolu ister. Bu kez, computeBestOrder parametresi olarak ayarlanır true (seyahat problemine iyileştirmesi).
https://atlas.microsoft.com/route/directions/json?api-version=1.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}&computeBestOrder=true&query=47.606544,-122.336502:47.759892,-122.204821:47.670682,-122.120415:47.480133,-122.213369:47.615556,-122.193689:47.676508,-122.206054:47.495472,-122.360861
Yanıt, 91.814 ölçüm olacak yol uzunluğunu açıklar ve bu yolu gezecek 7.797 saniye sürer. API en iyileştirilmiş yolu döndürdüğünden, seyahat mesafesi ve seyahat süresinin ikisi de burada düşüktür.

Aşağıdaki görüntüde Bu sorgudan elde edilen yol gösterilmektedir.

En iyi yol şu Yön noktası sırasına sahiptir: 0, 5, 1, 2, 4, 3 ve 6.
İpucu
Yönlendirme hizmetinden en iyileştirilmiş güzergah noktası sıra bilgileri bir dizin kümesi sağlar. Bunlar, kaynağı ve hedef dizinleri hariç tutar. Kaynak için bu değerleri 1 ile artırmanız gerekir. Ardından, tüm sıralı güzergah noktası listesini almak için hedefi sonuna ekleyin.
Destekleyici noktaları kullanarak alternatif rotalar hesaplama ve sapma
Bir başvuru yolu için sıfır veya daha fazla alternatif yol hesaplamak üzere bir yolu yeniden oluşturmak istediğiniz durumlara sahip olabilirsiniz. Örneğin, perakende deponuzu yönlendiren müşterilere alternatif yollar göstermek isteyebilirsiniz. Bu durumda, destekleyici noktaları kullanarak bir konumu sapgetirmeniz gerekir. Bir konumu sapma adımları aşağıda verilmiştir:
- Bir yolu olduğu gibi hesapla ve yol yanıtından yolu al
- Yol yolunda istenen konumları bulmak için yol yolunu kullanın. örneğin, Azure Haritalar ilgi çekici apı 'yi kullanabilir veya kendi verilerinizi veritabanınızda sorgulayabilirsiniz.
- Yolun başlangıcından uzaklığına göre konumları sıralama
- Bu konumları, yol yönlerini gönder API'sine yeni bir rota isteğinde destekleme noktaları olarak ekleyin. Destekleyici noktaları hakkında daha fazla bilgi edinmek için bkz. yol yönlerini gönderme API 'si belgeleri.
Yol yönlerini gönder API'sini çağırırken, en düşük sapma süresini veya uzaklık kısıtlamalarını destekleme noktalarıyla birlikte ayarlayabilirsiniz. Alternatif yollar sunmak istiyorsanız, bu parametreleri kullanın, ancak seyahat süresini de sınırlandırmak istersiniz. Bu kısıtlamalar kullanıldığında, alternatif yollar, kaynak noktasındaki başvuru yolunu verilen zaman veya mesafe için izler. Diğer bir deyişle, diğer yollar verilen kısıtlamalara göre başvuru rotasına göre ayrılmış.
Aşağıdaki görüntüde, zaman ve mesafe için belirtilen Sapma limitleriyle alternatif yolların oluşturulmasına yönelik bir örnek verilmiştir.

Yönlendirme hizmetini bir Web uygulamasında kullanma
Azure Haritalar Web SDK 'sı bir hizmet modülüsağlar. bu modül, JavaScript veya TypeScript kullanarak web veya Node.js uygulamalarında Azure Haritalar REST apı 'lerinin kullanılmasını kolaylaştıran bir yardımcı kitaplıktır. Hizmet modülü, haritada döndürülen yolları işlemek için kullanılabilir. Modül, hangi API 'nin GET ve POST istekleri ile kullanılacağını otomatik olarak belirler.
Sonraki adımlar
Daha fazla bilgi için lütfen bkz.