Кордова геолокации не точно - PullRequest
1 голос
/ 31 октября 2019

У меня есть приложение ionic 4, которое использует cordova и API Google Maps. Я использую плагин геолокации HTML5, который отслеживает положение устройства при перемещении пользователя, а затем генерирует новый маркер googleMaps и отображает его на карте.

this.watchLocation = await this.geolocation
  .watchPosition()
  .subscribe(location => { 
    this.map.animateCamera({
      target: {
        lat: location.coords.latitude,
        lng: location.coords.longitude
      },
      zoom: 16,
      duration: 1000
    });
this.marker.setPosition({
              lat: location.coords.latitude,
              lng: location.coords.longitude
            });

С помощью приведенного выше кода я протестировалприложение на Samsung Note 9 и результаты на 100% точны. Я также протестировал то же приложение на других устройствах Android (Galaxy A20 и Huawei Y5), и результаты не точные, вместо этого маркер выпрыгивает из положения примерно на 50–200 метров от моей позиции.

Galaxy note9 результатов: enter image description here

1 Ответ

1 голос
/ 04 ноября 2019

Попробуйте установить для параметра enableHighAccuracy значение true. документы описывают это следующим образом:

Свойство PositionOptions.enableHighAccuracy является логическим значением, которое указывает, что приложение хотело бы получить наилучшие возможные результаты. Если это правда, и если устройство способно обеспечить более точное положение, оно сделает это. Обратите внимание, что это может привести к снижению времени отклика или увеличению энергопотребления (например, с помощью GPS-чипа на мобильном устройстве). С другой стороны, если false (значение по умолчанию), устройство может позволить себе сэкономить ресурсы, реагируя быстрее и / или используя меньше энергии.

См. Также связанный поток Очень высокая точность в геолокации HTML5

...