【问题标题】:Get gps location of a photo获取照片的gps位置
【发布时间】:2012-04-09 17:20:14
【问题描述】:

我知道如何获取手机的当前 GPS 位置。 我也知道如何在拍摄时将 GPS 位置保存到照片中。 (相机选项三星 Galaxy s2)。

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

已经谢谢了, 大流量

【问题讨论】:

    标签: java android geolocation gps photo


    【解决方案1】:

    josnidhin 使这个答案成为可能,所以一定要给他点赞 :)

    我们开始吧:

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

    之后,lat_data 将类似于:51/1,58/1,32/1

    这与:51、58、32 相同。(在谷歌地图中输入会导致错误的结果)

    要获得这个的gps坐标,你需要做一些数学运算,它来了:

    1. 计算总秒数:
      58′32″ = (58*60 + 32) = 3512 秒。
    2. 小数部分是总秒数除以 3600:
      3512 / 3600 = ~0.975556
    3. 将分数度数与整数度数相加以生成最终结果:
      51 + 0.975556 = 51.975556
    4. 如果是西经坐标,则否定结果。 (不是这个时候)
    5. 答案:51.975556

    TAG_GPS_LONGITUDE也是一样

    【讨论】:

    • 能否请您对If it is a West longitude coordinate, negate the result. (it isn't this time)做更多解释?我如何确定这一点?
    • @NguyenMinhBinh:可以获取ExifInterface.TAG_GPS_LATITUDE_REF的值,即“S”代表南或“N”代表北,ExifInterface.TAG_GPS_LONGITUDE_REF的值,可以是“W”或“E”以同样的方式。
    【解决方案2】:

    我认为地理标签在所拍照片的 EXIF 数据中。寻找合适的 EXIF 数据阅读器,帮助您提取所需的数据。

    【讨论】:

    • 谢谢,“EXIF”这个词是我要找的:)。做出我自己的回答,以帮助人们更多一点,但感谢您让我朝着好的方向发展。 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    相关资源
    最近更新 更多