2017-05-02 3 views
0

In meiner Ionic 2-Anwendung kann ich meinen aktuellen Standort auf der Karte sehen, aber wie kann ich den Standort (Länge und Breite) zu Firebase hinzufügen?Wie kann ich meinen aktuellen Standort zu Firebase hinzufügen?

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); 
     }); 
     }); 

    }); 

    } 

Ich bin in der Lage, die aktuelle Position von mir zu bekommen, und wenn ich die Karte doppelklicken kann ich den Abstand zwischen mir und der Markierung sehen.

Antwort

1

Ja, es ist möglich. Aber seit ein Doppelklick auf eine Karte sie vergrößert, verwende ich press. Aber es wäre besser, wenn Sie eine Schaltfläche in einem Info-Fenster mit einem "Speicherort speichern" -Text oder etwas ähnlichem setzen, um die Speicherfunktion aufzurufen.

IHRE HTML

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

IHRE .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 
    }) 
} 

So kann man Sie Standort speichern, verwenden update() statt set() also nicht Sie andere Daten abonnieren.

Wenn Sie abrufen möchten, dass die Daten firebase.database().ref('PATH/YOU'VE/SAVED').once('value', snapshot =>{ // CODE });

verwenden nur Hoffe, es hilft

Verwandte Themen