Get gps location of a photo

和自甴很熟 提交于 2019-12-03 08:52:33

josnidhin made this answer possible, so be sure to give him credit too :)

Here we go:

import android.media.ExifInterface;

exif = new ExifInterface(filePath);
String lat = ExifInterface.TAG_GPS_LATITUDE;
String lat_data = exif.getAttribute(lat);

After that, lat_data will be something like: 51/1,58/1,32/1

This is the same as: 51, 58, 32. (typing this in google maps will give bad result)

To get the gps coordinates of this you need to do some math, here it comes:

  1. Calculate the total number of seconds:
    58′32″ = (58*60 + 32) = 3512 seconds.
  2. The fractional part is total number of seconds divided by 3600:
    3512 / 3600 = ~0.975556
  3. Add fractional degrees to whole degrees to produce the final result:
    51 + 0.975556 = 51.975556
  4. If it is a West longitude coordinate, negate the result. (it isn't this time)
  5. answer: 51.975556

This is also the same when you with TAG_GPS_LONGITUDE

I think the geotag is in the EXIF data of the photo taken. Find a suitable EXIF data reader which will help you extract the data you want.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!