Osvědčené postupy pro Azure Mapy Route
Rozhraní API Směry trasy a Matice tras v Azure Mapy Route Service je možné použít k výpočtu odhadovaných časů příletu (ETA) pro každou požadovanou trasu. Rozhraní API pro trasy vezměte v úvahu faktory, jako jsou informace o provozu v reálném čase a historická data o provozu, jako jsou typické rychlosti silnic v požadovaný den v týdnu a denní dobu. Rozhraní API vrací nejkratší nebo nejrychlejší trasy dostupné do více cílů v sekvenci nebo v optimalizovaném pořadí na základě času nebo vzdálenosti. Uživatelé si také mohou vyžádat specializované trasy a podrobnosti pro chodce, bicycykly a komerční vozidla, jako jsou nákladní vozy. V tomto článku se seznámíme s osvědčenými postupy volání služby Azure Mapy Route Servicea dozvíte se, jak:
- Volba mezi rozhraními API směrů trasy a rozhraním API pro směrování matice
- Vyžádat si historické a predikované dojezdové časy na základě aktuálních i historických dat o provozu
- Vyžádejte si podrobnosti o trase, jako je čas a vzdálenost, pro celou trasu a každou část trasy.
- Vyžádání trasy pro komerční vozidlo, jako je nákladní vůz
- Vyžádání informací o provozu na trase, jako jsou jamy a informace o mýtné
- Vyžádání trasy, která se skládá z jedné nebo více zastavení (trasových bodů)
- Optimalizujte trasu jedné nebo více zastavení, abyste získali nejlepší pořadí pro návštěvu jednotlivých stop (trasových bodů).
- Optimalizujte alternativní trasy pomocí podpůrných bodů. Můžete například nabídnout alternativní trasy, které procházejí zpoplatněnou stanicí pro elektrická vozidla.
- Použití směrovací služby se sadou Azure Mapy Web SDK
Požadavky
- Nastavení účtu azure Mapy
- Získejte primární klíč předplatného, označované také jako primární klíč nebo klíč předplatného.
Další informace o pokrytí služby Route Service najdete v tématu Pokrytí směrování.
V tomto článku se k vytváření volání REST používá aplikace Postman, ale můžete si vybrat libovolné vývojové prostředí API.
Volba mezi směry trasy a směrováním matice
Rozhraní API směrů trasy vrací pokyny včetně doby cesty a souřadnic pro trasu. Rozhraní API Matice tras umožňuje vypočítat dobu cesty a vzdálenosti pro sadu tras, které jsou definovány umístěním původu a cílem. Pro každý původ rozhraní API matice vypočítá náklady (dobu cesty a vzdálenost) směrování z tohoto původu do každého cíle. Všechna tato rozhraní API umožňují zadat parametry, jako je požadovaný čas odletu, časy příletů a typ vozidla, jako je auto nebo nákladní vůz. Všechny používají data o provozu v reálném čase nebo data prediktivního provozu, aby vrátily ty nejoptimálnější trasy.
Pokud máte v tomto scénáři následující, zvažte volání rozhraní API směrů trasy:
- Vyžádejte si nejkratší nebo nejrychlejší dojezdovou trasu mezi dvěma nebo více známými místy a získejte přesné časy příletů pro vaše nákladní vozidla.
- Požádejte o podrobné pokyny k trasám, včetně geometrie trasy, k vizualizaci tras na mapě.
- Na základě seznamu umístění zákazníků vypočítejte nejkratší možnou trasu k návštěvám jednotlivých umístění zákazníků a návratu do původního umístění. Tento scénář se běžně označuje jako problém obchodního prodejce na cestách. V jednom požadavku můžete předat až 150 trasových bodů (zastavení).
- Odesílání dávek dotazů do rozhraní API dávky trasy pomocí jediného volání rozhraní API
Zvažte volání rozhraní API pro směrování matice v případě, že máte tyto možnosti:
- Vypočítejte dobu cesty nebo vzdálenost mezi souborem původu a cíli. Máte například 12 řidičů a potřebujete najít nejbližšího dostupného řidiče, který vyzvedne dodávku jídla z restaurace.
- Seřadí potenciální trasy podle jejich skutečné vzdálenosti nebo času. Rozhraní API matice vrací pouze doby cesty a vzdálenosti pro každou kombinaci původu a cíle.
- Data clusteru na základě doby cesty nebo vzdálenosti. Vaše společnost má například 50 zaměstnanců a najde všechny zaměstnance, kteří od vás v kanceláři odchytá dobu jízdy do 20 minut.
Tady je porovnání s některými možnostmi rozhraní API Route Directions a Matrix:
| Azure Mapy API | Maximální počet dotazů v požadavku | Vyhněte se oblastem | Směrování nákladních vozů a elektrických vozidel | Optimalizace trasových bodů a cestovních prodejců | Podpůrné body |
|---|---|---|---|---|---|
| Získání trasy | 1 | ✔ | ✔ | ||
| Směry po trase | 1 | ✔ | ✔ | ✔ | ✔ |
| Dávkový směr trasy po trase | 700 | ✔ | ✔ | ||
| Post Route Matrix | 700 | ✔ |
Další informace o možnostech směrování elektrických vozidel najdete v našem kurzu o směrování elektrických vozidel pomocí Azure Notebooks s Pythonem.
Vyžádání historických dat a dat v reálném čase
Ve výchozím nastavení Route, že cestovní režim je auto a čas odletu je teď. Vrátí trasu na základě podmínek provozu v reálném čase, pokud požadavek na výpočet trasy neurčí jinak. Oprava omezení provozu závislých na čase, jako například "Levé otočení není povolené mezi 16:00 a 18:00", se zachycuje a bude je směrovací modul zvažovat. Pokud výslovně nepožádáte trasu, která ignoruje aktuální živý provoz, bude se uvažovat o uzavíracích cestách, jako jsou roadworks. Pokud chcete aktuální provoz ignorovat, nastavte traffic v požadavku rozhraní API na false .
Hodnota travelTimeInSeconds výpočtu trasy zahrnuje zpoždění způsobené provozem. Generuje se s využitím aktuálních a historických dat doby cesty, kdy je čas odletu nastavený na hodnotu . Pokud v budoucnu nastavíte čas odletu, vrátí rozhraní API předpovězené doby cesty na základě historických dat.
Pokud do požadavku zahrníte parametr computeTravelTimeFor=all, bude mít souhrnný prvek v odpovědi následující další pole, včetně historických podmínek provozu:
| Element | Popis |
|---|---|
| noTrafficTravelTimeInSeconds | Odhadovaná doba cesty se počítá tak, jako kdyby na trase nebyly žádné zpoždění kvůli dopravním podmínkám, například kvůli zahlcení. |
| historicTrafficTravelTimeInSeconds | Odhadovaná doba cesty vypočítaná pomocí historických dat o provozu závislých na čase |
| liveTrafficIncidentsTravelTimeInSeconds | Odhadovaná doba cesty vypočítaná s využitím dat o rychlosti v reálném čase |
Další části ukazují, jak provádět volání rozhraní API pro směrování pomocí probíraných parametrů.
Ukázkový dotaz
V prvním příkladu níže je čas odletu nastavený na budoucnost v době psaní.
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
Odpověď obsahuje souhrnný prvek, jako je ten níže. Protože čas odletu je nastavený na budoucnost, hodnota trafficDelayInSeconds je nula. Hodnota travelTimeInSeconds se počítá pomocí historických dat o provozu závislých na čase. Proto se v tomto případě hodnota travelTimeInSeconds rovná hodnotě 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
},
Ukázkový dotaz
V druhém příkladu níže máme žádost o směrování v reálném čase, kde je teď čas odletu. Není explicitně zadaný v adrese URL, protože se jedná o výchozí hodnotu.
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
Odpověď obsahuje souhrn, jak je znázorněno níže. Kvůli zahlcení je hodnota trafficDelaysInSeconds větší než nula. Je také větší než historická hodnotaTrafficTravelTimeInSeconds.
"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
},
Vyžádání trasy a podrobností o noze
Ve výchozím nastavení Route vrátí pole souřadnic. Odpověď bude obsahovat souřadnice, které tvoří cestu v seznamu s názvem points . Odpověď na trasu zahrnuje také vzdálenost od začátku trasy a odhadovaný uplynulý čas. Tyto hodnoty lze použít k výpočtu průměrné rychlosti celé trasy.
Následující obrázek znázorňuje points element .

Rozbalte point element a zobrazte seznam souřadnic pro cestu:

Rozhraní API směrů trasy podporují různé formáty instrukcí, které je možné použít zadáním parametru instructionsType. Pokud chcete naformátovat pokyny pro snadné zpracování počítače, použijte instructionsType=coded. Pokud chcete zobrazit pokyny jako text pro uživatele, použijte instructionsType=tagged. Instrukce mohou být také formátovány jako text, kde jsou některé prvky instrukcí označeny a instrukce se zobrazí se speciálním formátováním. Další informace najdete v seznamu podporovaných typů instrukcí.
Když se vyžádá instrukce, vrátí odpověď nový prvek s názvem guidance . Element obsahuje dvě informace: směry otočením a guidance souhrnné pokyny.

Element obsahuje pokyny pro cestu a obsahuje instructions instructionGroups souhrnné pokyny. Každý přehled instrukcí pokrývá část cesty, která může pokrýt více silnic. Rozhraní API vracejí podrobnosti o oddílech trasy. například rozsah souřadnic dopravního provozu nebo aktuální rychlost provozu.


Žádost o trasu pro komerční vozidlo
Rozhraní API Mapy směrování azure podporuje směrování komerčních vozidel pokrývající směrování komerčních nákladních vozů. Rozhraní API vezměte v úvahu určená omezení. Například výška a hmotnost vozidla a jestli vozidlo přepraví nebezpečný náklad. Pokud například vozidlo přepravuje vznětitelné, vyhne se směrovací modul určitým tunelům, které jsou v blízkosti pohotových oblastí.
Ukázkový dotaz
Následující ukázkový požadavek se dotazuje na trasu pro komerční nákladní vůz. Nákladní vůz přepraví nebezpečný odpad třídy 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
Rozhraní API pro trasy vrací směry, které pojmout rozměry nákladního vozu a nebezpečný odpad. Pokyny k trase můžete přečíst rozbalením guidance elementu .

Ukázkový dotaz
Změna třídy US Hazmat z výše uvedeného dotazu bude mít za následek jinou trasu, která tuto změnu přizpůsobí.
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
Níže uvedená odpověď je pro nákladní vůz s nebezpečným materiálem třídy 9, který je méně nebezpečný než nebezpečný materiál třídy 1. Když prvek rozbalíte, abyste si přečetli pokyny, všimnete si, že pokyny nejsou guidance stejné. Pro nákladní vůz, který přepravuje nebezpečný materiál třídy 1, najdete další pokyny na trasu.

Vyžádání informací o provozu na trase
S rozhraními API Mapy směr trasy Azure si vývojáři mohou vyžádat podrobnosti o jednotlivých typech oddílu tím, že do požadavku za sectionType includingou parametr . Můžete si například vyžádat informace o rychlosti pro každý segment dopravního provozu. Informace o různých podrobnostech, které si můžete vyžádat, najdete v seznamu hodnot pro klíč sectionType.
Ukázkový dotaz
Následující dotaz nastaví sectionType na traffic . Vyžádá si oddíly, které obsahují informace o provozu ze Seattlu do SanGu.
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
Odpověď obsahuje oddíly, které jsou vhodné pro provoz podél vhodných souřadnic.

Tuto možnost můžete použít k obarvení oddílů při vykreslování mapy, jak je vidět na následujícím obrázku:

Výpočet a optimalizace trasy s několika zastávkami
Azure Mapy v současné době poskytuje dvě formy optimalizace tras:
Optimalizace na základě požadovaného typu trasy beze změny pořadí trasových bodů. Podporované typy tras najdete tady.
Optimalizace obchodního manažera na cestách, která mění pořadí trasových bodů, aby získala nejlepší objednávku k návštěvám jednotlivých zastavení
Pro vícenásobné směrování je možné v jednom požadavku na trasu zadat až 150 trasových bodů. Počáteční a koncová umístění souřadnic mohou být stejná, jako by tomu bylo u zpáteční cesty. K výpočtu trasy ale musíte zadat alespoň jeden další bod trasy. Do dotazu je možné přidat waypointy mezi souřadnice počátku a cíle.
Pokud chcete optimalizovat nejlepší pořadí pro návštěvu daných trasových bodů, musíte zadat computeBestOrder=true. Tento scénář se také označuje jako problém optimalizace obchodního manažera na cestách.
Ukázkový dotaz
Následující dotaz vyžádá cestu pro šest trasových bodů s computeBestOrder parametrem nastaveným na false . Je to také výchozí hodnota computeBestOrder parametru .
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
Odpověď popisuje délku cesty 140 851 metrů a že cesta bude trvat 9 991 sekund.

Následující obrázek znázorňuje cestu, která je výsledkem tohoto dotazu. Tato cesta je jednou z možných tras. Není to optimální cesta na základě času nebo vzdálenosti.

Toto pořadí trasového bodu je: 0, 1, 2, 3, 4, 5 a 6.
Ukázkový dotaz
Následující dotaz vyžádá cestu pro stejných šest trasových bodů jako ve výše uvedeném příkladu. Tentokrát je parametr computeBestOrder nastavený na true (optimalizace prodejce na cestách).
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
V odpovědi je popsána délka cesty 91 814 metrů a že cesta bude trvat 7 797 sekund. Délka cesty i doba cesty jsou tady nižší, protože rozhraní API vrátilo optimalizovanou trasu.

Následující obrázek znázorňuje cestu, která je výsledkem tohoto dotazu.

Optimální trasa má následující pořadí trasových bodů: 0, 5, 1, 2, 4, 3 a 6.
Tip
Optimalizované informace o pořadí trasových bodů ze služby Směrování poskytují sadu indexů. Ty vylučují původní a cílové indexy. Tyto hodnoty je potřeba zvýšit o 1, aby se zohlednil původ. Pak na konec přidejte cíl, abyste si prohlédněte úplný seřazený seznam trasových bodů.
Výpočet a odchylka alternativních tras pomocí podpůrných bodů
Můžou se zobrazit situace, kdy chcete rekonstruovat trasu tak, aby u referenční trasy vypočítal nulovou nebo více alternativních tras. Můžete například chtít zákazníkům ukázat alternativní trasy, které projdou vaší maloobchodní prodejnou. V takovém případě potřebujete umístění zaujaté pomocí podpůrných bodů. Toto jsou kroky k předsudkům umístění:
- Vypočítejte trasu tak, jak je, a získejte cestu z odpovědi na trasu.
- Pomocí cesty trasy vyhledejte požadovaná umístění podél cesty trasy nebo blízko této trasy. Můžete například použít rozhraní API azure Mapy bod zájmu nebo dotazovat vlastní data v databázi.
- Pořadí umístění na základě vzdálenosti od začátku trasy
- Přidejte tato umístění jako podpůrné body do nové žádosti o trasu do rozhraní API pro směrování po trasách. Další informace o podpůrných bodech najdete v dokumentaci k rozhraní POST Route Directions API.
Při volání rozhraní API pro směrovánítras po trase můžete nastavit minimální dobu odchylky nebo omezení vzdálenosti spolu s podpůrnými body. Tyto parametry použijte, pokud chcete nabízet alternativní trasy, ale chcete také omezit dobu cesty. Při použití těchto omezení budou alternativní trasy sledovat referenční trasu od bodu původu pro danou dobu nebo vzdálenost. Jinými slovy, ostatní trasy se od referenční trasy odchýlují podle ostatních omezení.
Následující obrázek je příkladem vykreslení alternativních tras se zadanými limity odchylek pro čas a vzdálenost.

Použití směrovací služby ve webové aplikaci
sada Azure Maps Web SDK poskytuje modul služby. tento modul je pomocná knihovna usnadňující použití Azure Maps rozhraní REST api ve webových nebo Node.jsch aplikacích pomocí javascriptu nebo TypeScript. Modul služby lze použít k vykreslení vrácených tras na mapě. Modul automaticky určuje, které rozhraní API se má použít s požadavky GET a POST.
Další kroky
Pokud se chcete dozvědět víc, přečtěte si: