In meiner App habe ich eine Service
, die Standortaktualisierungen empfängt und sie in einer Datenbank speichert. Ich habe auch eine Fragment
, die eine und eine PolyLine
aller aufgezeichneten Wegpunkte aus der Datenbank anzeigt.Bessere Methode zum Aktualisieren der PolyLine-Spur von GPS-Messungen
Während der Aufnahme benachrichtigt die Service
die Fragment
über neue Wegpunkte, so dass die Fragment
die PolyLine
aktualisieren kann. Das Problem ist, dass, wenn der Benutzer weg von der App navigiert die App die Service
Wegpunkte weiterhin auf die Datenbank aufzeichnet, aber jetzt die Fragment
nicht aktualisiert wird, da die Fragment
pausiert ist. Also in onResume
Ich erstelle eine neue PolyLine
, lese alle Wegpunkte in der Datenbank und füge sie zur Datenbank hinzu.
Das funktioniert alles gut, aber es fühlt sich nicht wirklich optimal an, um eine neue PolyLine
zu erstellen und alle Wegpunkte wieder hinzuzufügen (es könnten Tausende sein!). Ich denke, ich könnte einfach alle neuen Wegpunkte hinzufügen, die nicht bereits in der PolyLine
sind, aber ich wollte sehen, ob jemand hier eine alternative Lösung hat? Gibt es eine Möglichkeit, die Fragment
"am Leben zu erhalten" und ihre PolyLine
zu aktualisieren, selbst wenn die App im Hintergrund ist (solange der Dienst läuft)? Oder gibt es einen besseren Weg, dies zu tun?
Danke, das ist ein guter Rat! Ich mache bereits # 2, wenn ich meinen Location Update Listener registriere (Standard ist 10m Mindestabstand). Die geradlinige Erkennung ist ein netter, nicht sicher, wie man es implementiert - es würde eine Art von Toleranz benötigen ... – BadCash
@BadCash Es gibt ein paar Möglichkeiten, die ich mir vorstellen kann, um das zu erreichen. Der beste, den ich mir vorstellen kann, ist, den Abstand des Mittelpunkts zu der Linie zu berechnen, die von den zwei umgebenden Punkten erzeugt wird, und zu prüfen, ob sie kleiner ist als ein bestimmter Wert, der durch die Fehlergrenze bestimmt wird, die Sie brauchen. –
Nochmals vielen Dank :) Ja, das wäre ein Weg zu gehen. Ich hatte einen anderen Gedanken - was ist, wenn ich die Länge des Pfades von AmB (m = Mittelpunkt) mit der Länge des geraden Pfades AB vergleiche, und wenn der erste innerhalb einer bestimmten Toleranz (länger) als der gerade Pfad ist kann als gerade angesehen werden? – BadCash