Javascript Navigator.geolocation

时间:2016-07-18 00:03:18

标签: javascript function variables geolocation navigator

我正在尝试将position.coords.latitude和longitude作为变量返回到代码中的其他位置。如何让函数返回可用变量?

if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(function(position) {
     var lat = position.coords.latitude; 
     var lon = position.coords.longitude;
     var values = [lat, lon];

     return values;

  });
}   

console.log(values);

1 个答案:

答案 0 :(得分:0)

您应该使用回调方法。

读一读:

https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/getCurrentPosition

var options = {
  enableHighAccuracy: true,
  timeout: 5000,
  maximumAge: 0
};

function success(pos) { // success callback
  var crd = pos.coords;

  console.log('Your current position is:');
  console.log('Latitude : ' + crd.latitude);
  console.log('Longitude: ' + crd.longitude);
  console.log('More or less ' + crd.accuracy + ' meters.');

  var values = [crd.latitude, crd.longitude];
  doSomethingWithCoordinateValues(values);
};

function doSomethingWithCoordinateValues(coords) {
  // do something with 'coords'
}

function error(err) { // error callback
  console.warn('ERROR(' + err.code + '): ' + err.message);
};

navigator.geolocation.getCurrentPosition(success, error, options);

您还可以阅读此answer说明:

  

如果内部函数调用是异步的,那么所有的函数都包含'此调用也必须是异步的才能返回'回应。