【问题标题】:hide/view a group of markers with gomap-plugin使用 gomap-plugin 隐藏/查看一组标记
【发布时间】:2012-02-08 07:15:46
【问题描述】:

我喜欢使用插件 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); 没有正常工作。

点击自行车的复选框,事件标记消失 - 但点击自行车复选框,自行车的标记应该消失!

怎么了?

【问题讨论】:

    标签: javascript google-maps jquery-plugins google-maps-markers


    【解决方案1】:

    知道了:)

    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)
    }
    

    【讨论】:

      【解决方案2】:

      更简单的是隐藏所有内容,只显示您需要的内容...来自 GoMap 示例的示例

      for (var i in $.goMap.markers) {
          $.goMap.showHideMarker($.goMap.markers[i], false);
      }
      $.goMap.showHideMarkerByGroup(group, true);
      

      【讨论】:

        【解决方案3】:

        如果您使用复选框来显示/隐藏组,您可以这样做(假设复选框的 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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-08-11
          • 2014-12-12
          • 2017-04-28
          • 1970-01-01
          • 1970-01-01
          • 2017-06-29
          • 2014-12-01
          相关资源
          最近更新 更多