2012-05-16 57 views
1

我在谷歌地图中有这些标记。我需要能够显示或隐藏他们根据数组的'ID'部分使用复选框切换&关闭他们。谷歌地图API,显示和隐藏标记根据ID

var places = [ 
    { 
    "title": "USA", 
    "description": "This is the united states", 
    "position": [ 39.639538,-104.414062 ], 
    "id": "america" 
    }, 
    { 
    "title": "China", 
    "description": "This is the peoples republic of china", 
    "position": [ 34.016242,103.359375 ], 
    "id": "asia" 
    } 
] 

我已经显示使用。每()methid的标记,我已经使用下面的jQuery来对它们进行切换和关闭,根据其ID尝试,但标记似乎忽略它。任何帮助将不胜感激。

var showAmerica = $("#showAmerica"); 
    google.maps.event.addDOMListener(showAmerica, 'click', function(){ 
     $('#america').toggle(); 
}); 

HTML的复选框

<input type="checkbox" value="fund" id="showAmerica" /> 

回答

1

你的代码引用jQuery对象,而不是DOM元素。很容易获得实际的DOM元素,这是DOM监听器期望的参数。只要在第一个参数添加.get(0)到showAmerica变量:

var showAmerica = $("#showAmerica"); 
    google.maps.event.addDOMListener(showAmerica.get(0), 'click', function(){ 
     $('#america').toggle(); 
}); 

另外,建议你观看这部影片,using DevTools with the Google Maps API

1

这是什么 “id” 属性? MarkerOptions不包含它。

无论如何,要与Google Maps对象进行交互,您需要通过gMaps API而不是jQuery。

下面是一些例子代码,没有经过测试的,但它应该给你一个想法:

var markers = { 
    "america" : [ new google.maps.Marker({ "display": false, "position": .... }) ], 
    "china" : [ new google.maps.Marker({ "display": false, "position": ... }) ] 
}; 

$('#americaButton').click(function() { 
    for (var i = 0; i< markers["america"].length; i++) 
     markers["america"][i].setDisplay(true); 
}); 
相关问题