Standort nach bestimmter Enfernung hochzählen

  • Hallo an alle,

    ich möchte ein app schreiben die den standort ermittelt und sobald sich der aktuelle standort sich vom letzt gemerkten standort 50 meter unterscheidet (also die entferntung) dann soll ein integerwert um eins hochgezählt werden.

    Bsp: Standort A (longitute X1, latitude Y1) gemerkt. Sobald 50 meter von Standort A entfernt, speichere Standort B (longitute X2, latitude Y2) und zähle i um eins hoch. und so weiter...

    ich denke mal schon, dass das irgendwie möglich ist, leider habe ich keinerlei eine vorstellung und auch keine idee wie ich überprüfen kann, dass sich mein standort um 50 meter vom letzt gespeicherten punkt entfernt hat. da weiß ich nicht, wie man da herangehen kann. gibt es extra Methoden/klassen für sowas? für jeden kleinen tipp wäre ich sehr dankbar.

    Einmal editiert, zuletzt von CdWechsler (3. März 2013 um 10:17)

  • Hallo CdWechsler,

    schau mal in der Doku zum LocationManager. Hier findest du eine schöne Methode die dich dabei unterstüzt ;)

    http://developer.android.com/reference/andr…tionListener%29

    Bsp:

    PHP
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime, minDistance, locationListener);

    Im erzeugten Listener brauchst du dann nur noch innerhalb der Methode onLocationChanged die Position zu speichern what ever.


    public void onLocationChanged(Location location) {
    //Standort speichern..
    }

    Als weiteren Tipp nenne ich dir hier das Training von Google, welches du unbedingt durcharbeiten solltest (inkl. Doku natürlich) :

    http://developer.android.com/training/basic…ionmanager.html


    Speziell:

    public static void distanceBetween (double startLatitude, double startLongitude, double endLatitude, double endLongitude, float[] results)
    public float distanceTo (Location dest)

    *******************************************************
    * http://android-stammtisch-sachsen.de/ *
    *******************************************************

    Einmal editiert, zuletzt von drumliner (3. März 2013 um 12:05)

  • naja - Abstand im 2D geht mit Pythagoras - *ganzschnellkopfeinzieh*

    double dist = Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));

    Dann musst du nur noch gucken, wie du die Distanz in Grad umrechnest in Meter - aber da hilft dir vielleicht der Erdumfang. ;)

    Das Leben kann so hart sein, man muss nur richtig wollen!!!

  • Wenn man eh schon alles hat wieso nicht auf verfügbare Methoden zurückgreifen Uwe? Hab bisher keine schlechten Erfahrungen bei der Nutzung beider Methoden distanceTo / distanceBetween machen können. Irgendwelche Nachteile die ich gerade übersehe?

  • Hallo drumliner,

    wir hatten unsere Antworten gleichzeitig geschrieben - und ich hatte mich eher auf die Frage nach der direkten Berechnung aus vorhandenen Koordinaten bezogen.

    Natürlich ist die Anwendung der Location-Methoden sinnvoller, weil da die Berechnung schon drin ist. ^^

    Das Leben kann so hart sein, man muss nur richtig wollen!!!

  • Ah alles klar :)

    Dachte schon etwas übersehen zu haben. :) Arbeite derzeit nämlich selbst an einer App, welche GPS verwendet und die Resultate für 3D Berechnungen weiter verwendet ^^

  • ah super, danke für die antworten und ratschläge. werde mich mal an die arbeit machen und schauen ob ich es hinbekomme. ansonsten weiß ich ja, wo ich mich melden muss ;)

    danke 8)

  • Ach das wirst du schon locker selbst hinbekommen. Nehm dir wirklich einfach mal ein paar Std. Zeit und liess dir oben erwähntes durch. Danach schreibst du alles locker runter ;)

    Ansonsten kostet es beim nächsten Support ein xD

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!