private long GetTripDistance(RoutePredictionValidation validation) { double startX = geoTransform.LongitudeToX(validation.StartLon); double endX = geoTransform.LongitudeToX(validation.ActualEndLon); double startY = geoTransform.LatitudeToY(validation.StartLat); double endY = geoTransform.LatitudeToY(validation.ActualEndLat); return((long)Math.Sqrt( Math.Pow(Math.Abs(startX - endX), 2) + Math.Pow(Math.Abs(startY - endY), 2))); }
private RoutePredictionValidation ValidateRoutePrediction(TripSummary trip) { RoutePredictionValidation validation = new RoutePredictionValidation() { ActualEndLat = trip.EndLatitude, ActualEndLon = trip.EndLongitude, StartLat = trip.StartLatitude, StartLon = trip.StartLongitude, }; var predictionResult = PredictEndLocation(trip.StartLatitude, trip.StartLongitude, trip.StartTime); validation.ClusterLevel = predictionResult.ClusterLevel; if (predictionResult.Predictions.Count > 0) { validation.PredictedEndLat = predictionResult.Predictions[0].Lat; validation.PredictedEndLon = predictionResult.Predictions[0].Lon; validation.PredictionAccuracyInMeter = CalculatePredictionAccuracyInMeter( validation.ActualEndLat, validation.ActualEndLon, validation.PredictedEndLat, validation.PredictedEndLon); foreach (var prediction in predictionResult.Predictions) { var scoredItem = new ScoredRoutePredictionItem() { Prediction = prediction, PredictionAccuracyInMeter = CalculatePredictionAccuracyInMeter(validation.ActualEndLat, validation.ActualEndLon, prediction.Lat, prediction.Lon) }; validation.ScoredPredictions.Add(scoredItem); } } return validation; }
private long GetTripDistance(RoutePredictionValidation validation) { double startX = geoTransform.LongitudeToX(validation.StartLon); double endX = geoTransform.LongitudeToX(validation.ActualEndLon); double startY = geoTransform.LatitudeToY(validation.StartLat); double endY = geoTransform.LatitudeToY(validation.ActualEndLat); return (long)Math.Sqrt( Math.Pow(Math.Abs(startX - endX), 2) + Math.Pow(Math.Abs(startY - endY), 2)); }