-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
67 lines (63 loc) · 1.73 KB
/
index.js
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
var buildInserts = require('./src/buildInserts'),
createTasks = require('./src/createTasks'),
datawrap = require('datawrap'),
datawrapDefaults = require('./defaults'),
getTagBoundsFromOverpass = require('./src/getTagBoundsFromOverpass');
var sourceFile = process.argv[2];
var defaults = datawrap.fandlebars.obj(datawrapDefaults, global.process);
// Set up a db in memory for this
var db = datawrap({
'type': 'spatialite'
}, defaults);
var taskList = [{
'name': 'initialize database',
'task': db.runQuery,
'params': ['file:///initializeDb.sql']
}, {
'name': 'input insert list',
'task': buildInserts,
// TODO: Take this as an input!
'params': [sourceFile, 'input', defaults]
}, {
'name': 'insert inserts to db',
'task': db.runQuery,
'params': ['{{input insert list}}']
}, {
'name': 'tagBounds',
'task': db.runQuery,
'params': ['file:///getTagBounds.sql', {
tableName: 'input_geoms',
tagTableName: 'input_tags'
}]
}, {
'name': 'OverpassData',
'task': getTagBoundsFromOverpass,
'params': ['{{tagBounds}}']
}, {
'name': 'osmInsertList',
'task': buildInserts,
'params': ['{{OverpassData}}', 'osm', defaults]
}, {
'name': 'insert inserts to db',
'task': db.runQuery,
'params': ['{{osmInsertList}}']
}, {
// TODO: Right now we only do polygons, but we can do more!
'name': 'Get Overlaps',
'task': db.runQuery,
'params': ['file:///getPolygonOverlaps.sql', {
tableNameA: 'input_geoms',
tagTableNameA: 'input_tags',
tableNameB: 'osm_geoms'
}]
}, {
'name': 'Create MR Task',
'task': createTasks,
'params': ['{{Get Overlaps}}']
}];
datawrap.runList(taskList, 'Main Task')
.then(function(a) {
console.log(JSON.stringify(a[a.length - 1]));
}).catch(function(e) {
throw e;
});