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