1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
   | var sqlite = require('spatialite');
var db = new sqlite.Database('IDF.db');
var query = "SELECT name, AsGeoJSON(geom) as geojson from minor_roads UNION SELECT name, AsGeoJSON(geom) as geojson from major_roads;";
var i =0;
var elasticsearch = require('elasticsearch');
var async = require('async');
 
var client = new elasticsearch.Client({
  host: 'localhost:9200',
  //og: 'trace',
  requestTimeout : 3600000,
  deadTimeout : 3600000,
});
 
function indexIt(row, cb) {
       var geojson = JSON.parse(row.geojson);
            geojson.name = row.name;
            console.log(row.id + " " +row.name);
 
            client.index({
                  index: 'e42',
                  type: 'roads',
                  body: geojson,
            }, function (error, response) {
                if (error)  console.log(error);
                cb(error, response )
            });
}
 
db.spatialite( function(err){
    db.all(query, function(err, rows){
        if (err) throw err;
 
        async.eachSeries(rows, indexIt, function(error) {
            if (err)  throw err;
            console.log('All files have been processed successfully');
        });
 
    });
}); | 
Partager