Commit 08c8d935685c1e4fc72556e7ce5741a5fc63a1c0

Authored by Oleg Kolesnik
Committed by GitHub
1 parent 39ff12fe

UI:fix. Map widget2 (#2413)

preserves previous data on map if no data for current date range received
@@ -584,51 +584,53 @@ export default class TbMapWidgetV2 { @@ -584,51 +584,53 @@ export default class TbMapWidgetV2 {
584 var latData = data[location.latIndex].data; 584 var latData = data[location.latIndex].data;
585 var lngData = data[location.lngIndex].data; 585 var lngData = data[location.lngIndex].data;
586 var lat, lng, latLng; 586 var lat, lng, latLng;
587 - if (latData.length > 0 && lngData.length > 0) {  
588 - if (tbMap.drawRoutes) {  
589 - // Create or update route  
590 - var latLngs = [];  
591 - for (var i = 0; i < latData.length; i++) {  
592 - lat = latData[i][1];  
593 - lng = lngData[i][1];  
594 - if (angular.isDefined(lat) && lat != null && angular.isDefined(lng) && lng != null) {  
595 - latLng = tbMap.map.createLatLng(lat, lng);  
596 - if (i == 0 || !latLngs[latLngs.length - 1].equals(latLng)) {  
597 - latLngs.push(latLng);  
598 - }  
599 - }  
600 - }  
601 - if (latLngs.length > 0) {  
602 - var markerLocation = latLngs[latLngs.length - 1];  
603 - createOrUpdateLocationMarker(location, markerLocation, dataMap);  
604 - }  
605 - if (!location.polyline) {  
606 - location.polyline = tbMap.map.createPolyline(latLngs, location.settings);  
607 - tbMap.polylines.push(location.polyline);  
608 - locationChanged = true;  
609 - } else {  
610 - var prevPath = tbMap.map.getPolylineLatLngs(location.polyline);  
611 - if (!prevPath || !arraysEqual(prevPath, latLngs)) {  
612 - tbMap.map.setPolylineLatLngs(location.polyline, latLngs);  
613 - locationChanged = true;  
614 - }  
615 - }  
616 - } else {  
617 - // Create or update marker  
618 - lat = latData[latData.length - 1][1];  
619 - lng = lngData[lngData.length - 1][1]; 587 +
  588 + if (tbMap.drawRoutes) {
  589 + // Create or update route
  590 + var latLngs = [];
  591 + for (var i = 0; i < latData.length; i++) {
  592 + lat = latData[i][1];
  593 + lng = lngData[i][1];
620 if (angular.isDefined(lat) && lat != null && angular.isDefined(lng) && lng != null) { 594 if (angular.isDefined(lat) && lat != null && angular.isDefined(lng) && lng != null) {
621 latLng = tbMap.map.createLatLng(lat, lng); 595 latLng = tbMap.map.createLatLng(lat, lng);
622 - if (createOrUpdateLocationMarker(location, latLng, dataMap)) {  
623 - locationChanged = true; 596 + if (i == 0 || !latLngs[latLngs.length - 1].equals(latLng)) {
  597 + latLngs.push(latLng);
624 } 598 }
625 } 599 }
626 } 600 }
627 - if (location.marker) {  
628 - updateLocationStyle(location, dataMap); 601 + if (latLngs.length > 0) {
  602 + var markerLocation = latLngs[latLngs.length - 1];
  603 + createOrUpdateLocationMarker(location, markerLocation, dataMap);
  604 + } else if (location.marker) {
  605 + tbMap.map.removeMarker(location.marker);
  606 + delete location.marker;
  607 + }
  608 + if (!location.polyline) {
  609 + location.polyline = tbMap.map.createPolyline(latLngs, location.settings);
  610 + tbMap.polylines.push(location.polyline);
  611 + locationChanged = true;
  612 + } else {
  613 + var prevPath = tbMap.map.getPolylineLatLngs(location.polyline);
  614 + if (!prevPath || !arraysEqual(prevPath, latLngs)) {
  615 + tbMap.map.setPolylineLatLngs(location.polyline, latLngs);
  616 + locationChanged = true;
  617 + }
  618 + }
  619 + } else {
  620 + // Create or update marker
  621 + lat = latData[latData.length - 1][1];
  622 + lng = lngData[lngData.length - 1][1];
  623 + if (angular.isDefined(lat) && lat != null && angular.isDefined(lng) && lng != null) {
  624 + latLng = tbMap.map.createLatLng(lat, lng);
  625 + if (createOrUpdateLocationMarker(location, latLng, dataMap)) {
  626 + locationChanged = true;
  627 + }
629 } 628 }
630 -  
631 } 629 }
  630 + if (location.marker) {
  631 + updateLocationStyle(location, dataMap);
  632 + }
  633 +
632 } 634 }
633 return locationChanged; 635 return locationChanged;
634 } 636 }