离子3不准确的地理定位

时间:2018-04-17 10:12:17

标签: ionic-framework geolocation ionic3 ionic-native

我目前正在使用离子3的原生地理位置

import { Geolocation } from '@ionic-native/geolocation';

要获得用户的位置,请执行以下操作:

this.geolocation.getCurrentPosition().then((resp) => {
      this.lat = resp.coords.latitude;
      this.lng = resp.coords.longitude;
    }).catch((error) => {
      console.log('Error getting location', error);
    });

现在我的问题是我的准确度非常低,这意味着我的位置偏离了至少300米。

如果我尝试打开谷歌地图应用程序,我的位置是完全正确的,那么当我尝试计算它时,我的应用程序再次错误。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

首先确保您拥有所需的所有权限。您可以使用cordova诊断插件来创建运行时权限,检查位置是否已启用,如果已禁用,则连接到位置设置等等。

其次,您可以在getCurrentPosition函数中传递具有highAccuracy(= GPS)的选项:

let options = {
   enableHighAccuracy: true,
   timeout: 30000,
   maximumAge: 60000
};
this.geolocation.getCurrentPosition(options)

答案 1 :(得分:-1)

使用构造函数private geoloc: Geolocation

   this.geoloc.getCurrentPosition().then((resp) => {
      var myLocation= new google.maps.LatLng(resp.coords.latitude, resp.coords.longitude);
    }).catch((error) => {
      console.log('Error getting location', error);
    });

使用myLocation