我希望能够使用 3 个列表框过滤地图上的标记,每个列表框可能有多个选择。
我没有在网上找到任何关于过滤谷歌地图的内容,就像这个带有复选框的示例一样接近我想要的。
我从那里借了所有代码,除了show()
andhide()
函数,并为自己做了几个:
// grabs values of all selected items inside a listbox
// pushes them into an array and returns it.
// 'listbox' string parameter is mandatory
function grabSelectedItems(listbox) {
if(document.getElementById(listbox)){
var selectedOptions = [];
var listBoxInstitutions = document.getElementById(listbox);
for(var i = 0; i < listBoxInstitutions.options.length; i++) {
if(listBoxInstitutions.options[i].selected) {
selectedOptions.push(listBoxInstitutions.options[i].value);
}
}
return selectedOptions;
}
alert(listbox + " couldn't be found");
}
// uses 'grabSelectedItems()' to get selected values
// from multiple listboxes, puts the returned arrays into
// one, big array and returns it.
// accepts minimum 1 string parameter(mandatory) or more
// treating each parameter as the name of a listboxe
// to grab selected values from
function grabAllSelectedItems() {
if(arguments.length > 0) {
var allSelectedOptions = [];
for(var i = 0; i < arguments.length; i++) {
allSelectedOptions.push(grabSelectedItems(arguments[i]));
}
return allSelectedOptions;
}
alert("Please pass at least one string parameter");
}
现在我使用它在单击具有 id 的输入按钮时返回选定值的大数组filter
:
$(function() {
$("#filter").click(function() {
grabAllSelectedItems('listbox1', 'listbox2', 'listbox3');
});
});
但我现在卡住了,无法根据我在列表框中的选择来绘制标记。
我有一个包含所有数据的大 XML 文件,我想使用它根据我在列表框中选择的内容在地图上生成和绘制标记。所有标记都有 lat 和 lng 坐标,但这些标记还包含这些子标记,这些子标记也有自己的 lat 和 lng 坐标。我这样做是因为他们的信息是相互关联的。
以前有人做过这样的事情吗?