使用 AngularJS 获取地理位置坐标

Posted

技术标签:

【中文标题】使用 AngularJS 获取地理位置坐标【英文标题】:Getting Geolocation coordinates using AngularJS 【发布时间】:2014-11-30 14:38:40 【问题描述】:

我正在尝试使用 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);
    

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

【问题讨论】:

【参考方案1】:

一切都很简单 :) 您的 console.log 位于回退边界之外,

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

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

【讨论】:

谢谢.. 如果我需要在回调边界之外使用 mysrclat 和 mysrclong 的值,我该怎么办?就像我的情况一样,我需要在另一个函数中使用这些值..我已经尝试将它分配给 $scope 变量并在另一个函数中使用它也不起作用..有什么想法吗? 您应该将它们绑定到范围或将其实现为服务,这样会好得多。您可以使用github.com/arunisrael/angularjs-geolocation,我想它非常适合您的任务或服务的审查代码。它非常简单,可以用于您的海豚。

以上是关于使用 AngularJS 获取地理位置坐标的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS 将地理坐标从 Lambert 2 转换为 WSG84

AngularJS,传单。如何从第三方服务动态获取纬度和经度坐标?

AngularJS根据另一个元素设置元素固定位置

获取地理位置坐标的来源

地理位置获取旧坐标

如何从angularJS中的谷歌地图标记获取动态位置