这是整个代码:
function initialize(){
var deutschland = new google.maps.LatLng(51,9);
var mapOptions = { zoom: 6,
center: deutschland,
streetViewControl: true,
scaleControl: true,
mapTypeControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP };
var map = new google.maps.Map(document.getElementById("map-container"),mapOptions);
var beaches = [
['Bondi Beach', 51, 9, 1],
['Coogee Beach', 52, 9, 1],
['Cronulla Beach', 51, 8, 2],
['Manly Beach',51.5, 9, 2],
['Maroubra Beach',52.5, 10, 2]
];
var markers = [];
var i, newMarker;
for (i = 0; i < beaches.length; i++) {
newMarker = new google.maps.Marker({
position: new google.maps.LatLng(beaches[i][1], beaches[i][2]),
map: map,
title: beaches[i][0]
});
newMarker.category = beaches[i][3];
newMarker.setVisible(true);
markers.push(newMarker);
}
}
function displayMarkers(category) {
var i;
for (i = 0; i < markers.length; i++) {
if (markers[i].category == category) {
if (markers[i].getVisible()) {
markers[i].setVisible(false); }
else { markers[i].setVisible(true); } } }
}
和:
<input type="button" value="Show Group 1" onclick="displayMarkers(1);"/>
<input type="button" value="Show Group 2" onclick="displayMarkers(2);"/>
请告诉markers'是如何定义'。也许你的定义失败了,或者'markers'还没有存在(异步定义),或者'markers'超出了'displayMarkers()'的范围。 – Teemu 2013-02-10 11:51:34
该教程没有为我写的工作,但问题不是“标记未定义”。 [固定版本](http://www.geocodezip.com/v3_SO_toggleCategories.html) - [使用displayMarkers函数的版本](http://www.geocodezip.com/v3_SO_toggleCategoriesA.html) – geocodezip 2013-02-10 16:17:16