Ejemplo n.º 1
0
        public void CanCalculateDistanceFromLon()
        {
            double latCorrection = Math.Cos(lat * (Math.PI / 180));

            Assert.AreEqual(0.63, latCorrection, 0.01);

            double calcLong = GeoTools.DistanceToLon(lon, lat, 60 * GeoTools.NauticalMile * latCorrection);

            Assert.AreEqual(lon + 1, calcLong, 0.01);
        }
Ejemplo n.º 2
0
        public TrackCollection(double lat, double lon)
        {
            this.lat = lat;
            this.lon = lon;

            leftTopLat = GeoTools.DistanceToLat(lat, -MapSize / 2);
            leftTopLon = GeoTools.DistanceToLon(lon, lat, -MapSize / 2);

            rightBottomLat = GeoTools.DistanceToLat(lat, MapSize / 2);
            rightBottomLon = GeoTools.DistanceToLon(lon, lat, MapSize / 2);
        }
Ejemplo n.º 3
0
        public void CanCalculateLonDistance()
        {
            double latCorrection = Math.Cos(lat * (Math.PI / 180));
            double dist          = GeoTools.LonDistance(lon - 1, lon, lat);

            Assert.AreEqual(GeoTools.NauticalMile * -60 * latCorrection, dist);

            double leftTopLon = GeoTools.DistanceToLon(lon, lat, -MapSize / 2);

            dist = GeoTools.LonDistance(leftTopLon, lon, lat);
            Assert.AreEqual(-MapSize / 2, dist, 0.01);
        }
Ejemplo n.º 4
0
        public void CanCalculateDistance()
        {
            double leftTopLat = GeoTools.DistanceToLat(lat, -MapSize / 2);
            double leftTopLon = GeoTools.DistanceToLon(lon, lat, -MapSize / 2);

            double rightBottomLat = GeoTools.DistanceToLat(lat, MapSize / 2);
            double rightBottomLon = GeoTools.DistanceToLon(lon, lat, MapSize / 2);

            double distance       = GeoTools.Distance(leftTopLat, leftTopLon, rightBottomLat, rightBottomLon);
            double mapHypothenysa = Math.Sqrt(2 * Math.Pow(MapSize, 2));

            Assert.AreEqual(24437.61f, mapHypothenysa, 0.01);
            Assert.AreEqual(distance, mapHypothenysa, 0.1);
        }