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

Dee*_*rma 3 javascript exif node.js

我想使用 NodeJS 从图片中提取 GPS Exif 标签。我得到了这种格式的数据:

{
    "gps": {
        "GPSTimeStamp": [2147483647, 76, 41],
        "GPSLongitude": [76, 41, 56.622],
        "GPSLatitude": [30, 43, 8.754],
        "GPSAltitude": 0,
        "GPSDateStamp": "14615748802"
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法把它转换成经纬度?

当我在 Android 中检查 Exif 数据时,它会显示正确的纬度和经度,但在 NodeJS 中我以这种格式获取数据。

Dee*_*rma 7

哦,我刚刚知道了离题、分、秒和方向的概念。我在数组中得到了三个值,分别是 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]);
}
Run Code Online (Sandbox Code Playgroud)

以下将您的 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;
}
Run Code Online (Sandbox Code Playgroud)

因此,您的输入将产生以下内容:

36°57'9" N = 36.9525000
110°4'21" W = -110.0725000
Run Code Online (Sandbox Code Playgroud)