|
|
|
|
|
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:


--> Kliknij aby obliczyć trasę <--