0

我希望能够使用 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 坐标。我这样做是因为他们的信息是相互关联的。

以前有人做过这样的事情吗?

4

0 回答 0