2014-11-30 15 views
5

Sto cercando di ottenere la latitudine e la longitudine della mia posizione usando AngularJS e Geolocation. Questa è la funzione nel controller in cui sto assegnando i valori della latitudine e della longitudine e li stampo sulla console del browser. La funzione NearMe() viene chiamato,Ottenere coordinate di geolocalizzazione usando AngularJS

var mysrclat= 0; var mysrclong = 0; 
    $scope.nearme = function($scope) { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(function (position) { 

       mysrclat = position.coords.latitude; 
       mysrclong = position.coords.longitude; 
     }); 
     console.log(mysrclat); 
     console.log(mysrclong); 
    } 
} 

Il problema è che, per la prima volta, le coordinate vengono stampati come 0, 0. Poi, dopo che la stampa i valori corretti delle coordinate. Perché stampa 0, 0 come le coordinate la prima volta?

risposta

5

Tutto è facile :) tua console.log si trova oltre i confini collback,

function (position) { 
    mysrclat = position.coords.latitude; 
    mysrclong = position.coords.longitude; 
    console.log(mysrclat); 
    console.log(mysrclong); 
}); 

http://jsfiddle.net/glebv/axrw7g90/18/

+0

Thanks .. Cosa devo fare se ho bisogno di utilizzare i valori di mysrclat e mysrclong al di là del confini di callback? come nel mio caso, ho bisogno di usare quei valori in un'altra funzione..ho provato a assegnarlo alla variabile $ scope e usarlo nell'altra funzione non funziona bene..anche idee? – user2297790

+2

Dovresti associarli all'ambito o implementarlo come servizio, è molto meglio. È possibile utilizzare https://github.com/arunisrael/angularjs-geolocation, credo sia molto adatto per il proprio compito o codice di revisione del servizio. È molto semplice e usalo per le tue focene. –

Problemi correlati