Quiero convertir todos los geojsons en un archivo a archivos de forma en un solo lote usando la biblioteca ogr2ogr en NodeJS. Sé que se puede hacer directamente desde la terminal usando gdal cli, pero quiero saber cómo hacerlo en Node. ¡Muchas gracias!
Tengo este código para convertir un solo archivo:
// Using CommonJS modules const ogr2ogr = require('ogr2ogr').default; const fs = require('fs') ; // Promise API (async() => { // Convert path to GeoJSON. let {data} = await ogr2ogr('/Users/MihaiB/Desktop/test_josm/test22.geojson' ); console.log(data); let {stream} = await ogr2ogr( data, {format: 'ESRI Shapefile'}, {destination:'/Users/MihaiB/Desktop/shapefile2.shx'}); console.log(stream) })()Después de todo, la solución parecía ser bastante fácil (incluso si tomó mucho tiempo descubrirla). Tuve que usar el paquete dirTree para obtener las rutas de todos los archivos en una carpeta determinada.
const ogr2ogr = require('ogr2ogr').default; const PATH = require('path'); const dirTree = require('directory-tree'); // Promise API ( async() => { // List Files in a Directory using dirTree package const tree = dirTree('/Users/MihaiB/Desktop/test_josm/', {extensions:/\.geojson$/}, async (item, PATH, stats) => { console.log(PATH); // Convert path to GeoJSON let {data} = await ogr2ogr(PATH); console.log(data); // Convert GeoJSON to Shapefile let {stream} = await ogr2ogr( data, {format: 'ESRI Shapefile', destination:'/Users/MihaiB/Desktop/batch2/'}); console.log(stream) }); }) ()