谷歌地图api v3,定义用户当前位置

时间:2012-04-18 17:21:48

标签: javascript google-maps-api-3 geolocation

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还是其他信息定义的)

2 个答案:

答案 0 :(得分:2)

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

http://html5demos.com/geo

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

答案 1 :(得分:0)

你试过了吗?

navigator.geolocation.getCurrentPosition(onPositionUpdate() );

不确定您的回调是否必须包含括号。这是我会尝试的东西。

我还注意到地理定位需要一些时间来缩小近似半径。可能必须致电职位更新