当谷歌地图路线指南开启时,Android GPS精度仅高吗?

时间:2018-02-06 21:12:36

标签: android google-maps cordova gps google-location-services

我的Android应用中需要准确的GPS定位。我正在使用此Cordova插件来实现GPS位置:https://github.com/pmwisdom/cordova-background-geolocation-services

这是请求GPS位置的代码:

if (locationClientAPI == null) {
            connectToPlayAPI();
        } else if (locationClientAPI.isConnected()) {
            locationRequest = LocationRequest.create()
                    .setPriority(translateDesiredAccuracy(LocationRequest.PRIORITY_HIGH_ACCURACY))
                    .setFastestInterval(4000)
                    .setInterval(5000)
                    .setSmallestDisplacement(0);

            LocationServices.FusedLocationApi.requestLocationUpdates(locationClientAPI, locationRequest, locationUpdatePI);
            this.isRecording = true;

            if(isDebugging) {
                Log.d(TAG, "- Recorder attached - start recording location updates");
            }
        } else {
            locationClientAPI.connect();
        }

它适用于许多Android手机,但在一些(例如三星Galaxy S8)上,准确性非常糟糕。通常500-1500米,这是完全无法使用的应用程序。我还观察到,如果我同时打开谷歌地图,那里的位置也到处都是,直到我开始路线指南 - 然后它几乎立刻变成了现场。如果我使用我的应用程序,当路线指南打开时,一切都非常准确和好。

在Android设置中,我的应用可以使用最高的GPS准确度。

如何在不必在谷歌地图中启用路线指导的情况下实现高精度。

1 个答案:

答案 0 :(得分:0)

这个怎么样?

var option = {
  enableHighAccuracy: true // use GPS as much as possible
};
plugin.google.maps.LocationService.getMyLocation(option, function(location) {
    var text = ["Current your location:\n",
      "latitude:" + location.latLng.lat.toFixed(3),
      "longitude:" + location.latLng.lng.toFixed(3),
      "speed:" + location.speed,
      "time:" + location.time,
      "bearing:" + location.bearing].join("\n");

    alert(text);
});

https://github.com/mapsplugin/cordova-plugin-googlemaps-doc/blob/master/v2.0.0/ReleaseNotes/v2.2.0/README.md#locationservicegetmylocation-without-map