我正在“尝试”使用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/

10-11 22:08
查看更多