我正在“尝试”使用JavaScript的地理位置功能,但是我认为JavaScript的工作方式存在问题。我发现了许多有关如何使用地理定位功能的示例,基本上,所有示例如下所示:
navigator.geolocation.getCurrentPosition(function(position){alert("Your Coordinates:\nLatitude: " + position.coords.latitude + "\nLongitude: " + position.coords.longitude);});
上面的代码有效,但我正在尝试执行以下操作:
function geoMe(){
var position = navigator.geolocation.getCurrentPosition();
var geoLocationDiv = document.getElementById('geoLocationDiv');
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
geoLocationDiv.innerHTML = latitude + "," + longitude;
}
您可能会猜到,它不起作用。我从来都不擅长像示例一样解释所有被“卡住”的代码,所以我很困惑。
在查看示例代码时,看起来好像有一个名为“ getCurrentPosition”的函数。现在,这是我迷路的地方。似乎有一个函数作为参数传递给getCurrentPosition,该函数具有[作为参数]一个称为“位置”的参数。 “位置”参数从何而来???我已经看到一个函数(没有实际的函数名)被用作参数的地方,但这确实让我感到困惑。通常,我会执行以下操作:
function functionName(parameter1, parameter2, parameterN){
function body
}
我知道执行这样的事情应该是高级的,但是我是一个简单的人,我喜欢简单的代码,并且我喜欢函数具有名称。
因此,在那里有人可以帮助我以我希望的方式工作此GeoLocation东西吗?并且,也许一路上解释这种奇怪的JavaScript函数方法?
谢谢,祝你有美好的一天。 :-)
最佳答案
这个:
function geoMe () {
navigator.geolocation.getCurrentPosition(function ( pos ) {
document.getElementById('geoLocationDiv').innerHTML =
pos.coords.latitude + "," + pos.coords.longitude;
});
}
现场演示:http://jsfiddle.net/K6sKe/1/
您必须将函数对象传递给
getCurrentPosition
方法。该函数充当回调函数,并在用户授予访问其位置的权限时被调用。在我们的例子中,我们的回调函数是一个匿名函数表达式。 getCurrentPosition
方法旨在调用将Position对象传递给它的回调。因此,我们的函数表达式定义了一个表示Position对象的形式参数(pos
)。在回调中,我们可以访问该Position对象。关于javascript - 需要JavaScript地理位置和常规JavaScript协助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12755192/