I have a script that makes a database call and then filters the results. After filtering it pushes it to an array and shows it on a map.
Here is my function:
function getDriving() {
pointArray.length = 0;
markers.length = 0;
var todayval = new Date();
var url = $('#map').data('request-url2');
$.getJSON(url,
function (data) {
$.each(data,
function (i, item) {
markers.push({
'location': new google.maps.LatLng(item.Latitude, item.Longitude),
'map': map,
'weight': item.Speed,
'radius': 10,
'date': item.CurrentDateTime,
'imei': item.Imei
});
});
imei = parseInt($('#selectVehicles').val());
var startValue = $('#startDate').val().split("/");
var endValue = $('#endDate').val().split("/");
var valDateStart = new Date(startValue[2], startValue[1] - 1, startValue[0]);
var valDateEnd = new Date(endValue[2], endValue[1] - 1, endValue[0]);
filtered = markers.filter(function (marker) {
var getDate = marker.date.match(/\d/g).join('');
var markerDate = new Date(parseFloat(getDate));
return ((markerDate >= valDateStart && markerDate <= valDateEnd) && marker.imei === imei);
});
var pointArray = new google.maps.MVCArray(filtered);
heatmap = new google.maps.visualization.HeatmapLayer({
data: pointArray
});
heatmap.setMap(map);
});
};
It works well, but I want to know if everything is okay with the code or how I can improve it.