Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中从EXIF数据中提取GPS数据_Javascript_Node.js_Exif - Fatal编程技术网

在JavaScript中从EXIF数据中提取GPS数据

在JavaScript中从EXIF数据中提取GPS数据,javascript,node.js,exif,Javascript,Node.js,Exif,我想使用NodeJS从图片中提取GPS Exif标记。我得到了以下格式的数据: { "gps": { "GPSTimeStamp": [2147483647, 76, 41], "GPSLongitude": [76, 41, 56.622], "GPSLatitude": [30, 43, 8.754], "GPSAltitude": 0, "GPSDateStamp": "14615748802"

我想使用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中,我得到的是这种格式的数据。

哦,我刚刚了解了digree、分、秒和方向的概念。 数组中有三个值,分别是digree、minute和seconds

要解析输入,请使用以下命令

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库,这些库为您提供了原始的lat/long数据,您可以自行转换这些数据。有一个新的库可以自动为您执行此操作。它是一个维护、积极开发的库,关注性能,在nodejs和浏览器中都能工作

    async function getExif() {
        let output = await exifr.parse(imgBuffer)
        console.log('gps', output.latitude, output.longitude)
    }

您还可以试用该库的,并尝试使用图像及其输出,或者查看。

可能应该添加一条免责声明,说明这是您的库。干得好。