使用Javascript访问位置

时间:2014-10-16 18:35:08

标签: javascript

我从不同的地方运行下面显示的代码,但这会在不同的地方产生相同的纬度和经度值。

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

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

简而言之,问题不在于您的代码,而在于您的设备。我可以告诉你正在使用W3Schools关于地理位置API的文章中的demo code。这段代码似乎对我来说很好,至少和我期望的一样多。

在所有情况下,地理定位都不是非常精确。根据{{​​3}},用于确定位置的方法将是您当时可用于设备的最准确方法。如果您在桌面浏览器上进行测试,结果可能不会比最近的城市更准确,在某些情况下甚至更不准确(我家在密歇根州注册为新的中间)约克州,出于一些奇怪的原因)。如果您使用3g或4g手机进行测试,可能会获得更好的效果,直到最近的广播区域。如果您在使用GPS的手机上进行测试,可能会获得高度准确的数据,如果您移动几英尺左右,您会发现差异。我对这些案例说'可能',因为位置数据是一个巨大的隐私问题领域,并且有很多事情可能会干扰地理定位以保护用户的隐私。

如果你从相对较小的动作中看到相同的结果,这很容易就是原因。如果你已经走了几百英里在其他地方运行你的代码,那么我将不得不承认有一些东西