| Wyznaczanie trasy | 
EMAPI.Router - klasa odpowiedzialna za wyznaczanie tras i wizualizowanie ich na mapie.
Funkcja addWaypoint dodaje nowy punkt trasy do listy wayPoints (tablica obiektów). Dane przekazywane do podstawianej w trzecim parametrze funkcji (callback)) zawierają:
var router = new EMAPI.Router(); //tworzenie nowej instancji klasy EMAPI.Router router.addWaypoint(lonLat, pointType, callback);
gdzie:
| lonLat | {Array(EMAPI.LonLat)} Obiekt typu EMAPI.LonLat reprezentujący współrzędne geograficzne punktu trasy. | 
| pointType | {Integer} Typ punktu trasy: 0 = punkt startowy, 1 = punkt przelotowy, 2 = punkt końcowy. Punkt przelotowy dodawany jest zawsze tuż przed końcowym. | 
| callback | {Function} Funkcja obsługi danych geograficznych wskazanego punktu. | 
router.addWaypoint(new EMAPI.LonLat(19.405975341022, 51.85613979201), 0, null);  //dodanie punktu startowego
router.addWaypoint(new EMAPI.LonLat(19.952545165219, 52.117469879906), 1, null); //dodanie punktu
                                                                                 //przelotowego
router.addWaypoint(new EMAPI.LonLat(20.673522948394, 52.418336289777), 2, null); //dodanie punktu końcowego
Funkcja calculateRoute oblicza trasę pomiędzy punktami umieszczonymi w liście wayPoints po podaniu wybranego pojazdu, kierowcy i parametrów wyznaczania trasy. Dane przekazywane do podstawianej w ostatnim parametrze funkcji zawierają:
router.calculateRoute(vehicle, driver, roadType, routeOptions, callback);
gdzie:
| vehicle | {EMAPI.Router.VehicleParams} Obiekt typu EMAPI.Router.VehicleParams reprezentujący ustawienia związane z pojazdem, który ma być użyty do wyznaczenia trasy. | 
| driver | {EMAPI.Router.DriverParams} Obiekt typu EMAPI.Router.DriverParams reprezentujący ustawienia związane z pojazdem, który ma być użyty do wyznaczenia trasy. | 
| roadType | {Integer} Typ obliczania trasy: 0 = najkrótsza, 1 = najszybsza, 2 = najtańsza. | 
| routeOptions | {Object} Obiekt zawierający opcje wyznaczania trasy w postaci pól logicznych: useDifficulties = true wymusza wykorzystanie utrudnień w ruchu, useFerry = true włącza wykorzystanie promów, useGroundRoad = true włącza wykorzystanie dróg gruntowych. | 
| callback | {Function} Funkcja obsługi rezultatów wyznaczonej trasy. | 
Przykład zastosowania:
var router = new EMAPI.Router(  //tworzenie nowej instancji klasy EMAPI.Router
  {
    map: mapa, //mapa, na której mają być wizualizawane trasy
    reportPointsHandlerPointsName: 'punkty_id' //element DIV, w którym zostanie osadzona lista punktów trasy 
  }
);
router.removeWaypoints(); //usunięcie punktów trasy z tablicy obiektów
router.addWaypoint(new EMAPI.LonLat(19.405975341022, 51.85613979201), 0, null);  //dodanie punktu startowego
router.addWaypoint(new EMAPI.LonLat(19.952545165219, 52.117469879906), 1, null); //dodanie punktu
                                                                                 //przelotowego
router.addWaypoint(new EMAPI.LonLat(20.673522948394, 52.418336289777), 2, null); //dodanie punktu końcowego
router.calculateRoute(
  router.vehicles.items[0], //użycie domyślnego pojazdu
  router.drivers.items[0], //użycie domyślnego kierowcy 
  0, //obliczanie trasy najkrótszej
  {useGroundRoad:true, useFerry:true, useTollRoad:true, useVignetteRoads:true, useDifficulties:true}, // trasa zostanie obliczona z wykorzystaniem dróg gruntowych, promów, utrudnień, dróg płatnych
  function(pos) //funkcja obsługi rezultatów wyznaczonej trasy
    {
    alert("Trasa została obliczona"); //wyświtlenie okna z informacją o poprawnym wyliczeniu trasy
    }
);
Lista dodanych punktów trasy: