2012-04-18 65 views
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还是其他信息定义的)谷歌地图api v3,定义用户当前位置

+0

地址有多远?是否有可能在通话时没有充分调整好GPS?也许它只能在半英里之内确定你的位置。另外,如果你做的是桌面,它的行为不一样。我总是在加利福尼亚州或其他地方找到一个地方,因为它没有GPS,Wi-Fi连接等来确定我的位置。 – CWSpear 2012-04-18 17:33:54

回答

2

您可以检查另一个程序是否可以找到您。如果不是,它可能是它不是你的代码是不正确的:

http://html5demos.com/geo

一些安全措施,可能导致客户端将不会自动分享位置信息。

0

你试过:

navigator.geolocation.getCurrentPosition(onPositionUpdate()); 

不知道如果你的回调必须有括号或不。这是我会尝试的。

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