protected virtual async Task DoMinorSteps(GeoCoordinate startingLocation, GeoCoordinate destinationLocation, double bearing) { GeoCoordinate waypoint = GeoDesyTools.CalculateNextWaypoint(startingLocation, bearing, StepLength); TrackLocation(waypoint); //_logger.Trace("Calculated intermediary waypoint: {0}", waypoint); double distanceToDestination = waypoint.GetDistanceTo(destinationLocation); //_logger.Trace("{0:0.0#}m to destination {1}.", distanceToDestination, destinationLocation); await Task.Delay(1300); if (distanceToDestination > StepLength) { await DoMinorSteps(waypoint, destinationLocation, bearing); } }
protected virtual double CalculateBearing(GeoCoordinate startingLocation, GeoCoordinate destinationLocation) { return(GeoDesyTools.CalculateBearing(startingLocation, destinationLocation)); }