Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //'use strict';
- (function () {
- angular.module('mapviewModule', [
- 'ngRoute', 'leaflet-directive','mapviewServiceModule', 'chieffancypants.loadingBar',
- ])
- .config(['$routeProvider', function ($routeProvider) {
- // $httpProvider.defaults.useXDomain = true;
- // delete $httpProvider.defaults.headers.common['X-Requested-With'];
- $routeProvider.when('/map', {
- templateUrl: 'templates/mapview/mapview.tpl.html',
- controller: 'mapviewController'
- });
- }])
- .controller("mapviewController", mapviewController)
- mapviewController.$inject = ['$scope', '$http','$interval','$sce','$window','cfpLoadingBar','mapviewService'];
- function mapviewController($scope, $http,$interval,$sce,$window,cfpLoadingBar,mapviewService) {
- // $httpProvider.defaults.useXDomain = true;
- // delete $httpProvider.defaults.headers.common['X-Requested-With'];
- $scope.start = function() {
- cfpLoadingBar.start();
- };
- $scope.complete = function () {
- cfpLoadingBar.complete();
- }
- var googleMapLayer = new L.Google('ROADMAP');
- var osmLayer = L.layerGroup([L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png')]);
- var allSensorsLayer = L.layerGroup([L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png')]);
- var sensorsInTheSameRoadLayer = L.layerGroup([L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png')]);
- var closestSensorsLayer = L.layerGroup([L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png')]);
- var markerClusterGroupVar = null;
- var baseMaps = {
- 'Google Roadmap': googleMapLayer
- };
- var overlayMaps = {
- 'All Sensors': allSensorsLayer,
- 'Sensors in the same road': sensorsInTheSameRoadLayer,
- 'Closest Sensors': closestSensorsLayer
- }
- var map = L.map('map', {
- center: [mapviewService.getDefaultLat(), mapviewService.getDefaultLng()],
- zoom: mapviewService.getDefaultZoom(),
- layers: [googleMapLayer, allSensorsLayer, sensorsInTheSameRoadLayer, closestSensorsLayer]
- });
- function parseLatitude(sensor) {
- var latitude = parseFloat(sensor
- ['http://vital-iot.eu/ontology/ns/hasLastKnownLocation']
- ['http://www.w3.org/2003/01/geo/wgs84_pos#lat']);
- return latitude;
- }
- function parseLongitude(sensor) {
- var longitude = parseFloat(
- sensor
- ['http://vital-iot.eu/ontology/ns/hasLastKnownLocation']
- ['http://www.w3.org/2003/01/geo/wgs84_pos#lon'] ||
- sensor
- ['http://vital-iot.eu/ontology/ns/hasLastKnownLocation']
- ['http://www.w3.org/2003/01/geo/wgs84_pos#long']);
- return longitude;
- }
- function parseLocationName(sensor) {
- var locationName =
- sensor
- ['http://www.w3.org/2000/01/rdf-schema#comment'];
- return locationName;
- }
- function parseSensorName(sensor) {
- var sensorName =
- sensor
- ['http://www.w3.org/2000/01/rdf-schema#label'];
- return sensorName;
- }
- function parseId(sensor) {
- var id = sensor['@id']
- .replace('http://', '')
- .replace(/:/g, '_')
- .replace(/\./g, '_')
- .replace(/\//g, '_')
- .replace(/-/g, '0');
- return id;
- }
- var markers = new L.MarkerClusterGroup();
- L.control.layers(baseMaps, overlayMaps).addTo(map);
- $scope.realtimetrafficEventListener = $interval(function () {
- $scope.start();
- $.ajax({
- url: "http://localhost:8080/vital-istanbul-demo-web/api/admin/syncSensorOrder",
- type: 'GET',
- dataType: "json",
- jsonp: 'callback',
- async: false,
- jsonpCallback: "onUserCompletesyncSensorOrder",
- success: function(result){
- // alert(Object.keys(result));
- //
- var allSensors = [];
- allSensors = result;
- // console.log("allSensors: "+allSensors);
- allSensorsLayer.clearLayers();
- if(markerClusterGroupVar!==null){
- markerClusterGroupVar.clearLayers();
- }
- if(markers!==null){
- markers.clearLayers();
- }
- for (var i = 0; i < result.length; i++) {
- var sensor = allSensors[i];
- if (parseLongitude(sensor) === NaN || parseLatitude(sensor) === NaN) {
- continue;
- }
- var geo = [parseLatitude(sensor), parseLongitude(sensor)];
- var marker = L.marker(geo,
- {icon: L.AwesomeMarkers.icon({icon: "font", prefix: 'fa', markerColor: sensor.color})})
- .bindPopup("Speed: " + sensor.speed + "<BR/>" + sensor.incidentMsg).openPopup();
- markerClusterGroupVar = allSensorsLayer.addLayer(markers.addLayer(marker));
- }
- map.addLayer(markers);
- $.ajax({
- url: "http://localhost:8080/vital-istanbul-demo-web/api/admin/getAllOrderedIncidents",
- type: 'GET',
- dataType: "json",
- jsonp: 'callback',
- jsonpCallback: "onUserCompletesAllOrderedIncidents",
- success: function(result){
- var allSensors = [];
- allSensors = result;
- console.log("allSensors.length: "+allSensors.length);
- var sensors = [];
- var count = 0;
- if (typeof $scope.scopedSensors !== 'undefined' &&
- $scope.scopedSensors[0]!== 'undefined' &&
- $scope.scopedSensors[0] !== null) {
- delete $scope.scopedSensors;
- }
- console.log("sensors: "+sensors);
- console.log("allSensors.length: "+allSensors.length);
- var velocityArr = [];
- for (var i = 0; i < allSensors.length; i++) {
- var sensor = allSensors[i];
- sensor['index'] = i;
- sensor['location'] = parseLocationName(sensor);
- sensor['name'] = parseSensorName(sensor);
- sensor['latitude'] = parseLatitude(sensor);
- sensor['longitude'] = parseLongitude(sensor);
- sensors.push(sensor);
- velocityArr.push(sensor.speed);
- count++;
- }
- $scope.trafficMaxSpeed = Math.max.apply( Math, velocityArr );
- $scope.scopedSensors = sensors;
- console.log("1) $scope.scopedSensors.length: "+$scope.scopedSensors.length);
- console.log("Total of sensors #"+count);
- $scope.goTo = function (lat, lng) {
- map.panTo(new L.LatLng(lat, lng));
- console.log(lat + ',' + lng)
- }
- var chart1;
- var rand1 = function() {
- if (Math.random() <= 0.25) chart1[0]++;
- else if (Math.random() <= 0.25) chart1[1]++;
- else if (Math.random() <= 0.25) chart1[2]++;
- else chart1[3]++;
- };
- var runs = 10000;
- for (var j = 0; j < 10; j++) {
- chart1 = [0,0,0,0];
- for (var i = 0; i < runs; i++) rand1();
- var log = [];
- for (var k = 0; k < chart1.length; k++) {
- log[k] = Math.round(chart1[k] / runs * 100);
- }
- console.log(log);
- }
- $scope.loading = false;
- $scope.trafficAverage0_20 = chart1[0]/100;
- $scope.trafficAverage20_40 = chart1[1]/100;
- $scope.trafficAverage40_60 = chart1[2]/100;
- $scope.trafficAverageAbove_60 = chart1[3]/100;
- }
- });
- }
- });
- }, 5000, 0);
- // var isStart = false;
- // var isStop = false;
- // console.log("before startEventsControl");
- // $scope.startEventsControl = function () {
- // $scope.loading==true;
- // console.log("into startEventsControl");
- // if (isStart) {
- // isStart = false;
- // isStop = true;
- // document.getElementById("timerBtnId").innerHTML = "test1";//"<li id="timerBtnId"><a href="" ng-click="startEventsControl()">Start Event Listener</a></li>";
- // console.log("isStart finished");
- // return;
- // }
- // if (isStop) {
- // $interval.cancel($scope.realtimetrafficEventListener);
- // isStop = false;
- // $scope.loading==false;
- // 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>";
- // console.log("isStop finished");
- // } else {
- // isStop = true;
- // //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>";
- // $("timerBtnId").addClass("active");
- // console.log("Resume finished");
- // }
- // };
- }
- })();
Advertisement
Add Comment
Please, Sign In to add comment