GPS图标无效

时间:2015-12-14 06:14:00

标签: javascript gps geolocation ionic-framework

我使用联想android 4.4.2,三星android 4.4.4,平板电脑三星android 4.1.2来测试我的应用程序

我还使用了cordova地理定位插件($ cordovaGeolocation)。但问题是gps图标仍未在状态栏中显示/激活。因此,它使我的应用位置不准确。为了确认,我打开了我的Google地图应用,看看是否出现GPS图标,结果是图标处于活动状态。

然后,我尝试在iOS中运行我的应用程序,图标出现了。

这是我的javascript代码:

    var options = {
        enableHighAccuracy: true,
        maximumAge: 0,
        timeout: 10000
    };

    $cordovaGeolocation.getCurrentPosition(options).then(function (pos) {
        latlong =  { 'lat' : pos.coords.latitude, 'long' : pos.coords.longitude };
        $rootScope.currentLocation = latlong;
    }, function(err) {});

我想知道为什么没有出现gps图标。如果是因为我的Android版本或我的设备,但我已经使用mauron85-background-geolocation来运行后台。它确实出现了gps图标。

我已经完成了对这个问题的研究,但它也无法解决我的问题。 这里 - > https://forum.ionicframework.com/t/gps-icon-when-using-geolocation-is-not-active/22426/3

1 个答案:

答案 0 :(得分:0)

已经解决了这个问题。这是我的代码

.controller('MapCtrl', function ($scope, $state, $cordovaGeolocation, $interval) {

var options = {
    enableHighAccuracy: true,
    maximumAge: 3000,
    timeout: 30000
};

var watchOptions = {
    timeout: 3000,
    enableHighAccuracy: false
};

$cordovaGeolocation.getCurrentPosition(options).then(function (position) {
    var latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);

    var mapOptions = {
        center: latLng,
        zoom: 15,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    $scope.map = new google.maps.Map(document.getElementById("map"), mapOptions);
    google.maps.event.addListener($scope.map, 'idle', function () {

        var marker = new google.maps.Marker({
            map: $scope.map,
            position: latLng
        });

        marker.setMap($scope.map);
    });

    $interval(function () {
        $cordovaGeolocation.watchPosition(watchOptions).then(
            null,
            function (err) {
                console.log(err);
            },
            function (position) {
                var lat = position.coords.latitude;
                var long = position.coords.longitude;
                $scope.updateLoc = lat + " " + long;
                $scope.digest();
            });
    }, 10000);


}, function (error) {
    console.log("Could not get location");
});

});