如何将当前位置添加到Firebase



在我的离子2应用程序中,我可以在地图上看到我当前的位置,但是如何将位置(长度和纬度(添加到firebase中?

initMap(): Promise<any> {
    this.mapInitialised = true;
    return new Promise((resolve) => {
      Geolocation.getCurrentPosition().then((position) => {

        let latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
        //let latLng = new google.maps.LatLng(40.713744, -74.009056);
        let mapOptions = {
          center: latLng,
          zoom: 15,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        this.map = new google.maps.Map(this.mapElement, mapOptions);
        resolve(true);
        google.maps.event.addListener(this.map, 'click', (event) => {
          this.clearMarkers();
          let geocoder = new google.maps.Geocoder;
          let infowindow = new google.maps.InfoWindow;
          let distanceToYou = this.getDistanceBetweenPoints(
            event.latLng,
            position,
            'miles'
          ).toFixed(2);
          this.geocodeLatLng(event.latLng,geocoder,infowindow,distanceToYou);
        });
      });
    });
  }

我能够获得当前的位置,如果我双击地图,我可以看到我和标记之间的距离。

是的。但是,由于双击地图将其缩放,我将使用press。但是,如果您在带有"保存位置"文本的信息窗口上设置一个按钮或类似的内容来调用保存功能,那会更好。

您的html

<div #mapID (press)="saveLocation()">

您的.ts

import * as firebase from 'firebase';
public lat;
public long;
initMap(): Promise<any> {
  this.mapInitialised = true;
  return new Promise((resolve) => {
    Geolocation.getCurrentPosition().then((position) => {
      this.lat = position.coords.latitude;
      this.long = position.coords.longitude;
      // YOUR CODE CONTINUES HERE...
    });
  });
});
saveLocation(){
  firebase.database().ref('PATH/YOU/WANT/TO/SAVE').update({
    lat: this.lat,
    long: this.long
  }).then(res =>{
    // THE LOCATION IS SAVED, DO YOUR STUFF
  })
}

这样您可以保存您的位置,使用update()代替set(),因此您不订阅其他数据。

如果要检索数据,只需使用firebase.database().ref('PATH/YOU'VE/SAVED').once('value', snapshot =>{ // CODE });

希望它有帮助

相关内容

  • 没有找到相关文章

最新更新