我有GetDriving()
方法从数据库中获取数据。这是代码
public List<Logging> GetDriving()
{
using (TraxgoDB ctx = new TraxgoDB())
{
var items = ctx.Logging.Where(x => x.Datatype == Datatype.Position).AsEnumerable().Select(
x => new Logging
{
Longitude = x.Longitude,
Latitude = x.Latitude,
Speed = x.Speed,
CurrentDateTime = x.CurrentDateTime
}
).ToList();
return items;
}
}
之后我在控制器中称它为它。
public JsonResult Driving()
{
var driving = repoEntities.GetDriving();
return Json(driving.ToArray(), JsonRequestBehavior.AllowGet);
}
在JS文件中,我展示了它们,并且这一切都没问题。
我想通过按钮点击来过滤它。
这是脚本代码
var map, heatmap;
var marker = [];
function initMap() {
map = new google.maps.Map(document.getElementById('map'),
{
zoom: 5,
center: { lat: 51.0742853, lng: 11.0294547 },
mapTypeId: 'roadmap'
});
var centerControlDiv = document.createElement('div');
var centerControlDiv2 = document.createElement('div');
var centerControl = new CenterControl(centerControlDiv, map);
var centerControl2 = new CenterControl1(centerControlDiv, map);
centerControlDiv.index = 1;
map.controls[google.maps.ControlPosition.TOP_CENTER].push(centerControlDiv);
getDriving();
}
function getDriving() {
var url = $('#map').data('request-url2');
$.getJSON(url,
function (data) {
$.each(data,
function (i, item) {
marker.push({
'location': new google.maps.LatLng(item.Latitude, item.Longitude),
'map': map,
'weight': item.Speed,
'radius': 10,
'date': item.CurrentDateTime
});
});
var pointArray = new google.maps.MVCArray(marker);
heatmap = new google.maps.visualization.HeatmapLayer({
data: pointArray
});
heatmap.setMap(map);
});
};
$('#filter').on('click',
function () {
var startValue = $('#startDate').val();
var endValue = $('#endDate').val();
var myDate = new Date(startValue);
console.log(myDate);
map.markers = [];
map.markers.push(marker);
//console.log(map.markers);
$.each(map.markers, function (i, marker) {
console.log(marker);
var getDate = marker.date.match(/\d/g).join(''); // "1508341846000"
var markerDate = new Date(parseFloat(getDate));
var valDate = new Date(startValue);
if (markerDate === valDate)
marker.setMap(null);
});
});
我收到此错误Uncaught TypeError: Cannot read property 'match' of undefined
但我不明白为什么以及如何解决这个问题?
答案 0 :(得分:-1)
替换
map.markers.push(marker);
使用
map.markers = map.markers.concat(marker);
最适合您的情况:
map.makers = marker;
,因为map.markers
为空