Cordova地理定位插件问题

Cordova地理定位插件问题,cordova,ionic-framework,geolocation,cordova-plugins,android-gps,Cordova,Ionic Framework,Geolocation,Cordova Plugins,Android Gps,Cordova地理定位插件仅适用于手机的GPS定位。如果手机GPS未锁定(例如,在建筑物内),则应使用无线网络或移动电话塔 我检查了它,只允许它访问\u粗略\u位置,并注释了访问\u精细\u位置的代码。在这种情况下,我们得到错误代码:3(超时) $scope.showpopup=function(status){ console.log("show pop up function called"); var cont;

Cordova地理定位插件仅适用于手机的GPS定位。如果手机GPS未锁定(例如,在建筑物内),则应使用无线网络或移动电话塔

我检查了它,只允许它访问\u粗略\u位置,并注释了访问\u精细\u位置的代码。在这种情况下,我们得到错误代码:3(超时)

    $scope.showpopup=function(status){
                 console.log("show pop up function called");
                 var cont;
                 switch (status) {
                    case 1:
                        cont = "User denied the request for Geolocation."
                        break;
                    case 2:
                        cont = "Location information is unavailable."

                        break;
                    case 3:
                        cont = "The request to get user location timed out."
                        break;
                    default:
                        cont = "An unknown error occurred."
                        break;
                }
                $ionicPopup.alert({
                    title: 'Gps error',
                    content: cont
                });
        };


 navigator.geolocation.getCurrentPosition(
    function(position){
        //Variables to use for showing latitude and longitude by position.coords .
    },function(error){
        $scope.showpopup(error.code);
        },{timeout:10000,maximumAge:60000,enableHighAccuracy:true});

您已将
enableHighAccurance
设置为true,这表示您需要GPS。将其更改为false,然后您将能够获得基于网络(wifi或蜂窝)的位置

有关更多详细信息,请参阅:


谢谢@Neil Cresswell我们会试试。很抱歉,我会发现它很有趣,不要误解我的意思,我必须纠正你,@Neil Cresswell,但这不是真的。该插件基于“enableHighAccurance属性提供了一个提示,表明应用程序希望获得尽可能最好的结果”,因此,你告诉api你想使用gps/glonass/galileo/beidou,但不能保证坐标来自这些卫星地球物理系统,因此该api也可以求助于不太精确的技术,如wifi/gsm。正如引用的句子所述:如果在具体情况下可能,应用程序希望使用高精度技术,那么它就可以将使用高精度技术,否则如果现在可以使用,它将自动使用低精度技术。当EnableHighAccurance设置为true时,也可以读取。andriod允许使用高精度和低精度技术,例如,可以使用哪种技术取决于当前位置。要在设置ACCESS\u FINE\u location时得出结论,则允许应用程序使用高精度和低精度技术。删除ACCESS\u FINE\u位置或将enableHighAccuracy设置为false不会对精度较低的技术产生任何影响。您最好将EnableHighAccurance设置为true,并将超时和最大值设置为尽可能高。这确保您充分利用所有地理技术(高精度和低精度),并使用缓存的坐标。你不能做更多的事情,因为没有更多的参数了。