地理位置不适用于智能手机

时间:2015-07-01 06:42:28

标签: javascript geolocation

我想在我的应用中实现地理位置。

if (navigator.geolocation) {               
           navigator.geolocation.getCurrentPosition(getPosition, errorGettingPosition);
}

function getPosition(position) {
           var myLatitude = position.coords.latitude;
           var myLongitude = position.coords.longitude;
           var radiusEarth = 6371;

           myLongitude = myLongitude * (Math.PI / 180);
           myLatitude = myLatitude * (Math.PI / 180);

           var x0 = myLongitude * radiusEarth * Math.cos(myLatitude);
           var y0 = myLatitude * radiusEarth;

           for (var i = 0; i < list.length; i++) {
              var vendorLongitude = list[i].Longitude = list[i].Longitude * (Math.PI / 180);
              var vendorLatitude = list[i].Latitude = list[i].Latitude * (Math.PI / 180);
              var x1 = vendorLongitude * radiusEarth * Math.cos(vendorLatitude);
              var y1 = vendorLatitude * radiusEarth;

              var dx = x0 - x1;
              var dy = y0 - y1;

              var d = Math.sqrt((dx * dx) + (dy * dy));

              if (d < 1) {
                 list[i].Distance = Math.round(d * 1000) + " m";
              } else {
                 list[i].Distance = Math.round(d * 10) / 10 + " km";
              }
           }
           //add vendors to scope
           $scope.vendors = list;
}

function errorGettingPosition(err) {
           if (err.code == 1) {
              alert("User denied geolocation.");
           }
           else if (err.code == 2) {
              alert("Position unavailable.");
           }
           else if (err.code == 3) {
              alert("Timeout expired.");
           }
           else {
              alert("ERROR:" + err.message);
           }
 }

我写过这些代码。在计算机上的浏览器中它可以完美地工作,但是如果我在我的智能手机上安装这个应用程序(Android,版本5.1.1)它不起作用,我不知道为什么。它也不会在智能手机上输入错误功能。

你知道该怎么办吗?

2 个答案:

答案 0 :(得分:0)

这个人可以输入错误功能

function initiate_watchlocation() {
    if (watchProcess == null) {
        watchProcess = navigator.geolocation.watchPosition(onSuccess, onError);
    }
}

var onSuccess = function(position) {
    var myLatitude = position.coords.latitude;
    var myLongitude = position.coords.longitude;

    };

    function onError(error) {
            alert_box('code: '    + error.code    + '\n' +
              'message: ' + error.message + '\n');
    }

考虑在document.ready中运行它。

答案 1 :(得分:0)

非常特别。当应用加载网站时,它以getCurrentPosition()函数开始。然后我可以一步一步,没有任何反应。但是几秒钟后(大约5秒),它将通过成功回调。我将结果保存在$ scope中,因为我使用AngularJS。但是在GUI中,我无法识别经度和纬度的位置。