I-Skript, das Marker auf Heatmap zeigenWählen Sie Daten in Array zwischen Start- und Enddatum
Hier Skript
function getDriving() {
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
});
});
$.each(markers, function (i, marker) {
var getDate = marker.date.match(/\d/g).join('');
var markerDate = new Date(parseFloat(getDate));
console.log(markerDate);
if (markerDate.getDate() === todayval.getDate()) {
todaymarkersfiltered.push(marker);
}
});
var pointArray = new google.maps.MVCArray(todaymarkersfiltered);
console.log(pointArray);
heatmap = new google.maps.visualization.HeatmapLayer({
data: pointArray
});
heatmap.setMap(map);
});
};
In View habe ich startdate und EndDate
nun filtere ich nur durch Anfangsdatum.
Hier Skript
filtered.length = 0;
$('#filter').on('click',
function() {
heatmap.setMap(null);
var startValue = $('#startDate').val().split("/");
$.each(markers, function (i,marker) {
var getDate = marker.date.match(/\d/g).join('');
var markerDate = new Date(parseFloat(getDate));
var valDate = new Date(startValue[2], startValue[1] - 1, startValue[0]);
if (markerDate.getDate() === valDate.getDate() && (marker.imei === imei || imei === null)) {
filtered.push(marker);
}
});
var pointArray = new google.maps.MVCArray(filtered);
console.log(pointArray);
heatmap = new google.maps.visualization.HeatmapLayer({
data: pointArray
});
heatmap.setMap(map);
}); //filtering by date and imei code of device
Aber wie kann ich Daten zwischen Start- und Enddatum filtern.
So zum Beispiel habe ich Startdatum 11/14/2017 und Enddatum 16.11.2017. Ich muss alle Daten zeigen, wo markerDate
in diesem Bereich ist. Enddaten werden ebenfalls von der Eingabe übernommen. var endValue = $('#endDate').val().split("/");
Vielen Dank für Ihre Hilfe.
Sie bedeuten von statt schreiben '$ .each (Marker-Funktion (i, Marker) {var getDate = marker.date.match (/ \ d/g) .join (''); var markerDate = neues Datum (parseFloat (getDate)); var valDate = neues Datum (startValue [2], startValue [1] - 1, startValue [0]) ; if (markerDate.getDate() === valDate.getDate() && (marker.imei === imei || imei === null)) { filtered.push (marker); } }); '? –
@ S. E Ja, das ist es. Es sollte es automatisch filtern. –
in Ordnung. Thanks, wird es versuchen –