Aracılığıyla paylaş


Azure Haritalar Route hizmeti için en iyi yöntemler

Azure Haritalar Route hizmetindeki Yol Tarifleri ve Rota Matrisi API'leri, istenen her rota için tahmini varış saatlerini (ETA) hesaplamak için kullanılabilir. Rota API'leri, istenen tarih ve saatteki tipik yol hızları gibi gerçek zamanlı trafik bilgileri ve geçmiş trafik verileri gibi faktörleri dikkate alır. API'ler, bir kerede birden çok hedef için kullanılabilen en kısa veya en hızlı yolları zamana veya mesafeye göre sıralı veya iyileştirilmiş sırada döndürür. Kullanıcılar ayrıca aylaklar, bisikletçiler ve kamyonlar gibi ticari araçlar için özel rotalar ve ayrıntılar isteyebilir. Bu makalede, nasıl yapılır da dahil olmak üzere Azure Haritalar Yönlendirme hizmetini çağırmaya yönelik en iyi yöntemler ele alınmaktadır:

  • Yol Tarifleri API'leri ile Matris Yönlendirme API'leri arasında seçim yapma
  • Gerçek zamanlı ve geçmiş trafik verileri temelinde geçmişe ait ve tahmin edilebilir seyahat zamanları isteme
  • Yolun tamamı ve rotanın her bir ayağı için zaman ve mesafe gibi rota ayrıntılarını isteme
  • Kamyon gibi ticari bir araç için rota isteme
  • Trafik sıkışıklığı ve ücretli bilgiler gibi bir rota boyunca trafik bilgileri isteme
  • Bir veya daha fazla durak (yol noktaları) içeren bir yol isteyin
  • Her durağı (yol noktası) ziyaret etmek için en iyi siparişi almak için bir veya daha fazla durağın rotasını iyileştirme
  • Destek noktalarını kullanarak alternatif yolları iyileştirin. Örneğin, bir elektrikli araç şarj istasyonundan geçen alternatif rotalar sunar.
  • yönlendirme hizmetini Azure Haritalar Web SDK'sı ile kullanma

Önkoşullar

Rota hizmetinin kapsamı hakkında daha fazla bilgi için bkz . Yönlendirme Kapsamı.

Postman veya Bruno gibi herhangi bir API geliştirme ortamını kullanarak bu makalede gösterilen HTTP isteği örneklerini çalıştırabilir veya REST çağrıları oluşturabilirsiniz.

Yol Tarifleri ile Matris Yönlendirme arasında seçim yapma

Yol Tarifleri API'leri, seyahat süresi ve bir rota yolunun koordinatları da dahil olmak üzere yönergeleri döndürür. Rota Matrisi API'si, kaynak ve hedef konumlar tarafından tanımlanan bir rota kümesi için seyahat süresini ve mesafeleri hesaplamanıza olanak tanır. Belirli her çıkış noktası için Matris API'si, bu kaynaktan belirli bir hedefe yönlendirmenin maliyetini (seyahat süresi ve uzaklık) hesaplar. Bu API'ler istenen kalkış saati, varış saatleri ve araç türü gibi araba veya kamyon gibi parametreleri belirtmenize olanak sağlar. Hepsi en uygun rotaları döndürmek için gerçek zamanlı veya tahmine dayalı trafik verilerini kullanır.

Senaryonuz şu şekildeyse Yol Tarifleri API'lerini çağırmayı göz önünde bulundurun:

  • Teslimat araçlarınız için kesin varış sürelerini almak için iki veya daha fazla bilinen konum arasındaki en kısa veya en hızlı sürüş rotasını isteyin.
  • Rota geometrisi de dahil olmak üzere haritadaki yolları görselleştirmek için ayrıntılı yol kılavuzu isteyin
  • Müşteri konumlarının listesi verilip her müşteri konumunu ziyaret etmek ve çıkış noktası dönmek için mümkün olan en kısa yolu hesaplayın. Bu senaryo genellikle seyahat eden satıcı sorunu olarak bilinir. Tek bir istekte en fazla 150 yol noktası (durak) geçirebilirsiniz.
  • Tek bir API çağrısı kullanarak Yol Tarifleri Batch API'sine toplu sorgular gönderin.

Senaryonuz şu şekildeyse Matris Yönlendirme API'sini çağırmayı göz önünde bulundurun:

  • Bir dizi çıkış noktası ve varış noktası arasındaki seyahat süresini veya mesafeyi hesaplayın. Örneğin, 12 sürücüye sahipsiniz ve restorandan yiyecek teslimini almak için en yakın sürücüyü bulmanız gerekir.
  • Olası rotaları gerçek seyahat mesafelerine veya saatlerine göre sıralayın. Matris API'si, her çıkış noktası ve hedef bileşimi için yalnızca seyahat sürelerini ve mesafelerini döndürür.
  • Verileri seyahat süresine veya mesafelerine göre kümeleyin. Örneğin, şirketinizin 50 çalışanı vardır ve ofisinizden 20 dakikalık sürüş süresi içinde yaşayan tüm çalışanları bulur.

Yol Tarifleri ve Matris API'lerinin bazı özelliklerini göstermek için bir karşılaştırma aşağıdadır:

Azure Haritalar API İstekteki en fazla sorgu sayısı Alanlardan kaçının Kamyon ve elektrikli araç yönlendirme Yol Noktaları ve Seyahat Eden Satış Elemanı iyileştirmesi Destek noktaları
Yol Tariflerini Alma 1
Rota Sonrası Yol Tarifleri 1
Rota Yol Tarifleri Toplu İşlemini Deftere Naklettiğinde 700
Rota Sonrası Matrisi 700

Elektrikli araç yönlendirme özellikleri hakkında daha fazla bilgi edinmek için Python ile Azure Notebooks kullanarak elektrikli araçları yönlendirme öğreticimize bakın.

Geçmiş ve gerçek zamanlı veriler isteme

Varsayılan olarak, Rota hizmeti seyahat modunun bir araba olduğunu ve kalkış zamanının şimdi olduğunu varsayar. Bir yol hesaplama isteği aksini belirtmediği sürece gerçek zamanlı trafik koşullarına göre rota döndürür. Yönlendirme altyapısı, zamana bağlı trafik kısıtlamalarını düzeltti. Örneğin, "16:00 ile 18:00 arasında sola dönüşlere izin verilmiyor". Yol çalışmaları gibi yol kapatma işlemleri, geçerli canlı trafiği yoksayan bir rota istemediğiniz sürece dikkate alınır. Geçerli trafiği yoksaymak için API isteğinizde olarak false ayarlayıntraffic.

TravelTimeInSeconds rota hesaplaması değeri trafik nedeniyle oluşan gecikmeyi içerir. Kalkış saati şimdi olarak ayarlandığında geçerli ve geçmiş seyahat süresi verileri kullanılarak oluşturulur. Kalkış saatiniz gelecekte ayarlanırsa, API'ler geçmiş verilere göre tahmin edilen seyahat sürelerini döndürür.

İsteğinize computeTravelTimeFor=all parametresini eklerseniz, yanıttaki özet öğesinde geçmiş trafik koşulları da dahil olmak üzere aşağıdaki alanlar bulunur:

Öğe Açıklama
noTrafficTravelTimeInSeconds Trafik koşulları nedeniyle, örneğin tıkanıklık nedeniyle rotada gecikme yaşanmadığı gibi hesaplanan tahmini seyahat süresi
historicTrafficTravelTimeInSeconds Zamana bağlı geçmiş 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, açıklanan parametreleri kullanarak Yol API'lerine nasıl çağrı yapılacağını gösterir.

Örnek sorgu

Aşağıdaki ilk örnekte kalkış saati, yazıldıktan sonra geleceğe ayarlanmıştır.

https://atlas.microsoft.com/route/directions/json?subscription-key={Your-Azure-Maps-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ğıdaki örnekte olduğu gibi bir özet öğesi içerir. Kalkış saati geleceğe ayarlandığından trafficDelayInSeconds değeri sıfırdır. travelTimeInSeconds değeri zamana bağlı geçmiş 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

Sonraki örnekte, kalkış saatinin şu anda olduğu gerçek zamanlı bir yönlendirme isteğimiz vardır. Varsayılan değer olduğundan URL'de açıkça belirtilmez.

https://atlas.microsoft.com/route/directions/json?subscription-key={Your-Azure-Maps-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ğıdaki örnekte gösterildiği gibi bir özet içerir. Tıkanıklık nedeniyle trafficDelaysInSeconds değeri sıfırdan büyük. Ayrıca historicTrafficTravelTimeInSeconds değerinden daha 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 
},

Rota ve bacak ayrıntılarını isteme

Varsayılan olarak, Rota hizmeti bir koordinat dizisi döndürür. Yanıt, adlı pointsbir listedeki yolu oluşturan koordinatları içerir. Rota yanıtı, yolun başlangıcından uzaklığı ve tahmini geçen süreyi de içerir. Bu değerler, tüm yolun ortalama hızını hesaplamak için kullanılabilir.

Aşağıdaki görüntüde öğesi gösterilmektedir points .

Points öğesi

Yolunun point koordinat listesini görmek için öğesini genişletin:

Genişletilmiş noktalar öğesi

Yol Tarifleri API'leri instructionsType parametresini belirterek kullanılabilecek farklı yönerge biçimlerini destekler. Kolay bilgisayar işleme yönergelerini biçimlendirmek için instructionsType=coded komutunu kullanın. Yönergeleri kullanıcıya metin olarak görüntülemek için instructionsType=tagged komutunu kullanın. Ayrıca yönergeler, yönergelerin bazı öğelerinin işaretlendiği ve yönergenin özel biçimlendirmeyle sunulduğu metin olarak biçimlendirilebilir. Daha fazla bilgi için desteklenen yönerge türlerinin listesine bakın.

Yönergeler istendiğinde, yanıt adlı guidanceyeni bir öğe döndürür. guidance öğesi iki bilgi parçasını barındırıyor: sıralı yol tarifleri ve özetlenmiş yönergeler.

Yönergeler türü

öğesi yolculuk instructions için sıralı yol tariflerini tutar ve instructionGroups özetlenmiş yönergelere sahiptir. Her yönerge özeti, yolculuğun birden fazla yolu kapsayabilecek bir kesimini kapsar. API'ler bir yolun bölümleri için ayrıntıları döndürebilir. örneğin, bir trafik sıkışıklığının koordinat aralığı veya geçerli trafik hızı.

Sırayla yönergeleri döndür

Özetlenmiş Yönergeler

Ticari araç için rota isteme

Azure Haritalar Yönlendirme API'leri, ticari kamyon yönlendirmeyi kapsayan ticari araç yönlendirmesini destekler. API'ler belirtilen sınırları dikkate alır. Örneğin, aracın yüksekliği ve ağırlığı ve aracın tehlikeli yük taşıyor olması. Örneğin, bir araç yanıcı taşıyorsa, yönlendirme motoru yerleşim alanlarına yakın olan belirli tünellerden kaçınmaktadır.

Örnek sorgu

Aşağıdaki örnek istek, ticari kamyon rotasını sorgular. Kamyon 1. sınıf tehlikeli atık malzemesi taşıyor.

https://atlas.microsoft.com/route/directions/json?subscription-key={Your-Azure-Maps-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ını ve tehlikeli atıkları kapsayan yönler döndürür. öğesini genişleterek yol yönergelerini guidance okuyabilirsiniz.

Sınıf 1 hazwaste ile kamyon

Örnek sorgu

Yukarıdaki sorgudan US Hazmat Sınıfı'nın değiştirilmesi, bu değişikliği karşılamak için farklı bir yol oluşturur.

https://atlas.microsoft.com/route/directions/json?subscription-key={Your-Azure-Maps-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 maddeden daha az tehlikeli olan sınıf 9 tehlikeli madde taşıyan bir kamyon içindir. Yönlerini okumak için öğesini genişlettiğiniz guidance zaman, yol tariflerinin aynı olmadığını fark edin. Sınıf 1 tehlikeli madde taşıyan kamyon için daha fazla rota talimatları vardır.

Sınıf 9 hazwaste ile kamyon

Bir yol boyunca trafik bilgileri isteme

Azure Haritalar Yönlendirme Yönü API'leri ile geliştiriciler, parametreyi sectionType isteğe ekleyerek her bölüm türü için ayrıntılar isteyebilir. Örneğin, her trafik sıkışıklığı segmenti için hız bilgilerini isteyebilirsiniz. İsteyebileceğ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 sectionType trafficayarlar. Seattle'dan San Diego'ya trafik bilgilerini içeren bölümleri istemektedir.

https://atlas.microsoft.com/route/directions/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&sectionType=traffic&query=47.6062,-122.3321:32.7157,-117.1611

Yanıt, verilen koordinatlar boyunca trafiğe uygun bölümleri içerir.

Trafik bölümleri

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

Haritada işlenen renkli bölümleri gösteren ekran görüntüsü.

Çok duraklı bir yolu hesaplama ve iyileştirme

Azure Haritalar şu anda iki yol iyileştirme biçimi sağlar:

  • yol noktalarının sırasını değiştirmeden istenen yol türüne göre iyileştirmeler. Daha fazla bilgi için bkz . RouteType.

  • Her durağı ziyaret etmek için en iyi siparişi elde etmek için yol noktalarının sırasını değiştiren seyahat eden satıcı iyileştirmesi

Çok duraklı yönlendirme için, tek bir yol isteğinde en fazla 150 yol noktası belirtilebilir. Başlangıç ve bitiş koordinat konumları, gidiş dönüşte olduğu gibi aynı olabilir. Ancak rota hesaplaması yapmak için en az bir yol noktası daha sağlamanız gerekir. Çıkış noktası ve hedef koordinatları arasında sorguya yol noktaları eklenebilir.

Verilen yol noktalarını ziyaret etmek için en iyi siparişi iyileştirmek istiyorsanız computeBestOrder=true değerini belirtmeniz gerekir. Bu senaryo, seyahat eden satıcı iyileştirme sorunu olarak da bilinir.

Örnek sorgu

Aşağıdaki sorgu, computeBestOrder parametresi olarak ayarlanmış altı yol noktası için yolu istemektedir 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-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, yol uzunluğunun 140.851 metre olduğunu ve bu yolun ilerlemesinin 9.991 saniye süreceğini açıklar.

İyileştirilmiş olmayan yanıt

Aşağıdaki görüntüde bu sorgudan elde edilen yol gösterilmektedir. Bu yol olası yollardan biridir. Zamana veya mesafeye göre en uygun yol değildir.

İyileştirilmiş olmayan yol içeren bir haritayı gösteren ekran görüntüsü.

Bu yol noktası sırası: 0, 1, 2, 3, 4, 5 ve 6.

Örnek sorgu

Aşağıdaki sorgu, yukarıdaki örnekte olduğu gibi aynı altı yol noktasının yolunu istemektedir. Bu kez computeBestOrder parametresi olarak ayarlanır true (seyahat eden satış elemanı iyileştirmesi).

https://atlas.microsoft.com/route/directions/json?api-version=1.0&subscription-key={Your-Azure-Maps-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, yol uzunluğunun 91.814 metre olduğunu ve bu yolun ilerlemesinin 7.797 saniye süreceğini açıklar. API iyileştirilmiş rotayı döndürdiğinden hem seyahat mesafesi hem de seyahat süresi burada daha düşüktür.

İyileştirilmiş yanıt

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

İyileştirilmiş rotaya sahip bir haritayı gösteren ekran görüntüsü.

En uygun yol şu yol noktası sırasına sahiptir: 0, 5, 1, 2, 4, 3 ve 6.

İpucu

Yönlendirme hizmetindeki iyileştirilmiş yol noktası sipariş bilgileri bir dizi dizin sağlar. Bunlar, kaynak ve hedef dizinleri dışlar. Kaynağı hesaba katmanız için bu değerleri 1 artırmanız gerekir. Ardından, tam sıralı yol noktası listesini almak için hedefinizi sonuna ekleyin.

Destek noktalarını kullanarak alternatif yolları hesaplama ve sapma

Bir başvuru yolu için sıfır veya daha fazla alternatif yolu hesaplamak üzere bir yolu yeniden yapılandırmak istediğiniz durumlar olabilir. Örneğin, müşterilere perakende satış mağazanızdan geçen alternatif rotaları gösterebilirsiniz. Bu durumda, destekleyici noktaları kullanarak bir konumu sapmanız gerekir. Bir konumu sapma adımları şunlardır:

  1. Yolu olduğu gibi hesaplama ve yol yanıtından yolu alma
  2. Rota yolu boyunca veya yakınında istenen konumları bulmak için yol yolunu kullanın. Örneğin, İlgi Noktası isteğini kullanabilir veya veritabanınızda kendi verilerinizi sorgulayabilirsiniz.
  3. Rotanın başlangıcından uzaklık temelinde konumları sıralama
  4. Bu konumları, Yeni bir yol isteğinde destek noktaları olarak Yol Tariflerini Gönder'e ekleyin. Destek noktaları hakkında daha fazla bilgi edinmek için Yol Tarifleri Sonrası API belgelerine bakın.

Rota Sonrası Yol Tariflerini çağırırken, destek noktalarıyla birlikte minimum sapma süresini veya mesafe kısıtlamalarını ayarlayabilirsiniz. Alternatif yollar sunmak, ancak seyahat süresini sınırlamak istiyorsanız bu parametreleri kullanın. Bu kısıtlamalar kullanıldığında, alternatif yollar verilen süre veya uzaklık için çıkış noktasından başvuru yolunu izler. Başka bir deyişle, diğer yollar verilen kısıtlamalara göre başvuru yolundan ayrılır.

Aşağıdaki görüntü, zaman ve mesafe için belirtilen sapma sınırlarına sahip alternatif yolların işlenmesine bir örnektir.

Alternatif yol içeren bir haritayı gösteren ekran görüntüsü.

Web uygulamasında Yönlendirme hizmetini 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 API'lerini kullanmayı kolaylaştıran bir yardımcı kitaplıktır. Hizmet modülü, döndürülen yolları haritada işlemek için kullanılabilir. Modül, GET ve POST istekleriyle kullanılacak API'yi otomatik olarak belirler.

Not

Azure Haritalar Web SDK Hizmeti Modülü kullanımdan kaldır

Azure Haritalar Web SDK Hizmeti Modülü artık kullanım dışıdır ve 30.09.26 tarihinde kullanımdan kaldırılacaktır. Hizmet kesintilerini önlemek için 30.09.26'ya kadar Azure Haritalar JavaScript REST SDK'sına geçiş yapmanızı öneririz. Daha fazla bilgi için bkz. JavaScript/TypeScript REST SDK Geliştirici Kılavuzu (önizleme).

Sonraki adımlar

Daha fazla bilgi edinmek için bkz: