【问题标题】:Ionic 3 inaccurate geolocationIonic 3 不准确的地理位置
【发布时间】:2018-09-27 06:15:02
【问题描述】:

我目前正在使用 ionic 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 米。

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

有什么建议吗?

【问题讨论】:

  • 你有正确的权限吗?如果不是,地理位置会退回到移动提供商数据。 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

标签: ionic-framework geolocation ionic3 ionic-native


【解决方案1】:

使用构造函数,私有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);
    });

使用我的位置

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-17
      • 2018-09-19
      • 2018-03-07
      相关资源
      最近更新 更多