我从不同的地方运行下面显示的代码,但这会在不同的地方产生相同的纬度和经度值。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body onload="getLocation()">
<p id="demo"> </p>
<script>
var x= document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML= position.coords.latitude;
x.innerHTML= position.coords.longitude;
var lat=position.coords.latitude;
var lon=position.coords.longitude;
}
</script>
**strong text**</body>
</html>
任何帮助将不胜感激。
答案 0 :(得分:1)
简而言之,问题不在于您的代码,而在于您的设备。我可以告诉你正在使用W3Schools关于地理位置API的文章中的demo code。这段代码似乎对我来说很好,至少和我期望的一样多。
在所有情况下,地理定位都不是非常精确。根据{{3}},用于确定位置的方法将是您当时可用于设备的最准确方法。如果您在桌面浏览器上进行测试,结果可能不会比最近的城市更准确,在某些情况下甚至更不准确(我家在密歇根州注册为新的中间)约克州,出于一些奇怪的原因)。如果您使用3g或4g手机进行测试,可能会获得更好的效果,直到最近的广播区域。如果您在使用GPS的手机上进行测试,可能会获得高度准确的数据,如果您移动几英尺左右,您会发现差异。我对这些案例说'可能',因为位置数据是一个巨大的隐私问题领域,并且有很多事情可能会干扰地理定位以保护用户的隐私。
如果你从相对较小的动作中看到相同的结果,这很容易就是原因。如果你已经走了几百英里在其他地方运行你的代码,那么我将不得不承认有一些东西