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

Posted

技术标签:

【中文标题】将当前地理位置保存到变量【英文标题】:Save current geolocation to variable 【发布时间】:2012-05-08 07:53:04 【问题描述】:

如何使用 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);
    
  elsex.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】:

将它们添加到变量中很简单:

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

OR 作为一个对象:

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);

【讨论】:

如果我这样做 var lat = position.coords.latitude; var lon = position.coords.longitude;警报(纬度);警报只显示“未定义” 对不起,是的,当然我没有在传入位置的函数中设置对象属性。我的示例仅在您想在另一个函数中使用 coords 对象时有用,例如您的函数发送到服务器,你明白吗?我已经编辑过了。 那么我怎样才能将值传递给即使我警告变量也能工作的变量? 看看我的编辑,在 showPosition 函数中,我将坐标对象属性设置为位置对象的值。它们现在存储在 coords 对象中,你可以在任何你喜欢的地方提醒它们,或者对它们做任何你想做的事情。 看来我在这里遇到了同样的问题,我无法将 lat 和 long 传递给某个变量,所以我可以将它与我的代码一起使用,***.com/questions/11475192/…

以上是关于将当前地理位置保存到变量的主要内容,如果未能解决你的问题,请参考以下文章

将 UIWebView 访问保存到当前位置

将地理位置保存在 php 变量中

无法将数据从地理编码器保存到全局变量 [重复]

从 GPS 获取当前标记位置并保存到 mySQL

将 VStack 的位置保存在 @State 私有变量中

.NET 将配置设置保存到 PerUserRoaming 位置