Javascript 显示类别中的标记并在单击时隐藏其余标记

Javascript 显示类别中的标记并在单击时隐藏其余标记,javascript,jquery,google-maps,google-maps-api-3,Javascript,Jquery,Google Maps,Google Maps Api 3,我有一个分类清单 旅馆 餐馆 单击hotels,显示具有此类别的标记。然后点击餐厅显示餐厅类别中的标记。当我点击餐厅时,如何隐藏其他标记 // == hide all markers of a particular category, and ensures the checkbox is checked == function hide(category) { for (var i=0; i<gmarkers.length; i++) { if (gmar

我有一个分类清单

  • 旅馆
  • 餐馆
单击hotels,显示具有此类别的标记。然后点击餐厅显示餐厅类别中的标记。当我点击餐厅时,如何隐藏其他标记

 // == hide all markers of a particular category, and ensures the checkbox is checked ==
  function hide(category) {

    for (var i=0; i<gmarkers.length; i++) {
      if (gmarkers[i].mycategory == category) {
        gmarkers[i].setVisible(false);
      }
    }
  }


  // == show all markers of a particular category, and ensures the checkbox is cleared ==
  function show(category) {
    for (var i=0; i<gmarkers.length; i++) {
      if (gmarkers[i].mycategory == category) {
        gmarkers[i].setVisible(true);
      }

    }

    // == close the info window, in case its open on a marker that we just hid
    infowindow.close();
  }

  // == a checkbox has been clicked ==
  function boxclick(box,category) {
    if (box.checked) {
      hide(category);


    } else {
      show(category);
    }
    // == rebuild the side bar
    makeSidebar();
  }
/==隐藏特定类别的所有标记,并确保选中复选框==
函数隐藏(类别){

对于(var i=0;i,您只需将它们的映射设置为
null

function show(category) {

  for (var i=0; i<gmarkers.length; i++) {
    if (gmarkers[i].mycategory == category) {
      gmarkers[i].setMap(mymap);
    }
    else {
      gmarkers[i].setMap(null);
    }
  }
}

function hide(category) {

  for (var i=0; i<gmarkers.length; i++) {
    if (gmarkers[i].mycategory == category) {
      gmarkers[i].setMap(null);
    }
    else {
      gmarkers[i].setMap(mymap);
    }
  }
}
功能显示(类别){

对于(var i=0;i我找到了一个简单的解决方案:)

函数显示隐藏(类别){

对于(var i=0;i您的类别是什么?如果您有一个Javascript中公开的类别列表,您可以在
框中遍历它,单击
并只
隐藏
category
参数不匹配的所有内容。类别被添加到标记中,如
show
函数中,以替换
gmarkers[i].setVisible(true);
function showhide(category) {
    for (var i=0; i<gmarkers.length; i++) {
  if (gmarkers[i].mycategory == category) {
    gmarkers[i].setVisible(true);
  } else {
    gmarkers[i].setVisible(false);
  }
}

    makeSidebar();
  }