Esempio n. 1
0
        private static double GetXmpGeoData(List <Directory> allExifItems, string propertyPath)
        {
            var latitudeString = string.Empty;
            var latitudeRef    = string.Empty;

            foreach (var exifItem in allExifItems)
            {
                // exif:GPSLatitude,45,33.615N
                var latitudeLocal = GetXmpData(exifItem, propertyPath);
                if (string.IsNullOrEmpty(latitudeLocal))
                {
                    continue;
                }
                var split = Regex.Split(latitudeLocal, "[NSWE]");
                if (split.Length != 2)
                {
                    continue;
                }
                latitudeString = split[0];
                latitudeRef    = latitudeLocal[latitudeLocal.Length - 1].ToString();
            }

            if (string.IsNullOrWhiteSpace(latitudeString))
            {
                return(0);
            }

            var latitudeDegreeMinutes = GeoParser.ConvertDegreeMinutesToDouble(latitudeString, latitudeRef);

            return(Math.Floor(latitudeDegreeMinutes * 10000000000) / 10000000000);
        }
Esempio n. 2
0
        private double GpsPreParseAndConvertDegreeAngleToDouble(string gpsLatOrLong)
        {
            // get ref North, South, East West
            var refGps = gpsLatOrLong.Substring(gpsLatOrLong.Length - 1, 1);

            return(GeoParser.ConvertDegreeMinutesToDouble(gpsLatOrLong, refGps));
        }
Esempio n. 3
0
        public void GeoParser_ExifRead_ConvertDegreeMinutesToDouble_ConvertLongLat()
        {
            var    input  = "52,20.708N";
            string refGps = input.Substring(input.Length - 1, 1);
            var    data   = GeoParser.ConvertDegreeMinutesToDouble(input, refGps);

            Assert.AreEqual(52.3451333333, data, 0.001);

            var    input1  = "5,55.840E";
            string refGps1 = input1.Substring(input1.Length - 1, 1);
            var    data1   = GeoParser.ConvertDegreeMinutesToDouble(input1, refGps1);

            Assert.AreEqual(5.930, data1, 0.001);
        }