在Android设备上获取离线GPS坐标

时间:2018-11-21 18:38:43

标签: android html geolocation coordinates offline

首先,我不是开发人员也不是程序员,因此这里的任何帮助将不胜感激!我有一个可在Google Chrome浏览器中启动的android移动设备上使用的表格。用户离线时可以使用此表格,我想知道如何最好地获取经纬度的离线GPS坐标。我一直在做一些挖掘,下面的代码似乎有效。我将这段代码的纬度,经度和准确性结果拖到表单上的单独字段中。 我不确定如何添加时间戳,以便可以确保读数是最新的,而不是设备上缓存的内容。坐标的货币性和可靠性对我来说非常重要。

在这方面的任何帮助都是奇妙的!! 谢谢,安吉拉

    <!DOCTYPE html>
    <html>
    <body>

    <p>Get your latitude and longitude (test this to ensure it works when   out of coverage)</p>

    <button onclick="getLocation()">Get your coordinates</button>

    <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 = "Latitude: " + position.coords.latitude + 
   "<br>Longitude: " + position.coords.longitude;
   "<br>Accuracy: " + position.coords.accuracy              + '<br />'
   }


   function showPosition(position) {
   var latlon = position.coords.latitude + "," + position.coords.longitude   +", Accuracy " + position.coords.accuracy;

   $('input[name="coords"]').val(latlon).trigger('input');
   }


   </script>

  </body>
  </html>

1 个答案:

答案 0 :(得分:0)

getCurrentPosition接受第二个参数PositionOptions。您可以尝试一些选项来获得所需的结果,但是特别要使用maximumAgeenableHighAccuracy。要确保未缓存的结果:

navigator.geolocation.getCurrentPosition(function(pos){
     console.log('Got position', pos);
}, {
     // can be `0` = uncached, any number in milliseconds,
     // or `Infinity` which will only retrieve cached results
     maximumAge: 0,
     // may take longer, but browser will do everything possible
     // to get the most accurate position
     enableHighAccuracy: true
});

还值得注意的是,返回的Position带有accuracy属性,该属性返回一个正双精度值,表示您的经纬度和以米为单位的精度。根据使用情况,您可能需要要求一定的准确性阈值,以便用户与您的应用进行交互。您可以see the full spec here