我有JS脚本文件,我从后端获取标记并初始化地图
这是代码:
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();
} //map initialization
// get Driving and show on layer
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(moment($(this).val()).format('DD/MM/YYYY'));
var endValue = $('#endDate').val(moment($(this).val()).format('DD/MM/YYYY'));
map.markers = [];
map.markers.push(marker);
console.log(map.markers);
$.each(map.markers, function (i, marker) {
if (marker.date === startValue)
marker.setVisible(false);
else
marker.setVisible(true);
});
});
在控制台中,我看到了所有标记
但我在控制台中出现此错误:
未捕获的TypeError:marker.setVisible不是函数
我如何解决?
答案 0 :(得分:1)
您应该使用setMap()而不是setVisible()
if (marker.date === startValue)
marker.setMap(null);
else
marker.setMap(map);
显然,地图对象必须通过点击功能
进行访问