Java 获取照片的gps位置

Java 获取照片的gps位置,java,android,geolocation,gps,photo,Java,Android,Geolocation,Gps,Photo,我知道如何获取移动电话的当前GPS位置。 我还知道如何在拍照时将GPS位置保存到照片中。(相机选项三星galaxy s2) 但是我怎样才能(稍后)得到那张照片的GPS位置呢? 当我在电脑上打开照片时,我可以看到GPS位置数据,但不知道以后如何在android中提取它们。有人能给我指出好的方向吗? 为了使问题更清楚: 如何获取已拍摄照片的GPS位置 已经谢谢了, Bigflow我认为地理标签在照片的EXIF数据中。找到一个合适的EXIF数据读取器,它将帮助您提取所需的数据。josnidhin使这个

我知道如何获取移动电话的当前GPS位置。 我还知道如何在拍照时将GPS位置保存到照片中。(相机选项三星galaxy s2)

但是我怎样才能(稍后)得到那张照片的GPS位置呢? 当我在电脑上打开照片时,我可以看到GPS位置数据,但不知道以后如何在android中提取它们。有人能给我指出好的方向吗? 为了使问题更清楚: 如何获取已拍摄照片的GPS位置

已经谢谢了,
Bigflow

我认为地理标签在照片的EXIF数据中。找到一个合适的EXIF数据读取器,它将帮助您提取所需的数据。

josnidhin使这个答案成为可能,所以一定要相信他:)

我们开始:

import android.media.ExifInterface;

exif = new ExifInterface(filePath);
String lat = ExifInterface.TAG_GPS_LATITUDE;
String lat_data = exif.getAttribute(lat);
之后,lat_数据将类似于:51/1,58/1,32/1

这与:51、58、32相同。(在谷歌地图中输入此项将产生不好的结果)

要获得该区域的gps坐标,您需要做一些数学运算,下面是:

  • 计算总秒数:
    58′32″ = (58*60 + 32) = 3512 秒
  • 小数部分是总秒数除以3600:
    3512/3600=~0.975556
  • 将分数度添加到整数度以生成最终结果:
    51+0.975556=51.975556
  • 如果是西经度坐标,则取反结果。(这次不是)
  • 答复:51.975556

  • 当你使用
    TAG\u GPS\u LONGITUDE

    谢谢,我要找的是“EXIF”这个词:)。我做了自己的回答,帮助人们多一点,但谢谢你给我指明了方向+1请您对
    进行更多解释,如果是西经坐标,请对结果进行否定。(这次不是)
    ?我怎样才能确定呢?@Nguyenminhinh:你可以得到ExifInterface.TAG\u GPS\u LATITUDE\u REF的值,南为“S”,北为“N”,而ExifInterface.TAG\u GPS\u LATITUDE\u REF的值也可以是“W”或“E”。