在 Node JS 中使用 GDAL ogr2ogr 将 geoJson 批量转换为 shapfile
Converting geoJson to shapfile as batch using GDAL ogr2ogr in Node JS
我想使用 NodeJS 中的 ogr2ogr 库将文件中的所有 geojson 一次性转换为 shapefile。我知道可以使用 gdal cli 直接从终端完成,但我想知道如何在 Node.js 中完成。非常感谢!
我有这个代码来转换单个文件:
// 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)
})()
毕竟,解决方案似乎很简单(即使花了很长时间才弄明白)我不得不使用 dirTree 包来获取给定文件夹中所有文件的路径
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)
});
})
()
我想使用 NodeJS 中的 ogr2ogr 库将文件中的所有 geojson 一次性转换为 shapefile。我知道可以使用 gdal cli 直接从终端完成,但我想知道如何在 Node.js 中完成。非常感谢!
我有这个代码来转换单个文件:
// 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)
})()
毕竟,解决方案似乎很简单(即使花了很长时间才弄明白)我不得不使用 dirTree 包来获取给定文件夹中所有文件的路径
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)
});
})
()