使用AngularJS获取地理位置坐标

use*_*790 6 geolocation angularjs

我正在尝试使用AngularJS和Geolocation来获取我的位置的经度和纬度.这是控制器中的功能,我在其中分配纬度和经度的值并将它们打印到浏览器控制台.调用nearme()函数,

  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);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,第一次,坐标打印为0,0.然后,打印出正确的坐标值.为什么第一次打印0,0作为坐标?

Gle*_*kov 5

一切都很简单:)你的console.log位于collback border之外,

function (position) {
  mysrclat = position.coords.latitude; 
  mysrclong = position.coords.longitude;
  console.log(mysrclat);
  console.log(mysrclong);
});
Run Code Online (Sandbox Code Playgroud)

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

  • 您应该将它们绑定到作用域或将其作为服务实现,它会更好.你可以使用https://github.com/arunisrael/angularjs-geolocation,我想它非常适合你的任务或审查服务的代码.它非常简单,可以用于你的海豚. (2认同)