/** conversion de données gpx conversion de données exif **/ import * as fs from 'node:fs'; const dossier_photo: string = "/home/poule/encrypted/stockage-syncable/photos/imagerie kartaview carto tel/kartaview_export_storage/share2tykayn/photo/2785606" const file_gpx: string = "/home/poule/encrypted/stockage-syncable/photos/imagerie kartaview carto tel/kartaview_export_storage/share2tykayn/metadata_file/3596249/3596249_d875a_60a0f9bf38f99.txt" let gpxData: any = {} let tableKartaviewTrace = [] function makeGpxFromKartaview() { let track_points; // TODO build track points tableKartaviewTrace.forEach((elem: any) => { track_points = track_points + '\n' }) let content = '\n' + '\n' + ' \n' + ' trace_gpx_de_demo\n' + ' \n' + ' somebody\n' + ' \n' + ' \n' + // ' 2022\n' + ' https://creativecommons.org/licenses/by-sa/2.5\n' + ' \n' + ' nada\n' + // ' \n' + // ' \n' + ' \n' + // ' \n' + // ' \n' + ' \n' + ' \n' + track_points + // ' \n' + ' \n' + ' \n' + ' \n' + '' return content; } function openGPX(filepath: any) { fs.readFile(filepath, 'utf8', (err, data) => { if (err) { throw err; } const gpx_content = data; let lines = gpx_content.split('\n') console.log('lines.length', lines.length) lines.forEach((elem: any) => { if (elem.indexOf(":g:") > -1) { let boom = elem.split(':') let gpsmodel = boom[2] let gps = gpsmodel.split(';') tableKartaviewTrace.push(gps) // console.log('boom', boom) // console.log('gps', gps) let date = new Date(boom[0] * 1000) console.log('*', date, gps[0], gps[1]) } }) let content_gpx = makeGpxFromKartaview() // writeFile('./output.gpx', content_gpx) // console.log('gpx_content', gpx_content) }) // loop on all lines, only take the lines that contain :g: // do stuff on gpxData to enrich it } function writeFile(name, content) { console.log('name,content', name, content) fs.writeFileSync(name,content) } function getAllFilesInFolder(folderPath: any) { let listOfFiles: any = [] return listOfFiles } function mapExifDataOnListOfFilesFromGpxData(listOfFiles: any, gpxData: any) { listOfFiles.forEach((elem: any) => { // find corresponding timestamp // add exif info // save file }) } openGPX(file_gpx) let listOfFiles: any = getAllFilesInFolder(dossier_photo) console.log('listOfFiles', listOfFiles)