0
function onPositionUpdate(position) {
    var lat = position.coords.latitude;
    var lng = position.coords.longitude;

    var markerPoint = new google.maps.LatLng(lat, lng);

    var marker = new google.maps.Marker({
        position: markerPoint,
        map: map,
        title: 'Your Location'
    });
}

function button_clicked() {
    if (navigator.geolocation)
        navigator.geolocation.getCurrentPosition(onPositionUpdate);
    else
        alert("navigator.geolocation is not available");
}

此代码运行正确并显示用户位置。当我在家里尝试这个时,它会显示正确的地址,但是当我在另一个位置尝试这个时,这个代码不会显示正确的地址。为什么?我不知道这段代码是如何运行的(这段代码是否定义了 IP 或其他信息)

4

2 回答 2

2

您可以检查其他程序是否可以找到您。如果不是,则可能不是您的代码不正确:

http://html5demos.com/geo

某些安全措施可能会导致客户端不会自动共享位置信息。

于 2012-04-18T18:00:48.370 回答
0

你有没有尝试过 :

navigator.geolocation.getCurrentPosition(onPositionUpdate() );

不确定您的回调是否必须有括号。这是我会尝试的。

我还注意到地理定位需要一点时间才能将近似值缩小到更小的半径。可能必须调用position update

于 2012-06-24T23:08:17.640 回答