Extract coordinates from image
class Program { static void Main(string[] args) { using (Bitmap bitmap = new Bitmap(@"D:\tmp\content_example_ibiza.jpg")) { var longitude = GetCoordinateDouble(bitmap.PropertyItems.Single(p => p.Id == 4)); var latitude = GetCoordinateDouble(bitmap.PropertyItems.Single(p => p.Id == 2)); Console.WriteLine($"Longitude: {longitude}"); Console.WriteLine($"Latitude: {latitude}"); Console.WriteLine($"https://www.google.com/maps/place/{latitude},{longitude}"); } Console.ReadKey(); } private static double GetCoordinateDouble(PropertyItem propItem) { uint degreesNumerator = BitConverter.ToUInt32(propItem.Value, 0); uint degreesDenominator = BitConverter.ToUInt32(propItem.Value, 4); double degrees = degreesNumerator / (double)degreesDenominator; uint minutesNumerator = BitConverter.ToUInt32(propItem.Value, 8); uint minutesDenominator = BitConverter.ToUInt32(propItem.Value, 12); double minutes = minutesNumerator / (double)minutesDenominator; uint secondsNumerator = BitConverter.ToUInt32(propItem.Value, 16); uint secondsDenominator = BitConverter.ToUInt32(propItem.Value, 20); double seconds = secondsNumerator / (double)secondsDenominator; double coorditate = degrees + (minutes / 60d) + (seconds / 3600d); string gpsRef = System.Text.Encoding.ASCII.GetString(new byte[1] { propItem.Value[0] }); //N, S, E, or W if (gpsRef == "S" || gpsRef == "W") { coorditate = coorditate * -1; } return coorditate; } }
select coordinates of image
$(function(){ $('#jcrop_target').Jcrop({ onChange: showCoords, onSelect: showCoords }); });
Source: deepliquid.com