将当前地理位置保存到变量

时间:2012-05-08 07:53:05

标签: html5 geolocation latitude-longitude

如何使用HTML5地理位置API将lat和lng值保存到变量?

这是我的代码,是从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>

在我的应用程序中,我需要每分钟将这些变量的值发送到服务器。使用watchposition进行地理定位或执行每分钟都能获得当前位置的函数会更好吗?

1 个答案:

答案 0 :(得分: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;  
}

至于将变量发送到服务器,这取决于您的服务器端技术,但您会在google上找到许多示例。

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