-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathconverter.js
58 lines (50 loc) · 1.59 KB
/
converter.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
var process = require('process');
var mongoSetup = require('./mongo-setup');
var heilbronnPlaces = require('./hn-streets.json');
var zones = require('./zones.json');
var GeoJSON = require('mongoose-geojson-schema');
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/tapwater');
var Location = mongoose.model('Location', new mongoose.Schema({
name: String,
zone: String,
geometry: GeoJSON.Geometry
}));
var Zone = mongoose.model('Zone', {
name: String,
calcium: Number,
kalium: Number
});
var convertCoordinatesArray = function (coordinates) {
var convertedCoordinates = [];
coordinates.forEach(function (coordinate) {
if (Array.isArray(coordinate[0])) {
convertedCoordinates.push(convertCoordinatesArray(coordinate));
} else {
convertedCoordinates.push([coordinate[1], coordinate[0]]);
}
});
return convertedCoordinates;
};
heilbronnPlaces.features.forEach(function (feature) {
var location = new Location({
name: feature.properties.name,
zone: "Heilbronn " + feature.properties.haertegrad,
geometry: {
"type": feature.geometry.type,
"coordinates": convertCoordinatesArray(feature.geometry.coordinates)
}
});
location.save(function(e) {
console.log(e);
});
});
Object.keys(zones).forEach(function (zoneName) {
var zone = new Zone({
name: zoneName,
calcium: zones[zoneName].calcium,
kalium: zones[zoneName].kalium
});
zone.save();
});
process.exit();