我喜欢使用插件gomap()在地图中隐藏/查看一组标记:http://www.pittss.lv/jquery/gomap/solutions/group.html
现在我意识到隐藏/只查看一个标记:
$(function() {
$("#map_canvas").goMap({
latitude: 46.839,
longitude: 9.285,
zoom: 15 ,
scaleControl: true,
maptype: 'ROADMAP',
markers: [{
latitude: 46.839,
longitude: 9.285,
id: 'biketour1',
group: 'bike',
icon: 'pic/Kategorien/icon_bike.png',
html: {
content: 'Das ist die Biketour1',
popup:false
}
},{
...
}
}],
});
});
$("#bike-check").click(function() {
$.goMap.showHideMarker('bike');
});
你能解释一下如何实现群组的隐藏/查看吗?我已经尝试过课了,但这不起作用......
的更新
$(".parentcheck").click(function() {
var group = $(this).attr("id");
switch (group) {
case "bike-check":
showhidemarker("bike");
break;
case "event-check":
//and so on
break;
}
});
/*! show / hiding markergroup
*
* @ groupid Group id string
* @ true Optional boolean to set the visibility to a specific value. If omitted, markers will toggle.
*/
function showhidemarker(groupid){
for (var i in $.goMap.markers) {
$.goMap.showHideMarker($.goMap.markers[i], false);
console.log("it works");
}
$.goMap.showHideMarkerByGroup(groupid, true);
}
这里是html(通过点击复选框,标记应该是否可见)
...
<ul>
<li class="checkbox">
<input id="bike-check" class="parentcheck" name="parentcheck" type="checkbox" checked="checked" value="Bike" />
<p>Bike</p>
</li>
<li class="checkbox">
<input id="event-check" class="parentcheck" type="checkbox" checked="checked" value="Events" />
<p>Events</p>
</li>
</ul>
...
问题是,这个方法:$ .goMap.showHideMarkerByGroup(groupid,true);
没有按预期工作。
通过单击自行车的复选框消除事件中的标记 - 但是通过单击复选框自行车,自行车上的标记应该消失!
有什么问题?
答案 0 :(得分:3)
得到了它:)
var categories = {
"bike-check": {
"groupID": "bike",
"isVisible": true
},
"event-check": {
"groupID": "event",
"isVisible": true
}
};
$(".parentcheck").click(function() {
var id = $(this).attr("id");
categories[ id ].isVisible = !categories[ id ].isVisible;
showhidemarker( categories[ id ].groupID,categories[ id ].isVisible );
});
function showhidemarker(groupid,show){
$.goMap.showHideMarkerByGroup(groupid, show)
}
答案 1 :(得分:2)
更容易隐藏所有内容,只显示你需要的内容......来自GoMap示例的样本
for (var i in $.goMap.markers) {
$.goMap.showHideMarker($.goMap.markers[i], false);
}
$.goMap.showHideMarkerByGroup(group, true);
答案 2 :(得分:2)
如果您使用复选框来显示/隐藏组,您可以这样做(假设复选框的ID为“NFLCheckbox”,组的名称为“NFLGroup”):
$("#NFLCheckbox").click(function () {
if ($('#NFLCheckbox').is(':checked')) {
$.goMap.showHideMarkerByGroup('NFLGroup', true)
} else {
$.goMap.showHideMarkerByGroup('NFLGroup', false)
}
});
有关详细信息,我在此处撰写了一篇文章:http://www.codeproject.com/Articles/690045/How-to-Display-and-Hide-Marker-Groups-in-Google-Ma