我写了以下代码:
for (var i=1; i < latitude.length; i++) {
var markerCenter = new google.maps.LatLng(latitude[i],longitude[i]);
var marker = new google.maps.Marker({
position: markerCenter,
animation: google.maps.Animation.BOUNCE
});
marker.setMap(map);
marker.setVisible(visible)
markers.push(marker);
addInfoWindow(marker,Location[i]);
}
function addInfoWindow(marker, message) {
var infoWindow = new google.maps.InfoWindow({
content: message
});
google.maps.event.addListener(marker, 'click', function () {
infoWindow.open(map, marker);
});
}
当用户选择或取消选中复选框时,相应的标记将根据其操作设置为可见。
function markerVisibility(check_box,lat,lon) {
var index;
for (var i = 1; i < latitude.length; i++) {
if (latitude[i] == lat && longitude[i] == lon) {
index=i-1;
break;
}
}
//User selects the check box to see the marker in Google Map
if (check_box.checked) {
markers[index].setVisible(true)
markers[index].setAnimation(google.maps.Animation.BOUNCE);
}
//User unselects the checkbox not to see the marker
else {
markers[index].setVisible(false)
}
}
代码工作正常。使用此代码,我必须单击标记才能看到内容。但是我需要在加载地图并指向标记时默认加载标记内容(没有任何点击或悬停)。
另一件事,如果我们设置标记仍设置为可见性“假”,它会显示标记内容。如何设置它的可见性?
请在JavaScript
中提出建议。
答案 0 :(得分:1)
只需删除infowindow的事件监听器,只需在创建它时立即打开它。
function addInfoWindow(marker, message) {
var infoWindow = new google.maps.InfoWindow({
content: message
});
infoWindow.open(map, marker);
}
此外,如果您想在切换标记的可见性时显示/隐藏该信息窗口,您可以执行以下操作:
function addInfoWindow(marker, message) {
var infoWindow = new google.maps.InfoWindow({
content: message
});
infoWindow.open(map, marker);
marker.infowindow = infoWindow;
}
function markerVisibility(check_box,lat,lon) {
...
if (check_box.checked) {
markers[index].setVisible(true);
marker.infowindow.open(map, marker);
}
else {
markers[index].setVisible(false);
marker.infowindow.close();
}
}