Exemple #1
0
        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));
 }