Metodtips för Azure Kartor tjänsten Route

API:erna Route Directions och Route Matrix i Azure Kartor Route Service kan användas för att beräkna beräknad ankomsttid (ETA) för varje begärd väg. Väg-API:er överväger faktorer som trafikinformation i realtid och historiska trafikdata, till exempel typiska väghastigheter på den begärda dagen i veckan och tiden på dagen. API:erna returnerar de kortaste eller snabbaste vägarna som är tillgängliga för flera mål i taget i följd eller i optimerad ordning, baserat på tid eller avstånd. Användare kan också begära särskilda vägar och information för fotgängare, bicyclists och kommersiella fordon som lastbilar. I den här artikeln delar vi metodtipsen för att anropa Azure Kartor Route Serviceoch du får lära dig att:

  • Välj mellan ROUTE Directions-API:erna och matrisens routnings-API
  • Begära historiska och förväntade restider baserat på trafikdata i realtid och historiska trafikdata
  • Information om förfrågningsvägen, till exempel tid och avstånd, för hela rutten och varje del av rutten
  • Begära väg för ett kommersiellt fordon, till exempel en lastbil
  • Begära trafikinformation längs en väg, som trafikstockningar och vägtullsinformation
  • Begära en väg som består av en eller flera stopp (waypoints)
  • Optimera en väg för en eller flera stopp för att få den bästa ordningen att besöka varje stopp (waypoint)
  • Optimera alternativa vägar med hjälp av stödpunkter. Du kan till exempel erbjuda alternativa vägar som passerar en elbilsladdningsstation.
  • Använda Route Service med Azure Kartor Web SDK

Förutsättningar

  1. Skapa ett Azure Kartor konto
  2. Skaffa en primär prenumerationsnyckel, som även kallas primärnyckel eller prenumerationsnyckel.

Mer information om täckningen för Route Service finns i Routningstäckning.

Den här artikeln använder Postman-appen för att skapa REST-anrop, men du kan välja valfri API-utvecklingsmiljö.

Välj mellan Routningsriktningar och Matrisroutning

Route Directions-API:erna returnerar instruktioner inklusive restiden och koordinaterna för en vägväg. Med API:et Route Matrix kan du beräkna restiden och avstånden för en uppsättning vägar som definieras av ursprungs- och målplatser. För varje angivna ursprung beräknar matris-API:et kostnaden (restid och avstånd) för routning från ursprunget till varje angivna mål. Med alla dessa API:er kan du ange parametrar som önskad avgångstid, ankomsttider och fordonstyp, till exempel bil eller lastbil. Alla använder data i realtid eller förutsägande trafik för att returnera de mest optimala vägarna.

Överväg att anropa Route Directions-API:er om ditt scenario är att:

  • Begär den kortaste eller snabbaste körningsvägen mellan två eller flera kända platser för att få exakta ankomsttider för dina leveransfordon.
  • Begära detaljerad vägvägledning, inklusive väggeometri, för att visualisera vägar på kartan
  • Med en lista över kundplatser beräknar du den kortaste möjliga vägen för att besöka varje kundplats och återgå till ursprunget. Det här scenariot kallas ofta för problemet med den resande säljaren. Du kan skicka upp till 150 waypoints (stopp) i en begäran.
  • Skicka batchar med frågor till Batch-API:et Route Directions med bara ett enda API-anrop.

Överväg att anropa API:et för matrisroutning om ditt scenario är att:

  • Beräkna restiden eller avståndet mellan en uppsättning ursprung och mål. Du har till exempel 12 drivrutiner och du måste hitta den närmaste tillgängliga drivrutinen för att hämta matleveransen från restaurang.
  • Sortera potentiella vägar efter deras faktiska resavstånd eller tid. Matris-API:et returnerar endast restider och avstånd för varje kombination av ursprung och mål.
  • Klusterdata baserat på restid eller avstånd. Ditt företag har till exempel 50 anställda och hittar alla anställda som bor inom 20 minuters körtid från kontoret.

Här är en jämförelse som visar några funktioner i API:erna Route Directions och Matrix:

API för Azure Kartor Maximalt antal frågor i begäran Undvik områden Routning av lastbil och elfordon Optimering av waypoints och reseförsäljning Stödpunkter
Hämta vägriktningar 1
Publicera vägriktningar 1
Publicera Route Directions Batch 700
Post Route Matrix 700

Mer information om routningsfunktioner för elfordon finns i vår självstudie om hur du dirigerar elfordon med hjälp Azure Notebooks med Python.

Begära historiska data och realtidsdata

Som standard förutsätter tjänsten Route att färdläget är en bil och avgångstiden är nu. Den returnerar vägen baserat på trafikförhållanden i realtid om inte en begäran om vägberäkning anger något annat. Fasta tidsberoende trafikbegränsningar, t.ex. "Vänsterbackar tillåts inte mellan 16:00 till 18:00" fångas in och beaktas av routningsmotorn. Vägstängningar, till exempel vägarbete, övervägs om du inte uttryckligen begär en väg som ignorerar den aktuella direkttrafiken. Om du vill ignorera den aktuella trafiken anger du traffic till false i din API-begäran.

Värdet för route calculation travelTimeInSeconds innehåller fördröjningen på grund av trafiken. Den genereras genom att utnyttja aktuella och historiska restidsdata när avgångstiden är inställd på nu. Om din avgångstid anges i framtiden returnerar API:erna förväntade restider baserat på historiska data.

Om du inkluderar parametern computeTravelTimeFor=all i din begäran har sammanfattningselementet i svaret följande ytterligare fält, inklusive historiska trafikförhållanden:

Element Beskrivning
noTrafficTravelTimeInSeconds Beräknad restid som om det inte finns några fördröjningar på vägen på grund av trafikförhållanden, till exempel på grund av överbelastning
historicTrafficTravelTimeInSeconds Beräknad restid med tidsberoende historiska trafikdata
liveTrafficIncidentsTravelTimeInSeconds Beräknad restid med hjälp av hastighetsdata i realtid

I nästa avsnitt visas hur du gör anrop till Route-API:erna med hjälp av de parametrar som beskrivs.

Exempelfråga

I det första exemplet nedanför anges avgångstiden till framtiden, i skrivande stund.

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

Svaret innehåller ett sammanfattningselement som det nedan. Eftersom avgångstiden är inställd på framtiden är värdet trafficDelayInSeconds noll. Värdet travelTimeInSeconds beräknas med hjälp av tidsberoende historiska trafikdata. I det här fallet är värdet travelTimeInSeconds lika med värdet historicTrafficTravelTimeInSeconds.

"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
},

Exempelfråga

I det andra exemplet nedan har vi en routningsbegäran i realtid, där avgångstiden nu är. Det anges inte uttryckligen i URL:en eftersom det är standardvärdet.

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

Svaret innehåller en sammanfattning som visas nedan. På grund av överbelastningar är värdet trafficDelaysInSeconds större än noll. Det är också större än historiskTrafficTravelTimeInSeconds.

"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 
},

Information om begärandeväg och ben

Som standard returnerar tjänsten Route en matris med koordinater. Svaret innehåller koordinaterna som utgör sökvägen i en lista med namnet points . Vägsvaret omfattar även avståndet från början av rutten och den beräknade förflutna tiden. Dessa värden kan användas för att beräkna den genomsnittliga hastigheten för hela rutten.

Följande bild visar points elementet .

Points-element

Expandera point elementet för att se listan över koordinater för sökvägen:

Expanderat punktelement

Route Directions-API:erna stöder olika format för instruktioner som kan användas genom att ange parametern instructionsType. Om du vill formatera instruktioner för enkel datorbearbetning använder du instructionsType=coded. Använd instructionsType=tagged för att visa instruktioner som text för användaren. Instruktioner kan också formateras som text där vissa element i instruktionerna är markerade och instruktionen visas med särskild formatering. Mer information finns i listan över instruktionstyper som stöds.

När instruktioner begärs returnerar svaret ett nytt element med namnet guidance . Elementet guidance innehåller två typer av information: turn-by-turn-instruktioner och sammanfattade instruktioner.

Typ av instruktioner

Elementet instructions innehåller tur-för-tur-anvisningar för resan och har instructionGroups sammanfattade instruktioner. Varje instruktionssammanfattning omfattar ett segment av resan som kan omfatta flera vägar. API:erna kan returnera information för avsnitt i en väg. till exempel koordinatintervallet för en trafikstockning eller den aktuella hastigheten för trafiken.

Turn by turn instructions (Turn by turn-instruktioner)

Sammanfattade instruktioner

Begära en väg för ett kommersiellt fordon

Azure Kartor Routing-API:er stöder trafikdirigering av kommersiella fordon, som omfattar dirigering av kommersiella lastbilar. API:erna överväger angivna gränser. Det kan till exempel vara fordonets höjd och vikt, och om fordonet transporterar farligt last. Om till exempel ett fordon har brandfara undviker dirigeringsmotorn vissa tunnlar som är nära bostadsområden.

Exempelfråga

Exempelbegäran nedan frågar en väg för en kommersiell lastbil. Lastbilen transporterar farligt spillmaterial av klass 1.

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

Route-API:et returnerar riktningar som tar hänsyn till lastbilens dimensioner och farligt slöseri. Du kan läsa väganvisningarna genom att expandera guidance -elementet.

Lastbil med klass 1 hazwaste

Exempelfråga

Om du ändrar US Hazmat-klassen från ovanstående fråga resulterar det i en annan väg för att hantera den här ändringen.

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

Svaret nedan är för en lastbil som har ett klass 9-farligt material, som är mindre farligt än ett farligt material av klass 1. När du expanderar elementet för att läsa anvisningarna guidance ser du att anvisningarna inte är desamma. Det finns fler väginstruktioner för lastbilen som transporterar klass 1-farligt material.

Lastbil med klass 9 hazwaste

Begära trafikinformation längs en väg

Med Azure Kartor Route Direction-API:er kan utvecklare begära information för varje avsnittstyp genom att inkludera sectionType parametern i begäran. Du kan till exempel begära hastighetsinformation för varje trafikstockning. Se listan med värden för nyckeln sectionType om du vill veta mer om de olika uppgifterna som du kan begära.

Exempelfråga

Följande fråga anger sectionType till traffic . Den begär avsnitten som innehåller trafikinformation från Seattle till San Seattle.

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

Svaret innehåller avsnitten som är lämpliga för trafik längs de angivna koordinaterna.

Trafikavsnitt

Det här alternativet kan användas för att färglägga avsnitten när kartan återges, som i bilden nedan:

Färgade avsnitt som återges på kartan

Beräkna och optimera rutt med flera stopp

Azure Kartor för närvarande två typer av vägoptimeringar:

  • Optimeringar baserat på den begärda vägtypen, utan att ändra ordningen på waypoints. Du hittar de vägtyper som stöds här

  • Optimering av reseförsäljningsman, vilket ändrar ordningen på waypoints för att få den bästa ordningen att besöka varje stopp

För routning med flera stopp kan upp till 150 waypoints anges i en enda vägbegäran. Koordinaterna för start och slut kan vara desamma, vilket är fallet med tur och retur. Men du måste ange minst en ytterligare waypoint för att göra vägberäkningen. Waypoints kan läggas till i frågan mellan ursprungs- och målkoordinaterna.

Om du vill optimera den bästa ordningen för att besöka de angivna waypoints måste du ange computeBestOrder=true. Det här scenariot kallas även för optimeringsproblemet för säljare som reser.

Exempelfråga

Följande fråga begär sökvägen för sex waypoints, med computeBestOrder parametern inställd på false . Det är också standardvärdet för computeBestOrder parametern .

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

Svaret beskriver sökvägens längd till 140 851 meter och att det skulle ta 9 991 sekunder att färdas den vägen.

Icke-optimerat svar

Bilden nedan visar sökvägen som är resultatet av den här frågan. Den här sökvägen är en möjlig väg. Det är inte den optimala sökvägen baserat på tid eller avstånd.

Icke-optimerad avbildning

Den här vägens waypoint-ordning är: 0, 1, 2, 3, 4, 5 och 6.

Exempelfråga

Följande fråga begär sökvägen för samma sex waypoints, som i exemplet ovan. Den här gången är computeBestOrder parametern inställd på true (optimering av den resande säljaren).

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

Svaret beskriver sökvägens längd till 91 814 meter och att det skulle ta 7 797 sekunder att färdas den vägen. Resavståndet och restiden är båda lägre här eftersom API:et returnerade den optimerade rutten.

Optimerat svar

Bilden nedan visar sökvägen som är resultatet av den här frågan.

Optimerad avbildning

Den optimala vägen har följande waypoint-ordning: 0, 5, 1, 2, 4, 3 och 6.

Tips

Den optimerade waypoint-orderinformationen från routningstjänsten innehåller en uppsättning index. Dessa exkluderar ursprungs- och målindexen. Du måste öka dessa värden med 1 för att ta hänsyn till ursprunget. Lägg sedan till målet i slutet för att hämta den fullständiga sorterade waypoint-listan.

Beräkna och fördomsera alternativa vägar med hjälp av stödpunkter

Du kan ha situationer där du vill rekonstruera en väg för att beräkna noll eller flera alternativa vägar för en referensväg. Du kanske till exempel vill visa kunderna alternativa vägar som passerar din butik. I det här fallet måste du fördomara en plats med hjälp av stödpunkter. Här är stegen för att skapa bias för en plats:

  1. Beräkna en väg som den är och hämta sökvägen från vägsvaret
  2. Använd vägsökvägen för att hitta önskade platser längs eller nära vägvägen. Du kan till exempel använda Azure Kartor POINT of Interest API eller köra frågor mot dina egna data i din databas.
  3. Ordna platserna baserat på avståndet från ruttens början
  4. Lägg till dessa platser som stödpunkter i en ny vägbegäran i API:et Post Route Directions. Mer information om stödpunkterna finns i dokumentationen för API:et Post Route Directions.

När du anropar API:et Post Route Directionskan du ange minsta avvikelsetid eller avståndsbegränsningar, tillsammans med stödpunkterna. Använd de här parametrarna om du vill erbjuda alternativa vägar, men du vill också begränsa restiden. När dessa begränsningar används följer de alternativa vägarna referensvägen från ursprungspunkten för den angivna tiden eller avståndet. Med andra ord skiljer sig de andra vägarna från referensvägen enligt de angivna begränsningarna.

Bilden nedan är ett exempel på rendering av alternativa vägar med angivna avvikelsegränser för tid och avstånd.

Alternativa vägar

Använda routningstjänsten i en webbapp

Azure Kartor Web SDK tillhandahåller en tjänstmodul. Den här modulen är ett hjälpbibliotek som gör det enkelt att använda Azure Kartor REST API:er i webb- eller Node.js-program med hjälp av JavaScript eller TypeScript. Tjänstmodulen kan användas för att rendera de returnerade vägarna på kartan. Modulen avgör automatiskt vilket API som ska användas med GET- och POST-begäranden.

Nästa steg

Mer information finns i: