Google maps api 3 谷歌按类型放置了许多过滤器,例如:餐馆、咖啡馆

Google maps api 3 谷歌按类型放置了许多过滤器,例如:餐馆、咖啡馆,google-maps-api-3,Google Maps Api 3,我试图更改复选框的radius类别/类型过滤器,因此我将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; }

我试图更改复选框的radius类别/类型过滤器,因此我将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){
var类型;
对于(变量i=0;i
阵列不工作的阵列:已编辑:

    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 ];
var类型=[];
对于(变量i=0;i

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

这意味着什么,在我看来不像是有效的Javascript:

var type[];
应该是

var type = [];
修复代码中的javascript错误,否则映射将不会显示

更新:

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

您可以在逗号上拆分字符串,将其转换为数组:

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

谢谢Duncan,这很有效。但是仍然没有成功地对许多类型进行筛选搜索。警报(quotedAndCommaSeparated);//给出了应该是正确的:“机构”、“餐厅”、“住宿”。如果我强制这样做:search.types=[“机构”、“餐厅”、“住宿”];//它可以工作,但里面的变量不起作用。我用一种方法更新了我的答案,将字符串转换为数组Hi Duncan,实际上,我要做的是将数组作为字符串传递。因此,长度变为22个字符。我认为这是正确的,因为如果我放置一个像“餐厅”、“住宿”这样的字符串,它可以工作。但仍然无法使它工作。我更新了不起作用的小提琴。我怀疑places服务是否希望像
'a','b'
这样的列表作为字符串而不是数组传递给它。我不确定你在干什么;
places
PlacesService
-
places=new google.maps.places.places服务(map)的一个实例
然后你做
places.search(…)
,但上没有搜索功能。nearbySearch、radarSearch或textSearch都可以使用,但您的HTML是什么样子的?您能提供一个JSFIDLE或指向显示问题的地图的链接吗?我将原始代码放在FIDLE中,但没有使其工作,这是FIDLE:这是原始代码:在名为“reallyDoSearch(){”的函数中必须执行的操作有一个javascript错误:
uncaughttypeerror:无法读取null fiddle.jshell.net/L922V/1/show/:172的属性“value”
Hi,您无法修复它吗?我用数组代码更新了fiddle,但仍然没有显示标记。新版本:我没有尝试修复它。