You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

133 lines
5.3 KiB

  1. 'use strict';
  2. angular.module('app.main', ['ngRoute', 'leaflet-directive'])
  3. .config(['$routeProvider', function($routeProvider) {
  4. $routeProvider.when('/main', {
  5. templateUrl: 'views/main/main.html',
  6. controller: 'MainCtrl'
  7. });
  8. }])
  9. .controller('MainCtrl', function($scope, $http, leafletMapEvents) {
  10. //get mcc and mnc data
  11. $scope.mcc=[];
  12. $http.get('mcc-mnc-list.json')
  13. .then(function(data) {
  14. console.log('data success');
  15. console.log(data);
  16. $scope.mcc = data.data;
  17. }, function(data) {
  18. console.log('data error');
  19. });
  20. //map
  21. $scope.center = {
  22. lat: 41.38014146592283,
  23. lng: 2.1773743629455566,
  24. zoom: 17
  25. };
  26. $scope.bounds = {};
  27. $scope.markers = [];
  28. $scope.paths = [];
  29. $scope.tiles = {
  30. //url: "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
  31. url: "http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png",
  32. // més estils https://leaflet-extras.github.io/leaflet-providers/preview/
  33. options: {
  34. attribution: '<a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
  35. }
  36. };
  37. $scope.events = {
  38. map: {
  39. enable: ['dragend'],
  40. logic: 'emit'
  41. }
  42. };
  43. $scope.eventDetected = "No events yet...";
  44. console.log($scope.eventDetected);
  45. $scope.$on('leafletDirectiveMap.map-simple-map.dragend', function(event) {
  46. $scope.eventDetected = "Dragend";
  47. console.log($scope.eventDetected);
  48. console.log($scope.center);
  49. if ($scope.center.zoom > 16) {
  50. $scope.getCells($scope.center.lat, $scope.center.lng);
  51. }
  52. });
  53. var antennaIcon = {
  54. iconUrl: 'img/antenna.png',
  55. iconSize: [50, 50], // size of the icon
  56. iconAnchor: [25, 50], // point of the icon which will correspond to marker's location
  57. };
  58. var markX = {
  59. iconUrl: 'img/markX.png',
  60. iconSize: [50, 50], // size of the icon
  61. iconAnchor: [25, 50], // point of the icon which will correspond to marker's location
  62. };
  63. var markY = {
  64. iconUrl: 'img/markY.png',
  65. iconSize: [50, 50], // size of the icon
  66. iconAnchor: [25, 50], // point of the icon which will correspond to marker's location
  67. };
  68. $scope.getCells = function(lat, lng) {
  69. $scope.status = "getting data";
  70. var xLat = lat + 0.002;
  71. var xLng = lng - 0.004;
  72. var yLat = lat - 0.002;
  73. var yLng = lng + 0.004;
  74. console.log(xLat + ", " + xLng);
  75. console.log(yLat + ", " + yLng);
  76. //$http.get(urlapi + 'cells/43.73429/7.41841/43.73210/7.42196')
  77. $http.get(urlapi + 'cells/' + xLat + '/' + xLng + '/' + yLat + '/' + yLng)
  78. .then(function(data) {
  79. console.log('data success');
  80. console.log(data);
  81. $scope.cells = data.data;
  82. //draw markers on map
  83. $scope.markers = [];
  84. $scope.markers.push({
  85. lat: Number(xLat),
  86. lng: Number(xLng),
  87. icon: markX
  88. });
  89. $scope.markers.push({
  90. lat: Number(yLat),
  91. lng: Number(yLng),
  92. icon: markY
  93. });
  94. for (var i = 0; i < $scope.cells.length; i++) {
  95. /*var company ="";
  96. company = $scope.mcc.filter(function(obj){
  97. return obj.mcc==$scope.cells[i].mcc && obj.mnc == $scope.cells[i].net;
  98. });*/
  99. var company = "";
  100. for(var k in $scope.mcc){
  101. if($scope.mcc[k].mcc==$scope.cells[i].mcc && $scope.mcc[k].mnc == $scope.cells[i].net) {
  102. company = $scope.mcc[k];
  103. }
  104. }
  105. console.log(company);
  106. $scope.markers.push({
  107. lat: Number($scope.cells[i].lat),
  108. lng: Number($scope.cells[i].lon),
  109. message: "lat:" + $scope.cells[i].lat + ", lon:" + $scope.cells[i].lon +"<br> mcc:"+ $scope.cells[i].mcc + ", mnc:" + $scope.cells[i].net + "<br>" + company.brand,
  110. icon: antennaIcon
  111. });
  112. }
  113. /*$scope.center = {
  114. lat: (Number($scope.cells[0].lat) + Number($scope.cells[0].lat)) / 2,
  115. lng: (Number($scope.cells[0].lon) + Number($scope.cells[0].lon)) / 2,
  116. zoom: 16
  117. };*/
  118. $scope.status = "data charged";
  119. }, function(data) {
  120. console.log('data error');
  121. });
  122. };
  123. $scope.getCells(41.38014146592283, 2.1773743629455566);
  124. $scope.status = "getting data";
  125. });