Java解析照片拿到GPS位置数据的详细步骤

 更新时间:2022年03月07日 10:22:25   作者:西湖边的码农  
这篇文章主要介绍了Java解析照片拿到GPS位置数据,本文给大家介绍代码环境及核心代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

Java代码逐步解析照片拿到GPS位置数据,附上步骤讲解,附上源代码和jar包依赖

1.前提条件

第一,检查你图片是否是高清原图;
第二,检查你的图片是否来自IPhone设备;
第三,检查你拍照片时,是否打开了GPS;
三者缺一不可

2.代码环境

A:需要的Jar包:

 <dependency>
            <groupId>com.drewnoakes</groupId>
            <artifactId>metadata-extractor</artifactId>
            <version>2.12.0</version>
 </dependency>

B:开发环境

1.maven 引入jar包
2.JDK 1.8
3.windows OS

C:核心代码

import com.drew.imaging.jpeg.JpegMetadataReader;
import com.drew.imaging.jpeg.JpegProcessingException;
import com.drew.metadata.Directory;
import com.drew.metadata.Metadata;
import com.drew.metadata.Tag;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
public class PictureTest {
    public static  void readPic() {
        System.out.println("开始读取图片信息...");
        File jpegFile = new File("18.jpg");
        Metadata metadata;
        try {
            metadata = JpegMetadataReader.readMetadata(jpegFile);
            Iterator<Directory> it = metadata.getDirectories().iterator();
            while (it.hasNext()) {
                Directory exif = it.next();
                Iterator<Tag> tags = exif.getTags().iterator();
                while (tags.hasNext()) {
                    Tag tag = (Tag) tags.next();
                    System.out.println(tag);
                }
            }
            System.out.println("图片信息读取完成!");
        } catch (JpegProcessingException e) {
            e.printStackTrace();
        } catch (IOException e) {
        }
    }
}

D:照片信息提取结果:

开始读取图片信息...
[JPEG] Compression Type - Baseline
[JPEG] Data Precision - 8 bits
[JPEG] Image Height - 3456 pixels
[JPEG] Image Width - 4608 pixels
[JPEG] Number of Components - 3
[JPEG] Component 1 - Y component: Quantization table 0, Sampling factors 2 horiz/2 vert
[JPEG] Component 2 - Cb component: Quantization table 1, Sampling factors 1 horiz/1 vert
[JPEG] Component 3 - Cr component: Quantization table 1, Sampling factors 1 horiz/1 vert
[Exif IFD0] Image Width - 4608 pixels
[Exif IFD0] Image Height - 3456 pixels
[Exif IFD0] Make - OnePlus
[Exif IFD0] Model - ONEPLUS A6010
[Exif IFD0] Orientation - Right side, top (Rotate 90 CW)
[Exif IFD0] X Resolution - 72 dots per inch
[Exif IFD0] Y Resolution - 72 dots per inch
[Exif IFD0] Resolution Unit - Inch
[Exif IFD0] Date/Time - 2019:09:03 10:41:29
[Exif IFD0] YCbCr Positioning - Center of pixel array
[Exif SubIFD] Exposure Time - 1/1445 sec
[Exif SubIFD] F-Number - f/1.7
[Exif SubIFD] Exposure Program - Program normal
[Exif SubIFD] ISO Speed Ratings - 100
[Exif SubIFD] Exif Version - 2.20
[Exif SubIFD] Date/Time Original - 2019:09:03 10:41:29
[Exif SubIFD] Date/Time Digitized - 2019:09:03 10:41:29
[Exif SubIFD] Components Configuration - YCbCr
[Exif SubIFD] Shutter Speed Value - 1/1444 sec
[Exif SubIFD] Aperture Value - f/1.7
[Exif SubIFD] Brightness Value - 3.9
[Exif SubIFD] Exposure Bias Value - 0 EV
[Exif SubIFD] Max Aperture Value - f/1.7
[Exif SubIFD] Metering Mode - Center weighted average
[Exif SubIFD] White Balance - Unknown
[Exif SubIFD] Flash - Flash did not fire, auto
[Exif SubIFD] Focal Length - 4.3 mm
[Exif SubIFD] Sub-Sec Time - 260556
[Exif SubIFD] Sub-Sec Time Original - 260556
[Exif SubIFD] Sub-Sec Time Digitized - 260556
[Exif SubIFD] FlashPix Version - 1.00
[Exif SubIFD] Color Space - sRGB
[Exif SubIFD] Exif Image Width - 4608 pixels
[Exif SubIFD] Exif Image Height - 3456 pixels
[Exif SubIFD] Sensing Method - (Not defined)
[Exif SubIFD] Scene Type - Directly photographed image
[Exif SubIFD] Exposure Mode - Auto exposure
[Exif SubIFD] White Balance Mode - Auto white balance
[Exif SubIFD] Focal Length 35 - 25 mm
[Exif SubIFD] Scene Capture Type - Standard
[Interoperability] Interoperability Index - Recommended Exif Interoperability Rules (ExifR98)
[Interoperability] Interoperability Version - 1.00
[GPS] GPS Latitude Ref - N
[GPS] GPS Latitude - 30° 18' 31.31"
[GPS] GPS Longitude Ref - E
[GPS] GPS Longitude - 120° 20' 36.31"
[GPS] GPS Altitude Ref - Sea level
[GPS] GPS Altitude - 0 metres
[GPS] GPS Time-Stamp - 02:41:28.000 UTC
[GPS] GPS Processing Method - CELLID
[GPS] GPS Date Stamp - 2019:09:03
[Exif Thumbnail] Exif Image Width - 320 pixels
[Exif Thumbnail] Exif Image Height - 240 pixels
[Exif Thumbnail] Compression - JPEG (old-style)
[Exif Thumbnail] Orientation - Right side, top (Rotate 90 CW)
[Exif Thumbnail] X Resolution - 72 dots per inch
[Exif Thumbnail] Y Resolution - 72 dots per inch
[Exif Thumbnail] Resolution Unit - Inch
[Exif Thumbnail] Thumbnail Offset - 1104 bytes
[Exif Thumbnail] Thumbnail Length - 38449 bytes
[XMP] XMP Value Count - 5
[Huffman] Number of Tables - 4 Huffman tables
[File] File Name - 18.jpg
[File] File Size - 7027316 bytes
[File] File Modified Date - 星期二 九月 03 10:55:39 +08:00 2019
图片信息读取完成!

有意义的信息截取:

[GPS] GPS Latitude Ref - N                  
[GPS] GPS Latitude - 30° 18' 31.31"       维度
[GPS] GPS Longitude Ref - E
[GPS] GPS Longitude - 120° 20' 36.31"    经度
[GPS] GPS Altitude Ref - Sea level
[GPS] GPS Altitude - 0 metres
[GPS] GPS Time-Stamp - 02:41:28.000 UTC   拍摄时间
[GPS] GPS Processing Method - CELLID
[GPS] GPS Date Stamp - 2019:09:03                拍摄时间

[Exif IFD0] Make - OnePlus              设备信息
[Exif IFD0] Model - ONEPLUS A6010   设备型号

根据经纬度查询结果:

原文链接和源码下载地址 原文链接:https://www.cnblogs.com/haha12/p/11451009.html
GPS位置查询链接:http://www.gpsspg.com/maps.htm
经纬度格式转化链接:http://www.minigps.net/fc.html
代码下载地址:[源码地址]http://xiazai.jb51.net/202203/yuanma/ImageInfoScratch_jb51.rar

到此这篇关于Java解析照片拿到GPS位置数据的文章就介绍到这了,更多相关Java照片GPS内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mybatis中映射文件include标签的应用

    mybatis中映射文件include标签的应用

    这篇文章主要介绍了mybatis中映射文件include标签的应用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java调用python的方法(jython)

    Java调用python的方法(jython)

    这篇文章主要介绍了Java调用python的方法(jython),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Java的Spring框架下的AOP编程模式示例

    Java的Spring框架下的AOP编程模式示例

    这篇文章主要介绍了Java的Spring框架下的AOP编程模式示例,文中分别讲到了基于XML和基于@AspectJ的自定义方式,需要的朋友可以参考下
    2015-12-12
  • 详解Spring Boot Web项目之参数绑定

    详解Spring Boot Web项目之参数绑定

    本篇文章主要介绍了详解Spring Boot Web项目之参数绑定,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Java 8 Lambda 表达式比较器使用示例代码

    Java 8 Lambda 表达式比较器使用示例代码

    这篇文章主要介绍了Java 8 Lambda 表达式比较器使用示例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • Java实现基于token认证的方法示例

    Java实现基于token认证的方法示例

    这篇文章主要介绍了Java实现基于token认证的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • MyBatis的各种查询功能结果接收类型的选择(推荐)

    MyBatis的各种查询功能结果接收类型的选择(推荐)

    文章介绍了MyBatis中查询结果的不同接收方式,包括单条数据和多条数据的处理方法,以及MyBatis的默认类型别名,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • Java中的异步非阻塞AIO模型详解

    Java中的异步非阻塞AIO模型详解

    这篇文章主要介绍了Java中的异步非阻塞AIO模型详解,AIO需要操作系统的支持,在linux内核2.6版本中加入了对真正异步IO的支持,java从jdk1.7开始支持AIO,本文提供了部分实现代码,需要的朋友可以参考下
    2023-09-09
  • SpringMVC中ModelAndView用法小结

    SpringMVC中ModelAndView用法小结

    本文主要介绍了SpringMVC中ModelAndView用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • Java SSM配置文件案例详解

    Java SSM配置文件案例详解

    这篇文章主要介绍了Java SSM配置文件案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08

最新评论