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: