不丢失精度的获取照片的Gps经纬度

Posted 程序媛一枚~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不丢失精度的获取照片的Gps经纬度相关的知识,希望对你有一定的参考价值。

查了超多的资料,发现照片的GPS信息是以rational64u 有理数的格式存储的。如经度、纬度度,在Exif中是以3个浮点数,度,分,秒来存储的。

而读取出来后,也将是用有理数表示, 如 40可以表示为 40,1

1. 实际照片存储经纬度

2. 用pyhton exifread读取

ExifRead          2.3.2

GPS GPSLatitudeRef N
GPS GPSLatitude [40, 0, 638031/20000]
lat except: [40, 0, 638031/20000] 40.00886154166667

GPS GPSLongitudeRef E
GPS GPSLongitude [116, 23, 11610717/1000000]
lon except: [116, 23, 11610717/1000000] 116.3865585325

3. 用java metadata-extractor读取

<!--获取相机exif信息-->
<dependency>
    <groupId>com.drewnoakes</groupId>
    <artifactId>metadata-extractor</artifactId>
    <version>2.16.0</version>
</dependency>

经度 GPS Latitude : 40° 4’ 22.74", °转dec: 40.07298333333333
纬度 GPS Longitude : 116° 20’ 37.01", °转dec: 116.34361388888888

4. windows用 exiftool命令行读取

exiftoo下载:https://exiftool.org/

D:\\pyproject>“exiftool(-k).exe” -v E:/BaiduNetdiskDownload/images/IMG_20201220_171156.jpg

| 13) GPSInfo (SubDirectory) -->
| + [GPS directory with 10 entries]
| | 0) GPSVersionID = 2 2 0 0
| | 1) GPSLatitudeRef = N
| | 2) GPSLatitude = 40 0 31.90155 (40/1 0/1 31901550/1000000)
| | 3) GPSLongitudeRef = E
| | 4) GPSLongitude = 116 23 11.610717 (116/1 23/1 11610717/1000000)
| | 5) GPSAltitudeRef = 1
| | 6) GPSAltitude = 0 (0/100)
| | 7) GPSTimeStamp = 9 11 56 (9/1 11/1 56/1)
| | 8) GPSProcessingMethod = CELLID
| | 9) GPSDateStamp = 2020:12:20

参考

以上是关于不丢失精度的获取照片的Gps经纬度的主要内容,如果未能解决你的问题,请参考以下文章

华为使用h5上传图片没有gps信息

用啥手机软件可以快速获取经纬度?

怎样根据GPS获得的经纬度来获取城市名

IOS Core Location 框架精度

php 通过exif_read_data读取GPS信息后计算出不正常的经纬度

怎样根据GPS获得的经纬度来获取城市名?