'use strict'; angular.module('ffhb') .controller('MapCtrl',function($state,$stateParams,$scope,store,config,leafletData){ var layerControl,geoLayer,nodeLayer,client24Layer,client5Layer; leafletData.getMap('globalmap').then(function(map) { layerControl = L.control.layers().addTo(map); map.setView([config.map.view.lat, config.map.view.lng],16); }); store.getGeojson.then(function(data){ leafletData.getMap('globalmap').then(function(map) { geoLayer = L.geoJson(data,config.map.geojson); layerControl.addOverlay(geoLayer,'Gelände'); geoLayer.addTo(map); }); }); function render(prom){ prom.then(function(data){ leafletData.getMap('globalmap').then(function(map) { if(nodeLayer!==undefined){ layerControl.removeLayer(nodeLayer); nodeLayer.clearLayers(); } if(client24Layer!==undefined){ layerControl.removeLayer(client24Layer); client24Layer.clearLayers(); } if(client5Layer!==undefined){ layerControl.removeLayer(client5Layer); client5Layer.clearLayers(); } nodeLayer = L.markerClusterGroup({maxClusterRadius:20}); client24Layer = L.heatLayer([],{max: config.map.heatMax.wifi24,radius:50,blur:25}); client5Layer = L.heatLayer([],{max: config.map.heatMax.wifi5,radius:50,blur:25}); Object.keys(data.merged).map(function(nodeid){ var node = data.merged[nodeid]; if(node.nodeinfo.location !== undefined && node.nodeinfo.location.latitude !== undefined && node.nodeinfo.location.longitude !== undefined){ var className = 'node'; if(node.flags && !node.flags.online){ className += ' offline'; } var wifi24='-',wifi5='-',ch24='-',ch5='-',tx24='-',tx5='-'; if(node.statistics && node.statistics.clients){ wifi24 = node.statistics.clients.wifi24; if(wifi24 < config.map.icon.warn.wifi24 && wifi24 > 0){ className += ' client24'; } else if(wifi24 < config.map.icon.crit.wifi24 && wifi24 >= config.map.icon.warn.wifi24){ className += ' client24-warn'; } else if(wifi24 >= config.map.icon.crit.wifi24){ className += ' client24-crit'; } wifi5 = node.statistics.clients.wifi5; if(config.map.icon.warn.wifi5 < 20 && wifi5 > 0){ className += ' client5'; } else if(wifi5 < config.map.icon.crit.wifi5 && wifi5 >= config.map.icon.warn.wifi5){ className += ' client5-warn'; } else if(wifi5 >= config.map.icon.crit.wifi5){ className += ' client5-crit'; } } var nodemarker = L.marker([node.nodeinfo.location.latitude, node.nodeinfo.location.longitude],{icon: L.divIcon({className: className})}); client24Layer.addLatLng([node.nodeinfo.location.latitude, node.nodeinfo.location.longitude, wifi24]); client5Layer.addLatLng([node.nodeinfo.location.latitude, node.nodeinfo.location.longitude, wifi5]); nodemarker.bindLabel(node.nodeinfo.hostname+'
Cl | Ch | Tx | |
---|---|---|---|
2.4G | '+wifi24+' | '+ch24+' | '+tx24+' |
5G | '+wifi5+' | '+ch5+' | '+tx5+' |