从JavaScript中的EXIF数据中提取GPS数据
Extract GPS data from EXIF data in JavaScript
我想使用NodeJS从图片中提取GPS Exif标签。我得到了这种格式的数据:
{
"gps": {
"GPSTimeStamp": [2147483647, 76, 41],
"GPSLongitude": [76, 41, 56.622],
"GPSLatitude": [30, 43, 8.754],
"GPSAltitude": 0,
"GPSDateStamp": "14615748802"
}
}
有没有办法将其转换为纬度和经度?
当我在Android中检查Exif数据时,它向我显示了正确的纬度和经度,但是在NodeJS中,我正在获取这种格式的数据。
哦,我只是知道了数字,分钟,秒和方向的概念。我在数组中得到了三个值,分别是数字、分钟和秒
要解析您的输入,请使用以下命令。
function ParseDMS(input) {
var parts = input.split(/[^'d'w]+/);
var lat = ConvertDMSToDD(parts[0], parts[1], parts[2], parts[3]);
var lng = ConvertDMSToDD(parts[4], parts[5], parts[6], parts[7]);
}
以下内容将把您的 DMS 转换为 DD
function ConvertDMSToDD(degrees, minutes, seconds, direction) {
var dd = degrees + minutes/60 + seconds/(60*60);
if (direction == "S" || direction == "W") {
dd = dd * -1;
} // Don't do anything for N or E
return dd;
}
因此,您的输入将产生以下内容:
36°57'9" N = 36.9525000
110°4'21" W = -110.0725000
我知道
这可能已经解决了,但我想为偶然发现这个问题的人提供替代解决方案。
似乎您正在使用一些 Node.js 库来为您提供这些原始经度/经度数据,由您来转换它们。有一个新的库 exifr 可以自动为您执行此操作。它是维护的,积极开发的库,专注于性能,并在nodejs和浏览器中工作。
async function getExif() {
let output = await exifr.parse(imgBuffer)
console.log('gps', output.latitude, output.longitude)
}
您还可以尝试图书馆的游乐场并尝试图像及其输出,或查看存储库和文档。
相关文章:
- 用程序搜索JQuery数据表中的文本
- 要求输入在数据列表中
- 正在将数据主题添加到所有项目
- 函数参数中的数据与指定变量之间的任何性能差异
- 在VanillaJS中模拟模型双向数据绑定
- CSS-如何定位内容数据标题
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 序列化数据属性中对象的最可靠方法
- 如何将JSON数据导入我的ejs模板
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 画布数据到图像
- 使用jquery将mysql数据获取到新的表行中
- 使用html中的外部javascript进行数据验证
- 从JavaScript中的EXIF数据中提取GPS数据
- 用于从 GPS 数据映射路径的 JavaScript 库
- 如何使用Node.js获取MacBook Pro的GPS数据
- 在地图上显示GPS位置数据
- 从网站获取移动GPS数据