Befolgen Sie den Benutzerstandort auf React Native AirBnb's MapView

Ich benutze die Karte von airbnb für die Antwort auf meine App. Diese Frage ist für die Android-App, da ich nicht um die iOS App noch nicht bekommen.

Mein Problem:

  • Android MVP: Was ist ein Interaktor?
  • Wie bekomme ich Gegenstände, die derzeit in AdapterView angezeigt werden?
  • Schnelle und einfache String verschlüsseln / entschlüsseln in JAVA
  • Android Studio Inline Compiler mit roten Fehlern, aber Kompilation mit Gradle funktioniert gut
  • Wie bekomme ich meine Location geänderte Veranstaltung mit Google Maps Android API v2?
  • Android-Kamera: onActivityResult () Absicht ist null, wenn es Extras hatte
  • Navigator.geolocation funktioniert gut auf emulator, aber dauert zu lange auf echte geräte, bis zu dem Punkt, den es manchmal mal auf älteren Geräten ausläuft.

    Was ich bemerkt habe:

    Wenn showsUserLocation prop auf true gesetzt ist, kann ich die native "aktuelle Position" Markierung auf der Karte sehen, bevor getCurrentPosition auflöst.

    Was ich möchte:

    1. Ich möchte, dass meine Region immer auf den Standort des Nutzers zentriert ist.
    2. Ich möchte entweder einen Weg, um native Geolokation api zugreifen (sollte schneller sein?), Oder vielleicht jemand mir zu sagen, was ich falsch mache Unten ist ein Codebeispiel.
    3. Ich möchte noch den Standort des Benutzers erkennen, auch nachdem die Standortdienste ein- / ausgeschaltet wurden. Dies ist das Verhalten der showsUserLocation Stütze, aber es scheint einmal watchPostion Fehler, es hält ganz auf.

    Hier ist was ich bisher habe, es ist ganz einfach wie es ist:

      componentDidMount() { navigator.geolocation.getCurrentPosition( (position) => { console.log("getCurrentPosition Success"); this.setState({ region: { ...this.state.region, latitude: position.coords.latitude, longitude: position.coords.longitude, } }); this.props.resetNotifications(); this.watchPosition(); }, (error) => { this.props.displayError("Error dectecting your location"); alert(JSON.stringify(error)) }, {enableHighAccuracy: true, timeout: 20000, maximumAge: 1000} ); } watchPosition() { this.watchID = navigator.geolocation.watchPosition( (position) => { console.log("watchPosition Success"); if(this.props.followUser){ this.map.animateToRegion(this.newRegion(position.coords.latitude, position.coords.longitude)); } }, (error) => { this.props.displayError("Error dectecting your location"); }, {enableHighAccuracy: true, timeout: 20000, maximumAge: 1000} ); } 

  • Freigeben von Speicher zwischen zwei Prozessen in Dalvik
  • Schattenabscheider zwischen Android-Fragmenten
  • Profile.getCurrentProfile () gibt nach der Anmeldung null zurück (FB API v4.0)
  • VectorDrawable mit GoogleMap BitmapDescriptor
  • OnSaveInstanceState () und onRestoreInstanceState (Parcelable state) werden nicht aufgerufen?
  • Fremdschlüssel-Einschränkung ON DELETE CASCADE funktioniert nicht in sqlite-Datenbank auf Android
  • 2 Solutions collect form web for “Befolgen Sie den Benutzerstandort auf React Native AirBnb's MapView”

    Ich habe immer gesehen watchPosition iffy zwischen verschiedenen Browsern, eine Sache, die für mich gearbeitet hat, ist es, mit getCurrentPosition in einem setInterval zu ersetzen, damit es die Position alle paar Sekunden bekommt, und wenn es einmal versagt, wird es das nächste Intervall wiederholen, im Gegensatz zu watchPosition die Hört auf zu sehen, ob ein Fehler auftritt.

    Generell Browser Geolocation ist nicht sehr zuverlässig, können Sie diesen Thread für einige Fragen https://github.com/facebook/react-native/issues/7495

    Eine andere Alternative, die definitiv schneller und vielleicht zuverlässiger ist, ist die native Geolocation API zu verwenden. Überprüfen Sie diese Frage für Bibliotheken, die native Geolocation für die Reaktion native React-native Android Geolocation aussetzen

    Nicht sicher, ob dies Ihr Problem lösen wird, aber versuchen Sie dies:

     navigator.geolocation.getCurrentPosition( (position) => { console.log("getCurrentPosition Success"); this.setState({ region: { ...this.state.region, latitude: position.coords.latitude, longitude: position.coords.longitude, } }, () => { this.props.resetNotifications(); this.watchPosition(); }); }, 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.