2012-04-18 96 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()); 

不知道如果你的回調必須有括號或不。這是我會嘗試的。

我也注意到地理定位需要一點時間來將近似縮小到更小的半徑。可能必須致電職位更新