jbjares2

Untitled

Oct 17th, 2016
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.01 KB | None | 0 0
  1. //'use strict';
  2. (function () {
  3. angular.module('mapviewModule', [
  4. 'ngRoute', 'leaflet-directive','mapviewServiceModule', 'chieffancypants.loadingBar',
  5. ])
  6. .config(['$routeProvider', function ($routeProvider) {
  7. // $httpProvider.defaults.useXDomain = true;
  8. // delete $httpProvider.defaults.headers.common['X-Requested-With'];
  9.  
  10. $routeProvider.when('/map', {
  11. templateUrl: 'templates/mapview/mapview.tpl.html',
  12. controller: 'mapviewController'
  13. });
  14. }])
  15. .controller("mapviewController", mapviewController)
  16.  
  17.  
  18. mapviewController.$inject = ['$scope', '$http','$interval','$sce','$window','cfpLoadingBar','mapviewService'];
  19.  
  20.  
  21.  
  22.  
  23. function mapviewController($scope, $http,$interval,$sce,$window,cfpLoadingBar,mapviewService) {
  24. // $httpProvider.defaults.useXDomain = true;
  25. // delete $httpProvider.defaults.headers.common['X-Requested-With'];
  26. $scope.start = function() {
  27. cfpLoadingBar.start();
  28. };
  29.  
  30. $scope.complete = function () {
  31. cfpLoadingBar.complete();
  32. }
  33.  
  34. var googleMapLayer = new L.Google('ROADMAP');
  35. var osmLayer = L.layerGroup([L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png')]);
  36. var allSensorsLayer = L.layerGroup([L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png')]);
  37. var sensorsInTheSameRoadLayer = L.layerGroup([L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png')]);
  38. var closestSensorsLayer = L.layerGroup([L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png')]);
  39. var markerClusterGroupVar = null;
  40. var baseMaps = {
  41. 'Google Roadmap': googleMapLayer
  42. };
  43. var overlayMaps = {
  44. 'All Sensors': allSensorsLayer,
  45. 'Sensors in the same road': sensorsInTheSameRoadLayer,
  46. 'Closest Sensors': closestSensorsLayer
  47. }
  48.  
  49.  
  50. var map = L.map('map', {
  51. center: [mapviewService.getDefaultLat(), mapviewService.getDefaultLng()],
  52. zoom: mapviewService.getDefaultZoom(),
  53. layers: [googleMapLayer, allSensorsLayer, sensorsInTheSameRoadLayer, closestSensorsLayer]
  54. });
  55.  
  56. function parseLatitude(sensor) {
  57.  
  58. var latitude = parseFloat(sensor
  59. ['http://vital-iot.eu/ontology/ns/hasLastKnownLocation']
  60. ['http://www.w3.org/2003/01/geo/wgs84_pos#lat']);
  61. return latitude;
  62. }
  63.  
  64. function parseLongitude(sensor) {
  65. var longitude = parseFloat(
  66. sensor
  67. ['http://vital-iot.eu/ontology/ns/hasLastKnownLocation']
  68. ['http://www.w3.org/2003/01/geo/wgs84_pos#lon'] ||
  69. sensor
  70. ['http://vital-iot.eu/ontology/ns/hasLastKnownLocation']
  71. ['http://www.w3.org/2003/01/geo/wgs84_pos#long']);
  72. return longitude;
  73. }
  74.  
  75. function parseLocationName(sensor) {
  76. var locationName =
  77. sensor
  78. ['http://www.w3.org/2000/01/rdf-schema#comment'];
  79. return locationName;
  80. }
  81.  
  82. function parseSensorName(sensor) {
  83. var sensorName =
  84. sensor
  85. ['http://www.w3.org/2000/01/rdf-schema#label'];
  86. return sensorName;
  87. }
  88.  
  89.  
  90. function parseId(sensor) {
  91. var id = sensor['@id']
  92. .replace('http://', '')
  93. .replace(/:/g, '_')
  94. .replace(/\./g, '_')
  95. .replace(/\//g, '_')
  96. .replace(/-/g, '0');
  97. return id;
  98.  
  99. }
  100.  
  101. var markers = new L.MarkerClusterGroup();
  102. L.control.layers(baseMaps, overlayMaps).addTo(map);
  103.  
  104.  
  105.  
  106.  
  107. $scope.realtimetrafficEventListener = $interval(function () {
  108. $scope.start();
  109.  
  110.  
  111. $.ajax({
  112. url: "http://localhost:8080/vital-istanbul-demo-web/api/admin/syncSensorOrder",
  113. type: 'GET',
  114. dataType: "json",
  115. jsonp: 'callback',
  116. async: false,
  117. jsonpCallback: "onUserCompletesyncSensorOrder",
  118. success: function(result){
  119.  
  120. // alert(Object.keys(result));
  121. //
  122. var allSensors = [];
  123. allSensors = result;
  124. // console.log("allSensors: "+allSensors);
  125. allSensorsLayer.clearLayers();
  126. if(markerClusterGroupVar!==null){
  127. markerClusterGroupVar.clearLayers();
  128. }
  129. if(markers!==null){
  130. markers.clearLayers();
  131. }
  132.  
  133.  
  134. for (var i = 0; i < result.length; i++) {
  135. var sensor = allSensors[i];
  136.  
  137. if (parseLongitude(sensor) === NaN || parseLatitude(sensor) === NaN) {
  138. continue;
  139. }
  140.  
  141. var geo = [parseLatitude(sensor), parseLongitude(sensor)];
  142. var marker = L.marker(geo,
  143. {icon: L.AwesomeMarkers.icon({icon: "font", prefix: 'fa', markerColor: sensor.color})})
  144. .bindPopup("Speed: " + sensor.speed + "<BR/>" + sensor.incidentMsg).openPopup();
  145.  
  146.  
  147. markerClusterGroupVar = allSensorsLayer.addLayer(markers.addLayer(marker));
  148.  
  149. }
  150. map.addLayer(markers);
  151.  
  152.  
  153. $.ajax({
  154. url: "http://localhost:8080/vital-istanbul-demo-web/api/admin/getAllOrderedIncidents",
  155. type: 'GET',
  156. dataType: "json",
  157. jsonp: 'callback',
  158. jsonpCallback: "onUserCompletesAllOrderedIncidents",
  159. success: function(result){
  160. var allSensors = [];
  161. allSensors = result;
  162. console.log("allSensors.length: "+allSensors.length);
  163. var sensors = [];
  164. var count = 0;
  165. if (typeof $scope.scopedSensors !== 'undefined' &&
  166. $scope.scopedSensors[0]!== 'undefined' &&
  167. $scope.scopedSensors[0] !== null) {
  168. delete $scope.scopedSensors;
  169. }
  170.  
  171. console.log("sensors: "+sensors);
  172. console.log("allSensors.length: "+allSensors.length);
  173. var velocityArr = [];
  174. for (var i = 0; i < allSensors.length; i++) {
  175. var sensor = allSensors[i];
  176. sensor['index'] = i;
  177. sensor['location'] = parseLocationName(sensor);
  178. sensor['name'] = parseSensorName(sensor);
  179. sensor['latitude'] = parseLatitude(sensor);
  180. sensor['longitude'] = parseLongitude(sensor);
  181. sensors.push(sensor);
  182. velocityArr.push(sensor.speed);
  183. count++;
  184. }
  185. $scope.trafficMaxSpeed = Math.max.apply( Math, velocityArr );
  186. $scope.scopedSensors = sensors;
  187. console.log("1) $scope.scopedSensors.length: "+$scope.scopedSensors.length);
  188. console.log("Total of sensors #"+count);
  189.  
  190. $scope.goTo = function (lat, lng) {
  191. map.panTo(new L.LatLng(lat, lng));
  192. console.log(lat + ',' + lng)
  193. }
  194.  
  195.  
  196.  
  197. var chart1;
  198. var rand1 = function() {
  199. if (Math.random() <= 0.25) chart1[0]++;
  200. else if (Math.random() <= 0.25) chart1[1]++;
  201. else if (Math.random() <= 0.25) chart1[2]++;
  202. else chart1[3]++;
  203. };
  204. var runs = 10000;
  205. for (var j = 0; j < 10; j++) {
  206. chart1 = [0,0,0,0];
  207. for (var i = 0; i < runs; i++) rand1();
  208. var log = [];
  209. for (var k = 0; k < chart1.length; k++) {
  210. log[k] = Math.round(chart1[k] / runs * 100);
  211. }
  212. console.log(log);
  213. }
  214.  
  215. $scope.loading = false;
  216. $scope.trafficAverage0_20 = chart1[0]/100;
  217. $scope.trafficAverage20_40 = chart1[1]/100;
  218. $scope.trafficAverage40_60 = chart1[2]/100;
  219. $scope.trafficAverageAbove_60 = chart1[3]/100;
  220. }
  221. });
  222. }
  223.  
  224. });
  225.  
  226.  
  227.  
  228. }, 5000, 0);
  229.  
  230.  
  231.  
  232.  
  233.  
  234. // var isStart = false;
  235. // var isStop = false;
  236. // console.log("before startEventsControl");
  237. // $scope.startEventsControl = function () {
  238. // $scope.loading==true;
  239. // console.log("into startEventsControl");
  240. // if (isStart) {
  241. // isStart = false;
  242. // isStop = true;
  243. // document.getElementById("timerBtnId").innerHTML = "test1";//"<li id="timerBtnId"><a href="" ng-click="startEventsControl()">Start Event Listener</a></li>";
  244. // console.log("isStart finished");
  245. // return;
  246. // }
  247. // if (isStop) {
  248. // $interval.cancel($scope.realtimetrafficEventListener);
  249. // isStop = false;
  250. // $scope.loading==false;
  251. // document.getElementById("timerBtnId").innerHTML = "test2";//"<li id="timerBtnId"><a href="" ng-click="startEventsControl()">Start Event Listener</a></li>";//"<li id='timerBtnId' class='active'><a href='' ng-click='startEventsControl()'>Resume Event Listener</a></li>";
  252. // console.log("isStop finished");
  253. // } else {
  254. // isStop = true;
  255. // //document.getElementById("timerBtnId").innerHTML = "<li id=\"timerBtnId\">//<a href ng-click=\"startEventsControl()\">Stop Event Listener</a></li>";//"<li id='timerBtnId' class='active'><a href='' ng-click='startEventsControl()'>Start Event Listener</a></li>";
  256. // $("timerBtnId").addClass("active");
  257. // console.log("Resume finished");
  258. // }
  259. // };
  260.  
  261. }
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. })();
Advertisement
Add Comment
Please, Sign In to add comment