我試圖讓標記通過選擇框在地圖上過濾。過濾器地圖標記不一致
在每個標記數組上都有一個類別對象,該類別對象具有可以與用戶選擇的內容匹配的類別數組。
選擇框
<select id="type" onchange="filterMarkers(this.value);">
<option value="">Please select category</option>
<option value="red">Red</option>
<option value="blue">Blue</option>
<option value="green">Green</option>
<option value="orange">Orange</option>
</select>
過濾功能
filterMarkers = function (category) {
for (var i = 0; i < markers1.length; i++) {
marker = gmarkers1[i];
for(var j = 0; j < marker.category.length; j++) {
console.log(marker.category[j]);
// If is same category or category not picked
if (marker.category[j] == category || category.length === 0) {
marker.setVisible(true);
}
// Categories don't match
else {
marker.setVisible(false);
}
}
}
}
但它過濾後,它沒有顯示某些標記,如綠色類別,而不是所有的爲紅色類別顯示。
但是,當我console.log標記變量在循環中,它返回適當的匹配,但似乎setVisible不會在所有的標記上設置它。
JS小提琴: https://jsfiddle.net/0v7yv6w8/