2014-11-30 9 views
5

kullanarak koordine eder. Bu, enlem ve boylam değerlerini atadığım ve bunları tarayıcı konsoluna yazdırdığım denetleyicideki işlevdir. nearme() işlevAlma Coğrafi Konum ben angularjs ve Geolocation kullanarak pozisyon enlem ve boylamını almaya çalışıyorum 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); 
    } 
} 

sorun, ilk kez koordinatları bu koordinat değerleri doğru baskılar sonra, daha sonra, 0 ile 0 değerini baskı, yani, olarak adlandırılır. Neden ilk defa 0, 0 koordinatlarını yazdırıyor?

cevap

5

Her şey kolaydır :) senin console.log collback sınırları dışına bulunduğu,

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

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

+0

Teşekkür .. i ötesinde mysrclat ve mysrclong değerlerini kullanmak gerekiyorsa Ne yapmalıyım geri arama sınırları? Benim durumumda olduğu gibi, bu değerleri başka bir işlevde kullanmam gerekiyor ... $ kapsam değişkenine atamayı denedim ve diğer işlevde kullanmak da işe yaramıyor .. bir fikir mi? – user2297790

+2

Onları bir kapsam olarak veya bir hizmet olarak uygulamak için bağlama, çok daha iyi. Https://github.com/arunisrael/angularjs-geolocation 'ı kullanabilirsiniz, sanırım göreviniz için çok uygun ya da hizmetin kodunu gözden geçirin. Bu çok basit ve sizin porpoises için kullanın. –