地图根据可见内容显示不同的点

时间:2016-07-21 08:45:24

标签: javascript jquery google-maps google-maps-api-3

我有90%的意愿:

https://jsfiddle.net/ruwez7tq/

我想要做的就是根据哪个列表可见来更改显示的绘制点。目前只能看到第一个列表(“条形”)点。即使这是defualt页面加载点,当您单击时,例如“餐馆”,编号点应更新到这些位置。

这是我所拥有的JS,用于绘制点并更改所点击的任何颜色(当点击点或列表项时):

for (i = 0; i < bars.length; i++) {
    marker = new google.maps.Marker({
        position: new google.maps.LatLng(bars[i][1], bars[i][2]),
        map: map,
        label: String(bars[i][3]),
    });
    gmarkers.push(marker);
    google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
            infowindow.setContent(bars[i][0]);
            infowindow.open(map, marker);
            for (j = 0; j < gmarkers.length; j++) {
                gmarkers[j].setIcon("");
            }
            marker.setIcon("imgs/green.png");
        }
    })(marker, i));
}

$('#bars-list li').each(function(i, e) {
    $(e).click(function(i) {
        return function(e) {
            google.maps.event.trigger(gmarkers[i], 'click');
        }
    }(i));
});

我有90%的意愿:

https://jsfiddle.net/ruwez7tq/

我想要做的就是根据哪个列表可见来更改显示的绘制点。目前只能看到第一个列表(“条形”)点。即使这是defualt页面加载点,当您单击时,例如“餐馆”,编号点应更新到这些位置。

这是我所拥有的JS,用于绘制点并更改所点击的任何颜色(当点击点或列表项时):

我正在尝试弄清楚如何将其推广到每个列表,以及如何利用它来更新地图,具体取决于哪个列表可见?!

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

像这样的事情(确保你把功能和全局变量放在窗口范围内)

for javascript

function hide_show( category ){
  for (i = 0; i < amenities.length; i++) {
     gmarkers[i].setMap(null);
      if amenities[3] = category {
        gmarkers[i].setMap(map);
      }
  }
}

for html

<div id="bars-list" class="lists" onclick"hide_show('bars');">