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
Do skorzystania z tej funkcjonalności niezbędne jest zaimplementowanie zapisywanie widoków po stronie własnego serwera web.
Zapisuje link do widoku w notesie.
Należy zdefiniować parametry url'a do zapisania widoku:
var cfg = {
"features" : {
//włączamy opcję zapisania punktu na mapie
//po wyznaczeniu trasy
"saveRoute" : true,
//po zaznaczeniu punktów
"saveSelectedPois" : true,
//po wyszukaniu punktów
"saveSearchResults" : true
},
"paths" : {
"saveSearchCriteria" : {
"url" : "http://moj.host.pl/SaveSearchCriteriaToNotepad.php",
"paramNames" : {
"link" : "url",
"description" : "opis"
}
},
//przy zapisywaniu z poziomu mapy wykonywane jest też
//sprawdzenie, czy użytkownik jest zalogowany
//i ma aktywne konto
"loggedUserData" : {
"url" : "http://moj.host.pl/loggedUserData.php"
}
}
};
Aby działało pobieranie URL'a z poziomu mapy należy także zaimplementować funkcję do pobierania linka:
function getLinkCallback(linkCreationParameter) {
var thisHref = document.location.href;
thisHref += (-1 == thisHref.indexOf('?')) ? '?' : '&';
thisHref += 'lon=' + linkCreationParameter.lon + '&';
thisHref += 'lat=' + linkCreationParameter.lat + '&';
thisHref += 'zoom=' + linkCreationParameter.zoom + '&';
return thisHref;
}
cfg.callBacks = cfg.callBacks || {};
cfg.callBacks.getLink = getLinkCallback;
Zdefiniujmy funkcję, która obsłuży status wykonanej akcji:
function saveViewFnc(retStatus, response) {
if (!retStatus.failed && response.result) {
alert("Widok pomyślnie zapisany");
} else {
alert("Nie udało się zapisać widoku");
}
}
Wywołajmy zatem funkcję zapisującą widok w notatniku:
var viewData = {
"link" : "http://docelu.pl",
"description" : "Punkt zapisany w notatniku"
};
DoCelu.saveSearchCriteria(viewData, saveViewFnc);
Z powyższą konfiguracją takie wywołanie wygeneruje url:
http://moj.host.pl/SaveSearchCriteriaToNotepad.php?callback=jsonp1241510122527& url=http%3A%2F%2Fdocelu.pl&opis=Punkt+zapisany+w+notatniku
Oczekiwana odpowiedź od serwera powinna mieć postać:
jsonp1241510122527({
//czy operacja się powiodła
"result":1,
//zwrócona wartość
"value":{
"info":"Operacja zakończona powodzeniem"
},
//komunikaty błędów
"error":[]
});
jsonp1241510122527 to nazwa funkcji javascriptowej przekazana w URL'u jako parametr callBack. Funkcja ta przyjmuje jeden parametr w notacji JSON zgodny z formatem actionResponse.
Przykładowy kod i efekt jego zastosowania:
<div id="map" style="width:800px; height:600px; "></div>
<script type="text/javascript">
//<![CDATA[
jQuery(document).ready(function() {
var cfg = {
"features" : {
//włączamy opcję zapisania punktu na mapie
//po wyznaczeniu trasy
"saveRoute" : true,
//po zaznaczeniu punktów
"saveSelectedPois" : true,
//po wyszukaniu punktów
"saveSearchResults" : true
},
"paths" : {
"saveSearchCriteria" : {
"url" : "/actionResponse.mock.json",
"paramNames" : {
"link" : "url",
"description" : "opis"
}
},
//przy zapisywaniu z poziomu mapy wykonywane jest też
//sprawdzenie, czy użytkownik jest zalogowany
//i ma aktywne konto
"loggedUserData" : {
"url" : "/loggedUserData.mock.json"
}
}
};
function getLinkCallback(linkCreationParameter) {
var thisHref = document.location.href;
thisHref += (-1 == thisHref.indexOf('?')) ? '?' : '&';
thisHref += 'lon=' + linkCreationParameter.lon + '&';
thisHref += 'lat=' + linkCreationParameter.lat + '&';
thisHref += 'zoom=' + linkCreationParameter.zoom + '&';
return thisHref;
}
cfg.callBacks = cfg.callBacks || {};
cfg.callBacks.getLink = getLinkCallback;
function saveViewFnc(retStatus, response) {
if (!retStatus.failed && response.result) {
alert("Widok pomyślnie zapisany");
} else {
alert("Nie udało się zapisać widoku");
}
}
DoCelu.loadMap(document.getElementById('map'), cfg);
jQuery('#test').mousedown(function() {
var viewData = {
"link" : "http://docelu.pl",
"description" : "Punkt zapisany w notatniku"
};
DoCelu.saveSearchCriteria(viewData, saveViewFnc);
});
});
//]]>
</script>
Wypróbujmy zatem działanie w praktyce
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!