如何 return 地理定位响应对象用作另一个函数的参数

How to return geolocation response object to use as a parameter for another function

我在函数和 HTML5 地理定位 API 方面得到了一些帮助。

我想使用用户当前位置(经度和纬度)生成 ​​url。

我已经设法让代码找到当前用户的位置 并将 position.coords 对象分配给名为 coords 的变量。

我想知道的是我是否可以 return locationSuccess 函数中的对象然后将对象作为参数传递给 generateURL 函数,并检索纬度和经度以控制台记录完成 url.

我可能完全错了,但是一些帮助会很好。 TIA.

// app.js

function getUserLocation() {

 function locationSuccess(position) {

  console.log("success");

  var coords = position.coords;

 }

 function locationError() {

  console.log("error")

 }


navigator.geolocation.getCurrentPosition(locationSuccess, locationError);

}

function generateURL() {


}

function app() {

 getUserLocation();

}

window.onload = app();

返回对象有点麻烦,因为getCurrentPosition函数是异步的。

您可以将 coords 对象作为参数传递给 generateURL 函数,并在 locationSuccess 函数内部调用它。

function getUserLocation() {

  function locationSuccess(position) {
    console.log("success");
    var coords = position.coords;
    generateURL(coords);
  }

  function locationError() {
    console.log("error")
  }
  navigator.geolocation.getCurrentPosition(locationSuccess, locationError);
}

function generateURL(coords) {
  var URL = 'http://example.com/?lat=' + coords.latitude + '&long=' + coords.longitude;
  console.log(URL);
}

function app() {
  getUserLocation();
}

window.onload = app();

JSFiddle // 由于 iframe 安全问题,代码段无法正常工作

将变量 position 作为参数传递给 generateURL() 函数。请参阅下面的修改和注释。

// app.js

function getUserLocation() {

 function locationSuccess(position) {
            console.log("success");

            var coords = position.coords;

            // Pass the object as a parameter to the generateURL() function.
            generateURL(position);
 }

 function locationError() {
     console.log("error")
 }

        navigator.geolocation.getCurrentPosition(locationSuccess, locationError);

}

// Added: variable position as a parameter to the function
function generateURL(position) {
    console.log(position);

}

function app() {
    getUserLocation();
}

window.onload = app();