public Point3D(double x, double y, double z = 0, CoordinateUnit coordinateUnits = CoordinateUnit.metric)
 {
     X = x;
     Y = y;
     Z = z;
     CoordinateUnits = coordinateUnits;
 }
        /// <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));
        }
Exemple #3
0
        private void GetDirection(CoordinateUnit coordinateUnit)
        {
            if (_coordinate == null)
            {
                return;
            }

            if (_coordinate > 0)
            {
                _direction = coordinateUnit == CoordinateUnit.Latitude ? Direction.North : Direction.East;
            }
            else
            {
                _direction = coordinateUnit == CoordinateUnit.Latitude ? Direction.South : Direction.West;
            }
        }
 /// <summary>
 /// Construct a TrajectoryFileReader
 /// </summary>
 /// <param name="units"></param>
 public TrajectoryFileReader(CoordinateUnit units, TrajectoryGenerator trajectoryGenerator)
 {
     CoordinateUnits      = units;
     _trajectoryGenerator = trajectoryGenerator;
 }
        /// <summary>
        /// Converts the coordinates of a 3D Point into the chosen unit
        /// </summary>
        /// <param name="targetUnit"></param>
        /// <returns></returns>
        public Point3D ConvertTo(CoordinateUnit targetUnit)
        {
            CoordinateConversion converter = new CoordinateConversion();

            return(converter.ConvertCoordinates(this, targetUnit));
        }
Exemple #6
0
 public GeoLocation(decimal?coordinate, CoordinateUnit coordinateUnit)
 {
     Coordinate = coordinate;
     GetDirection(coordinateUnit);
 }
        /// <summary>
        /// Converts the coordinates of a 3D point into requred unit
        /// </summary>
        /// <param name="point"></param>
        /// <param name="newUnits"></param>
        /// <returns></returns>
        public Point3D ConvertCoordinates(Point3D point, CoordinateUnit newUnits)
        {
            Point3D metricPoint = ConvertToMetrics(point);

            return(ConvertMetricsTo(metricPoint, newUnits));
        }