示例#1
0
        protected void ReadFile(string file)
        {
            string rawData = File.ReadAllText(file);

            _populationData = rawData
                              .Split('\n')
                              .Select(q =>
                                      q.Split(new[] { "\t" }, StringSplitOptions.RemoveEmptyEntries)
                                      .Select(x => {
                return((double)decimal.Parse(x, NumberStyles.Float));
            })
                                      .ToArray()
                                      )
                              .ToArray();

            var converter = new MetricToGeographic(new ReferencePointRD());

            for (int r = 0; r < _populationData.Length; r++)
            {
                double[] row = _populationData[r];
                if (row.Length < 3)
                {
                    continue;
                }
                var point = converter.ConvertToLongLat(row[0], row[1]);
                _populationData[r][0] = point.Longitude;
                _populationData[r][1] = point.Latitude;
            }
        }
        /// <summary>
        /// Converts the coordinates of a 3D point from meters to required unit
        /// </summary>
        /// <param name="point"></param>
        /// <param name="newUnits"></param>
        /// <returns></returns>
        protected Point3D ConvertMetricsTo(Point3D point, CoordinateUnit newUnits)
        {
            double newX = point.X;
            double newY = point.Y;
            double newZ = point.Z;

            switch (newUnits)
            {
            case CoordinateUnit.imperial:
                newX = point.X / FeetToMeters;
                newY = point.Y / FeetToMeters;
                newZ = point.Z / FeetToMeters;
                break;

            case CoordinateUnit.metric:
                break;

            case CoordinateUnit.geographic:
                var converter = new MetricToGeographic(new ReferencePointRD());
                var geoPoint  = converter.ConvertToLongLat(point.X, point.Y);
                newX = geoPoint.Longitude;
                newY = geoPoint.Latitude;
                break;
            }

            return(new Point3D(newX, newY, newZ, newUnits));
        }
示例#3
0
        public void convertToLatLong()
        {
            var converter   = new MetricToGeographic(new ReferencePointRD());
            var metricPoint = converter.ConvertToLongLat(122202, 487250);

            Assert.AreEqual(52.372, metricPoint.Latitude, 0.001);
            Assert.AreEqual(4.906, metricPoint.Longitude, 0.001);
        }
        /// <summary>
        /// Construct a Grid
        /// </summary>
        /// <param name="data"></param>
        public Grid(double[][] data, Point3D lowerLeftCorner, int cellSize, bool calculateContours = true)
        {
            LowerLeftCorner = lowerLeftCorner;
            CellSize        = cellSize;
            Data            = data;
            Converter       = new MetricToGeographic(ReferencePoint);
            ReferencePoint  = new ReferencePointRD();

            if (calculateContours)
            {
                CalculateContours();
            }
        }
示例#5
0
        public TrajectoryGenerator(Aircraft aircraft, ReferencePoint referencePoint)
        {
            _aircraft       = aircraft;
            _referencePoint = referencePoint;
            _converter      = new MetricToGeographic(_referencePoint);

            _xData      = new List <double>();
            _yData      = new List <double>();
            _zData      = new List <double>();
            _tData      = new List <double>();
            _speedData  = new List <double>();
            _thrustData = new List <double>();
            _latData    = new List <double>();
            _longData   = new List <double>();
        }