2012-05-08 34 views
1

如何使用HTML5地理定位API將緯度和液位值保存到變量?將當前地理位置保存到變量

這是我的代碼,從w3schools複製。我如何將座標保存到像var x= position.coords.latitude;和var y= position.coords.longitude;這樣的變量,而不是隻顯示代碼正在執行的值?我是初學者使用javascript,所以我不知道如何做到這一點

<!DOCTYPE html> 
<html> 
<body> 
<p id="demo">Click the button to get your coordinates:</p> 
<button onclick="getLocation()">Try It</button> 
<script> 

var x=document.getElementById("demo"); 
window.onload = function getLocation() 
    { 
    if (navigator.geolocation) 
    { 
    navigator.geolocation.watchPosition(showPosition); 
    } 
    else{x.innerHTML="Geolocation is not supported by this browser.";} 
    } 
function showPosition(position) 
    { 
    x.innerHTML="Latitude: " + position.coords.latitude + 
    "<br />Longitude: " + position.coords.longitude; 
    } 
</script> 
</body> 
</html> 

而且在我的應用程序需要將這些變量的值每分鐘發送到服務器。使用表位或執行功能進行地理位置定位會更好嗎?

回答

1

將其添加到變量一樣簡單:

var lat = position.coords.latitude; 
var lon = position.coords.longitude; 

或作爲一個對象:

var coords = {lat: "", lon: ""}; 

然後使用該對象在代碼:

function showPosition(position) 
{ 
    coords.lat = position.coords.latitude; 
    coords.lon = position.coords.longitude; 

    x.innerHTML="Latitude: " + coords.lat + 
    "<br />Longitude: " + coords.lon; 
} 

至於發送變量到服務器這取決於你的服務器端技術是什麼,但你會發現很多谷歌的例子。

function sendToServer(){ 
    // here you can reuse the object to send to a server 
    console.log("lat: " + coords.lat); 
    console.log("lon: " + coords.lon); 
} 
+0

如果我做var lat = position.coords.latitude; var lon = position.coords.longitude; alert(lat); 警報只顯示「未定義」 – user1358625

+0

對不起,是的,當然我並沒有設定在位置傳入的溫控功能的對象的屬性。如果你想使用COORDS我的例子是唯一有用的對象在另一個函數,您的函數發送到服務器,你明白嗎?我已經編輯它。 – Neil

+0

那麼如何將值傳遞給即使當我提醒變量時也能正常工作的變量? – user1358625