Пример #1
0
        public void TestDistanceBetweenPoints()
        {
            StopResolverConfig conf = new StopResolverConfig()
            {
                Time                     = 5,
                GroupRadius              = 30,
                MinStopAccuracy          = 400,
                StopMergeRadius          = 50,
                StopMergeMaxTravelRadius = 200,
            };

            StopResolver stopResolver = new StopResolver(conf);

            PositionEntry p1 = new PositionEntry()
            {
                Latitude = 52.083333, Longitude = 5.116667
            };
            PositionEntry p2 = new PositionEntry()
            {
                Latitude = 52.083333, Longitude = 4.316667
            };

            double distance = stopResolver.DistanceBetweenPoints(p1, p2);

            Assert.Equal(54712, Math.Round(distance));
        }
Пример #2
0
        public void TestStopNoStops()
        {
            var records = LoadPositionsFromCsv("position_entries_public_sample.csv");


            StopResolverConfig conf = new StopResolverConfig()
            {
                Time                     = 4,
                GroupRadius              = 20,
                MinStopAccuracy          = 400,
                StopMergeRadius          = 50,
                StopMergeMaxTravelRadius = 200,
            };

            StopResolver stopResolver = new StopResolver(conf);

            IList <ResolvedStop> stops = stopResolver.ResolveStops(records);

            foreach (ResolvedStop s in stops)
            {
                Console.WriteLine(s);
            }

            Assert.Equal(0, stops.Count);
        }
Пример #3
0
        private static void ReadCsv()
        {
            IEnumerable <ResolvedStop> stops = null;

            try
            {   // Open the text file using a stream reader.
                using (StreamReader sr = new StreamReader("data.csv"))
                {
                    var csv = new CsvReader(sr);
                    csv.Configuration.RegisterClassMap <PositionEntryMap>();
                    var records = csv.GetRecords <PositionEntry>().ToList();

                    StopResolverConfig conf = new StopResolverConfig()
                    {
                        Time                     = 4,
                        GroupRadius              = 20,
                        MinStopAccuracy          = 400,
                        StopMergeRadius          = 50,
                        StopMergeMaxTravelRadius = 200,
                    };
                    StopResolver stopResolver = new StopResolver(conf);
                    stops = stopResolver.ResolveStops(records);
                    Console.WriteLine($"Stops found: {stops.Count()}");
                }

                using (StreamWriter textWriter = new StreamWriter("export.csv"))
                    using (CsvWriter csvWriter = new CsvWriter(textWriter))
                    {
                        csvWriter.Configuration.RegisterClassMap <ResolvedStopMap>();
                        csvWriter.Configuration.QuoteAllFields = true;

                        csvWriter.WriteRecords(stops);
                    }
            }
            catch (Exception e)
            {
                Console.WriteLine("An error occurred:");
                Console.WriteLine(e.Message);
            }
        }