如何返回地理位置响应对象以用作另一个函数的参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何返回地理位置响应对象以用作另一个函数的参数相关的知识,希望对你有一定的参考价值。
我对函数和html5 GeoLocation API提供了一些帮助。
我想使用用户当前位置(经度和纬度)生成网址。
我设法让代码工作以找到当前用户的位置并将position.coords
对象分配给名为coords的变量。
我想知道的是,我是否可以返回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 // Snippet由于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();
以上是关于如何返回地理位置响应对象以用作另一个函数的参数的主要内容,如果未能解决你的问题,请参考以下文章
如果参数是数字,我如何在雪花中获得一个 javascript 函数以返回一个值,或者如果参数不是数字,则返回另一个值?