Как обновить координаты маркера в Google Map в Ioni c Map, используя часы Geolocation? - PullRequest
0 голосов
/ 25 марта 2020

Я создаю карту Google в своем приложении Ioni c, задаю координаты центра для моих координат с помощью геолокации и добавляю маркер на карту (используя те же координаты):

В настоящее время весь приведенный ниже код работает нормально:

ionViewWillEnter() {
    this.anonLogin();
    this.loadMap();
  }

  anonLogin() {
    this.afAuth.auth.signInAnonymously().then(res => {
      this.user = res.user;
      this.watch = Geolocation.watchPosition({}, (position, err) => {
        if (position) {
          this.latLng = new google.maps.LatLng(position.coords.latitude, position.coords.latitude);
          console.log('position change: ' + this.latLng);
          this.updateMarker();
        }
      });
    });
  }

  loadMap() {
    Geolocation.getCurrentPosition().then((resp) => {
      this.latLng = new google.maps.LatLng(resp.coords.latitude, resp.coords.longitude);
    }).then(() => {
      let mapOptions = {
        center: this.latLng,
        zoom: 15,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      };

      var marker = new google.maps.Marker({
        position: this.latLng,
        title: "Hello World!"
      });

      this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions);
      marker.setMap(this.map);
    }).catch((err) => {
      console.log(err);
    });
  }

Но когда мое местоположение меняется, я хочу, чтобы маркер также перемещался вместе с моим местоположением на карте.

Вот почему я назвал this.updateMarker() выше в часах Geolocation.

Но не похоже, что маркер обновляется в настоящее время, вот что у меня внутри updateMarker():

updateMarker() {
    var marker = new google.maps.Marker({
      position: this.latLng,
      title: "Hello World!"
    });
    marker.setMap(this.map);
  }

Может кто-нибудь сказать, почему мой маркер не обновляется, и какие изменения необходимы для этого?

...