谷歌放置api许多过滤器类型Ex。:餐厅,咖啡厅

时间:2013-11-11 11:53:08

标签: google-maps-api-3

我正在尝试更改复选框的半径类别/类型过滤器,因此我将var类型更改为数组。

原始工作:

var type;
        for (var i = 0; i < document.controls.type.length; i++){
            if (document.controls.type[i].checked){
                type = document.controls.type[i].value;
            }
        }
    startBox.setBounds(map.getBounds());
        var search = {
        // keyword: 'comocomo', // not needed with the autocomplete / startBox
        bounds: map.getBounds()
        };
            if (type != 'establishment'){
                search.types = [ type ];
            }
    places.search(search, function(placesArr, status){

THE ARRAY不工作的人:编辑:

    var type=[];
for (var i = 0; i < document.controls.type.length; i++){
    if (document.controls.type[i].checked){  
        type.push(document.controls.type[i].value)
    }
}
startBox.setBounds(map.getBounds());
    var search = {
        bounds: map.getBounds()
    };

var quotedAndCommaSeparated = "'" + type.join("','") + "'";

alert(quotedAndCommaSeparated); // 'establishment','restaurant','lodging'

search.types = [ quotedAndCommaSeparated ];

我做了很多测试,但我看不出我做错了什么。地图甚至没有显示。

1 个答案:

答案 0 :(得分:0)

这意味着什么,对我来说看起来不是有效的Javascript:

var type[];

应该是

var type = [];

修复代码中的javascript错误,否则地图就不会显示。

更新

quotedAndCommaSeparated中的内容是"'a','b','c'"之类的字符串,看起来有点像数组的内容:['a','b','c']。但它不是一个数组,它只是一个字符串。如果你检查search.type数组的长度,我猜它等于1.

您可以做的是将字符串拆分为逗号以将其转换为数组:

search.types = quotedAndCommaSeparated.split(",");