-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathopen_data.js
More file actions
114 lines (81 loc) · 3.34 KB
/
open_data.js
File metadata and controls
114 lines (81 loc) · 3.34 KB
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
var express = require('express')
, routes = require('./routes')
, http = require('http')
, path = require('path');
var app = express();
var server = http.createServer(app)
var gpsutil = require('gps-util');
etablissements = require('./json/college.json').d;
defibrilateurs = require('./json/defibrilateur.json').d;
arrets_bus = require('./json/arret_bus.json').d;
app.configure(function(){
app.set('port', process.env.PORT || 8282);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
// app.use(express.bodyParser()); fait planter l'appli
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
// set route for index path
app.get('/', routes.index);
// activate the server listening
server.listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
// activate socket io
var io = require("socket.io").listen(server)
io.sockets.on('connection', function (socket) {
var me;
socket.on('get_details',function(id_etablissement){
the_etablissement = etablissements[id_etablissement]
// Create default value for details
all_details = {1 :
{defib : 0, arret : 0},
2 :
{defib : 0, arret: 0},
5 :
{defib : 0, arret:0},
10 :
{defib : 0, arret:0}
};
all_details_lat_lon = {defib : Array(), arret : Array()};
// load all defibrilateur in details
for(i = 0; i < defibrilateurs.length; i++){
var distance = gpsutil.getDistance(the_etablissement.longitude,the_etablissement.latitude,defibrilateurs[i].longitude,defibrilateurs[i].latitude);
if(distance < 1000){
all_details[1].defib = all_details[1].defib + 1;
}
if(distance < 2000){
all_details[2].defib = all_details[2].defib + 1;
}
if(distance < 5000){
all_details[5].defib = all_details[5].defib + 1;
}
if(distance < 10000){
all_details[10].defib = all_details[10].defib + 1;
all_details_lat_lon.defib.push({lat:defibrilateurs[i].longitude, lon:defibrilateurs[i].latitude});
}
}
// load all arrêts in details
for(i = 0; i < arrets_bus.length; i++){
var distance = gpsutil.getDistance(the_etablissement.longitude,the_etablissement.latitude,arrets_bus[i].pa_y_wgs84,arrets_bus[i].pa_x_wgs84);
if(distance < 1000){
all_details[1].arret = all_details[1].arret + 1;
}
if(distance < 2000){
all_details[2].arret = all_details[2].arret + 1;
}
if(distance < 5000){
all_details[5].arret = all_details[5].arret + 1;
}
if(distance < 10000){
all_details[10].arret = all_details[10].arret + 1;
all_details_lat_lon.arret.push({lat:arrets_bus[i].pa_y_wgs84, lon:arrets_bus[i].pa_x_wgs84});
}
}
socket.emit('get_details', {etab: {lon:the_etablissement.longitude, lat:the_etablissement.latitude}, details: all_details, maps: all_details_lat_lon});
});
});