Ten dokument nie wyjaśnia wszystkich wątpliwości? Szczegółowa dokumentacja techniczna API DoCelu.pl
Sprawdź toczące się dyskusje na Forum API DoCelu.pl
Ten dokument nie wyjaśnia wszystkich wątpliwości? Szczegółowa dokumentacja techniczna API DoCelu.pl
Sprawdź toczące się dyskusje na Forum API DoCelu.pl
Funkcja wyznacza trasę o określonych parametrach.
Przykład wywołania wyznaczania trasy:
var from = {
"lon" : 18.630409240722656,
"lat" : 54.334943271492
};
var mid = {
"lon" : 19.97314453125,
"lat" : 53.76007817077558
};
var to = {
"lon" : 21.02611541748047,
"lat" : 52.24472480162969
};
var routePoints = [];
routePoints[DoCelu.START_POINT_DEF] = from;
routePoints[0] = mid;
routePoints[DoCelu.STOP_POINT_DEF] = to;
var params = {
routeType : DoCelu.ROUTE_TYPE_FAST,
roadTypes : [DoCelu.ROAD_TYPE_ALL]
};
DoCelu.traceRoute(routePoints, params);
W przypadku wyznaczania trasy będziemy zazwyczaj chcieli wyświetlić wskazówki jazdy. W tym celu należy przechwycić wynik wyznaczania trasy. Zdefiniujemy zatem dwuparametrową funkcję traceRouteCallback o parametrach:
Jeśli funkcja zwróci wartość false, to wynik nie zostanie wyświetlony na mapie, ani zapisany jako ostatni wynik wyszukiwania.
Przykład definicji funkcji:
function traceRouteCallback(ret, response) {
//developersko przy implementacji funkcjonalności wywołamy sobie
//jQuery.log(jQuery.dump(response));
//żeby na dole strony wyświetlić całą dostępną strukturę odpowiedzi
if (ret.failed) {
//wystąpił błąd
} else {
var $routeEventsDiv = jQuery('#routeEvents');
var html = 'Trasa z ' + response.startName + '
';
html += 'Trasa do ' + response.stopName + '
';
html += 'Odległość ' + response.distance.text + '
';
html += 'Czas przejazdu ' + response.time.text + '
';
html += 'Średnia prędkość ' + response.averageSpeed + '
';
html += 'Wskazówki jazdy:';
$routeEventsDiv.html(html);
var $list = jQuery(document.createElement('ul'));
for (var i in response.events) {
var text = response.events[i].text + " (" + response.events[i].distance.text + ", " + response.events[i].time.text + ")";
jQuery(document.createElement('li')).html(text).appendTo($list);
}
$list.appendTo($routeEventsDiv);
}
//zwracamy null - wynik pojawi się na mapie
return;
}
Informację, która funkcja ma zostać wywołana należy podać w obiekcie konfiguracyjnym mapy:
var config = {
"callBacks" : {
"traceRoute" : traceRouteCallback
}
};
Obiekt ten można przekazać na etapie ładowania mapy (funkcja loadMap) lub wywołując funkcję loadConfig. W przykładzie zrobimy to na etapie ładowania mapy i od razu uruchomimy obliczanie odległości, aby sprawdzić działanie.
<div id="map" style="width:800px; height:600px; "></div>
<script type="text/javascript">
//<![CDATA[
jQuery(document).ready(function() {
function traceRouteCallback(ret, response) {
if (ret.failed) {
//wystąpił błąd
} else {
var $routeEventsDiv = jQuery('#routeEvents');
var html = 'Trasa z ' + response.startName + '
';
html += 'Trasa do ' + response.stopName + '
';
html += 'Odległość ' + response.distance.text + '
';
html += 'Czas przejazdu ' + response.time.text + '
';
html += 'Średnia prędkość ' + response.averageSpeed + '
';
html += 'Wskazówki jazdy:';
$routeEventsDiv.html(html);
var $list = jQuery(document.createElement('ul'));
for (var i in response.events) {
var text = response.events[i].text + " (" + response.events[i].distance.text + ", " + response.events[i].time.text + ")";
jQuery(document.createElement('li')).html(text).appendTo($list);
}
$list.appendTo($routeEventsDiv);
}
//zwracamy null - wynik pojawi się na mapie
return;
}
var config = {
"callBacks" : {
"traceRoute" : traceRouteCallback
}
};
DoCelu.loadMap(document.getElementById('map'), config);
jQuery('#test').mousedown(function() {
var from = {
"lon" : 18.630409240722656,
"lat" : 54.334943271492
};
var mid = {
"lon" : 19.97314453125,
"lat" : 53.76007817077558
};
var to = {
"lon" : 21.02611541748047,
"lat" : 52.24472480162969
};
var routePoints = [];
routePoints[DoCelu.START_POINT_DEF] = from;
routePoints[0] = mid;
routePoints[DoCelu.STOP_POINT_DEF] = to;
var params = {
routeType : DoCelu.ROUTE_TYPE_FAST,
roadTypes : [DoCelu.ROAD_TYPE_ALL]
};
DoCelu.traceRoute(routePoints, params);
});
});
//]]>
</script>
Ten dokument nie wyjaśnia wszystkich wątpliwości? Szczegółowa dokumentacja techniczna API DoCelu.pl
Sprawdź toczące się dyskusje na Forum API DoCelu.pl
Ten materiał nie ma jeszcze żadnej opinii. Twoja może być pierwsza!