Watch Position Ionic 3 - PullRequest
       36

Watch Position Ionic 3

0 голосов
/ 11 июня 2018

Привет, ребята. Мне нужна помощь в том, как смотреть положение на картах Google с помощью Ionic 3, я хотел бы, чтобы эта позиция была загружена в реальном времени в базе данных. В моем home.ts у меня есть следующий код:

    getMyPosition() {
    this.geolocation.getCurrentPosition().then((result) => {
      this.positionTruck = new google.maps.LatLng(result.coords.latitude, result.coords.longitude);
      const mapOptions = {
        zoom: 18,
        center: this.positionTruck,
        disableDefaultUI: true
      }    
      this.map = new google.maps.Map(document.getElementById('map'), mapOptions);
      this.truckMarker(this.positionTruck);

      let watch = this.geolocation.watchPosition();
      watch.subscribe((data) => {
      let truck = { latitude: data.coords.latitude, longitude: data.coords.longitude };
        this.truckService.updateGeolocation(this.truck.key, truck);
        console.log(data.coords)
      });

    }).catch((error) => {
      console.log('Erro ao tentar pegar sua localização ', error);
    })
  }

И теперь у меня есть этот код в службе для обновления truck.service:

    update(key: string, truck: any) {
    return new Promise((resolve, reject) => {
      this.db.list(this.PATH)
            .update(key, (truck))
            .then(() => resolve())
            .catch((e) => reject())
    })
  }

таким образом, когда я тестирую на устройстве, домашняя страница дает обновление страницы, почему?Является ли эта форма правильно обновленной позиции?помогите пожалуйста.

1 Ответ

0 голосов
/ 11 июня 2018

импорт: import { Geolocation, Geoposition } from '@ionic-native/geolocation';

и объявить:

public lat: number = 0;
public lng: number = 0; 

и добавить в свой код

let options = {
      frequency: 3000,
      enableHighAccuracy: true
    };

this.watch = this.geolocation.watchPosition(options).filter((p: any) => p.code === undefined).subscribe((position: Geoposition) => {

  console.log(position.coords.latitude + '   ++++++++++ ' + position.coords.longitude);

  // Run update inside of Angular's zone
  this.zone.run(() => {
    this.lat = position.coords.latitude;
    this.lng = position.coords.longitude;
    );

  });

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...