Autor | Zpráva | ||
---|---|---|---|
morek Profil * |
#1 · Zasláno: 7. 4. 2011, 19:17:47
Zdravim,
mam jeden zadrhel se kterym si nevim rady (google a vysvetleni globalni vs. lokalni prom. v JS jsem zkousel). Na zacatku skriptu jsem si nadefinoval dve glob. promenne> var myLatitude; var myLongtitude; Pak mam nekolik fci z nich ta treti by mela aktualizovat hodnoty dvou globalnich promennych, tak aby jejich hodnoty byli pristupne v jakekolliv fci ve skriptu> Problem je s tim, ze to nefunguje, netusi nekdo v cem by mohl byt problem prosim? Diky za kazdou radu. // GPS COORDS // function onLoad(){ document.addEventListener("deviceready", onDeviceReady, false); } // PhoneGap is ready // function onDeviceReady(){ navigator.geolocation.getCurrentPosition(onSuccess, onError); } // onSuccess Geolocation // function onSuccess(position){ //var myPositionArray = new Array(2); var myLatitude = position.coords.latitude; var myLongtitude = position.coords.longitude; } |
||
__construct Profil |
#2 · Zasláno: 7. 4. 2011, 20:20:55
morek:
„google a vysvetleni globalni vs. lokalni prom. v JS jsem zkousel“ Asi si zle študoval: /** * Globáne nadefinované premenné */ var myLatitude, myLongtitude; function onSuccess(position) { // K prístupu ku globálnej premennej sa var nepoužíva myLatitude = position.coords.latitude, myLongtitude = position.coords.longitude; } |
||
morek Profil * |
#3 · Zasláno: 7. 4. 2011, 23:33:46
To jsem zapomnel napsat, ze toto jsem zkousel take.
|
||
__construct Profil |
#4 · Zasláno: 8. 4. 2011, 08:42:59 · Upravil/a: __construct
morek:
„To jsem zapomnel napsat, ze toto jsem zkousel take.“ Potom bude chyba niekde inde - dodaj sem väčšiu časť kódu, v lepšom prípade živú ukážku. Píš s diakritikou - lepšie sa to číta. |
||
morek Profil * |
#5 · Zasláno: 8. 4. 2011, 12:49:57
Ukázka je tady:
<!DOCTYPE html> <html> <head> <meta charset=utf-8 /> <!-- APP CODE --> <script type="text/javascript" charset="utf-8"> var myLatitude; var myLongtitude; // GPS COORDS // function onLoad(){ document.addEventListener("deviceready", onDeviceReady, false); } // PhoneGap is ready // function onDeviceReady(){ navigator.geolocation.getCurrentPosition(onSuccess, onError); } // onSuccess Geolocation // function onSuccess(position){ //var myPositionArray = new Array(2); myLatitude = position.coords.latitude; myLongtitude = position.coords.longitude; } // onError Callback receives a PositionError object // function onError(error){ alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n'); } //Get DISTANCE function getDistance(lat1, lon1, lat2, lon2){ var lat1 = Geo.parseDMS(lat1); var lon1 = Geo.parseDMS(lon1); var lat2 = Geo.parseDMS(lat2); var lon2 = Geo.parseDMS(lon2); var p1 = new LatLon(lat1, lon1); var p2 = new LatLon(lat2, lon2); return (p1.distanceTo(p2)); } //GET VARIABLE FROM URL function getUrlVars(){ var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for (var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } //alert(vars); return vars; } $("#productSearchpage").live("pageshow", function(event, ui){ onLoad(); var searchQuery = getUrlVars(); //alert(searchQuery['query']); jQuery.getScript("http://www.mojeadresa.cz/", function(){ //Return to search page if array is empty if (mapdata.length==0) { alert("Nic nenalezeno"); window.location.href = "index.html"; } //Writeout products if any else { $.each(mapdata, function(index, value){ //alert(index + ': ' + value.jmeno+value.lat+value.lng); //document.write(value.jmeno); try { //alert("SUCCESS"); currentShopLatitude = value.lat; currentShopLongtitude = value.lng; var distance = getDistance(myLatitude, myLongtitude, shopLatitude, shopLongtitude); alert(distance); $("ul").append("<li><img width=\"80px\" src=\"http://adresa.cz/" + value.img + "\"/><h3><a href=\"" + value.jmeno + "\">" + value.jmeno + "</a></h3><p>" + value.akcnicena + " KÄŤ</p><p>" + value.pjmeno + "</p><div class=\"shop-distance\">"+distance+"</div><div id=\"lat\">" + value.lat + "</div><div id=\"lng\">" + value.lng + "</div></li>"); } catch (err) { alert("ERROR BY WRITEOUT"); } }); } $('ul').listview('refresh'); }); }); </script> </head> <body> <div data-role="page" id="productSearchpage"> <div data-role="header"> <h1>Nalezené produkty</h1> </div> <!-- /header --> <div class="result"> </div> <div data-role="content"> <ul data-role="listview"> </ul> </div> <!-- /content --> <div data-role="footer"> <h4>Page Footer</h4> </div> <!-- /header --> </div> <!-- /page --> </body> </html> |
||
__construct Profil |
#6 · Zasláno: 8. 4. 2011, 13:07:46
morek:
Predpokladám, že chyba bude v tom, že používaš jQuery framework, ale nenačítaš si ho. Skús si pred 7. riadok doplniť: <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> |
||
morek Profil * |
#7 · Zasláno: 8. 4. 2011, 13:43:22
Necitam ho, stejne jako vsechny dalsi skripty, jen jsem to tam neuvedl aby nebyl kod zbytecne delsi.
Jde opravdu jen o radky 31 .. 33 myLatitude = position.coords.latitude; myLongtitude = position.coords.longitude; |
||
morek Profil * |
#8 · Zasláno: 10. 4. 2011, 21:02:52
Netusi tedy nekdo prosim v cem by mohl byt problem? Uz jsem vyzkousel vse mozne ale stale nic co by pomohlo.
|
||
_es Profil |
#9 · Zasláno: 10. 4. 2011, 21:10:45
morek:
„Netusi tedy nekdo prosim v cem by mohl byt problem?“ Skúsil si sa pozrieť, čo je vlastne v premennej position ?
„Problem je s tim, ze to nefunguje,“ je trochu neúplný popis problému. Myslíš tým, že to nefunguje, to, že to nefunguje len v niektorých prehliadačoch, čo je dosť pochopiteľné, pretože to podporujú len niektoré prehliadače? Alebo tým myslíš niečo iné? |
||
morek Profil * |
#10 · Zasláno: 11. 4. 2011, 15:07:14
Jde o to, ze hodnotu z radku 31 a 32 nemohu dostat do globalni promenne na radku 1 a 2
tj. var myLatitude; var myLongtitude; To je jediny problem a na radcich 31 a 32 to hodnotu vraci spravnou. |
||
_es Profil |
#11 · Zasláno: 11. 4. 2011, 15:46:19 · Upravil/a: _es
morek:
V takom kóde sa ťažko orientovať. Nemáš popletené, kedy sú do tých premenných zapísané hodnoty? Neskúšaš ich čítať skôr, ako je zavolaná tá funkcia? Vtedy je ich hodnota undefined .
|
||
Časová prodleva: 13 let
|
0