27.09.2012, 12:47
(27.09.2012, 10:44)Stoertie Wrote: Einzig blöd ist nur, dass der letzte neu eingefügte Wegpunkt zeitlich hinter dem zweiten, vor dem Einfügen, markierten Punkt liegt. *staun*
Du meinst das Zeitwirrwarr, wenn man Einfügen/Alle Wegpunkte für die letzten beiden Positionen ausführt?
(27.09.2012, 10:44)Stoertie Wrote: ...aber das kreige ich auch irgendwie hin... solange ich nicht jeden Punkt "anfassen" muss ist das noch OK. ;-)
Vielleicht magst Du mal die Vorabversion ausprobieren, die ich gerade hochgeladen habe. Dort gibt es einen neuen Menüpunkt Vervollständige->Zeit der für eine Position die Zeit aus dem Verhältnis der Distanzen und Zeiten von Vorgänger und Nachfolger zur Position berechnet:
PHP Code:
public static CompactCalendar intrapolateTime(BaseNavigationPosition position, BaseNavigationPosition predecessor, BaseNavigationPosition successor) {
if (predecessor.getTime() == null || successor.getTime() == null)
return null;
Long timeDelta = abs(predecessor.calculateTime(successor));
if (timeDelta == null)
return null;
Double distanceToPredecessor = predecessor.calculateDistance(position);
if (isEmpty(distanceToPredecessor))
return null;
Double distanceToSuccessor = position.calculateDistance(successor);
if (isEmpty(distanceToSuccessor))
return null;
Double distanceRatio = distanceToPredecessor / (distanceToPredecessor + distanceToSuccessor);
long time = (long) (predecessor.getTime().getTimeInMillis() + (double) timeDelta * distanceRatio);
return CompactCalendar.fromMillis(time);
}
D.h. es funktioniert nicht für die erste und letzte Position, aber für alle dazwischenliegenden.
Bitte teste und berichte, ob das nach dem Einfügen der Wegpunkte angewendet vernünftige Ergebnisse bringt. Dann ließe sich das nach einigen Umbaumaßnahmen auch gleich in den Einfügeprozeß aufnehmen.
--
Christian
Christian
