私はGetDriving()
データベースからデータを取得するメソッドを持っています。ここにコードは配列のプロパティがJS(asp.net)で定義されていません
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;
}
}
そして、私はそれのようなコントローラでそれを呼び出します。 JSファイルで
public JsonResult Driving()
{
var driving = repoEntities.GetDriving();
return Json(driving.ToArray(), JsonRequestBehavior.AllowGet);
}
私はそれらを表示し、このすべて大丈夫と。
ボタンをクリックしてフィルタリングします。ここで
は、スクリプトのコード
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
このエラーを取得するしかし、なぜ、どのようにこの問題を解決するために、私は理解していませんか?
map.markers.push(マーカー)であるとして、マーカーは何ですか?あなたのコードでは明確に定義されていません –
私のポスト@ IrfanTahirKheliを更新しました –