jQuery / Javascript:Google Maps:如何在地图上切换多个图钉?

时间:2014-08-20 16:37:41

标签: javascript jquery html google-maps

我有一个我希望能够在地图上打印的位置数据库。理想情况下,每个要切换的位置都应该有一个带有多个引脚的地图。因此,单击位置X的按钮,它将显示在地图上。单击位置Y的按钮,它会在同一地图上显示 。再次点击X,隐藏地图

目前我已经拥有它所以我点击X并且地图以X点为中心重新绘制。

以下是每个按钮的HTML:

<input type='button' data-lat='38.89864400' data-long='-77.05283400'
              data-when='20 Aug at 2:00am' value='Location X' class='click' />

我使用的jQuery是:

jQuery(document).ready(

    function initialize() {

        jQuery("input.click").click(function() {
            showOnMap(jQuery(this).data('lat'), jQuery(this).data('long'), jQuery(this).data('when'));
        });
    }
);

function showOnMap(lat, long, message) {

    var myLatlng = new google.maps.LatLng(lat, long);
    var mapOptions = {
        zoom: 13,
        center: myLatlng
    }
    var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

    var marker = new google.maps.Marker({
        position: myLatlng,
        map: map,
        title: message
    });

    google.maps.event.addDomListener(window, 'load', showOnMap);
}

有没有一种简单的方法可以切换到我想要的东西?我已经搜索了一段时间,但似乎没有人在浏览器中询问这个用例,只是Android(我没做过)。

谢谢!

1 个答案:

答案 0 :(得分:0)

如何隐藏/显示标记有一个example in the documentation。简而言之,标记是:

    通过将地图设置为null 来隐藏
  • 通过将其地图设置为map
  • 来显示

为此,您需要单独访问每个标记。如果您有一定数量的位置,可以通过使用不同的名称命名它们(例如var markerLocationXvar markerLocationY等)。否则,标记需要存储在数组中。

假设您有一定数量的已知位置来切换标记,您的javascript代码可能如下所示:

function toggleMarker(markerName) {
  if (markerName.getMap() == null) {
    markerName.setMap(map);
  } else {
    markerName.setMap(null);
  }
}