【问题标题】:Show and Hide info window on Google Map Icons V3在 Google Map Icons V3 上显示和隐藏信息窗口
【发布时间】:2014-01-20 21:15:29
【问题描述】:

我有一个正在开发的网站,我希望他们可以选择点击钻机名称,然后它会显示信息窗口。图标会一直显示,但可以通过图标或侧边栏点击。

我试图解决这个问题,但我没有运气。

这里是源码中的测试链接。http://excalibur.3peaksmedia.com/excalibur-rig-locator.asp

任何帮助表示赞赏。

谢谢 迈克

function load() {
      var map = new google.maps.Map(document.getElementById("map"), {
        center: new google.maps.LatLng(53.705027, -110.470963),
        zoom: 6,
        mapTypeId: 'roadmap'
      });
      var infoWindow = new google.maps.InfoWindow;

      // Change this depending on the name of your PHP file
      downloadUrl("phpsqlajax_genxml3.php", function(data) {
        var xml = data.responseXML;
        var markers = xml.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < markers.length; i++) {
          var name = markers[i].getAttribute("name");
          var address = markers[i].getAttribute("address");
          var inventory = markers[i].getAttribute("inventory");
          var layout = markers[i].getAttribute("layout");
          var specs = markers[i].getAttribute("specs");
          var url = markers[i].getAttribute("url");
          var type = markers[i].getAttribute("type");
          var point = new google.maps.LatLng(
              parseFloat(markers[i].getAttribute("lat")),
              parseFloat(markers[i].getAttribute("lng")));
          var html = "<div class='balloon' style='width:190px; height:140px; font-family:Eau;'>" + "<b>" + name + "</b> <br>" + address + "<br>" + "> <a target=_blank href='/pdf/" + markers[i].getAttribute("inventory") + "'> Rig Inventory PDF</a> <br>" + "><a target=_blank href='/pdf/" + markers[i].getAttribute("layout") + "'> Rig Layout PDF</a> " + "<br>> <a target=_blank href='/pdf/" + markers[i].getAttribute("specs") + "'> Pump & Well Control Specs </a> <br>" + "> <a href='" + markers[i].getAttribute("friendlyurl") + "'>View Gallery</a>";
          var icon = customIcons[type] || {};
          var marker = new google.maps.Marker({
            map: map,
            position: point,
            icon: icon.icon,
            shadow: icon.shadow
          });
          bindInfoWindow(marker, map, infoWindow, html);
        }
      });
    }

    function bindInfoWindow(marker, map, infoWindow, html) {
      google.maps.event.addListener(marker, 'click', function() {
        infoWindow.setContent(html);
        infoWindow.open(map, marker);
      });
    }

【问题讨论】:

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


【解决方案1】:

您可以使用google.maps.event.trigger 触发标记上的点击事件(这将导致相关的信息窗口打开)。示例:

$("#sidebarLink1").click(function(){ 
    google.maps.event.trigger(marker1, 'click');
});

【讨论】:

  • bindInfoWindow之后添加代码。 #sidebarLink1 需要是您要打开信息窗口的侧边栏链接的 ID。现在,您的侧边栏链接只是p 标签。你需要给他们每个人一个唯一的id,你可以用它来绑定点击事件。
  • 列维,你能帮我解决这个问题吗?我还在挣扎。
  • 基本思想是这样的:当你生成你的侧边栏时,你想给每个侧边栏链接一个唯一的ID,用来将它与地图上的标记相关联。当您创建地图标记时,对于每个标记,您将绑定到关联的侧边栏链接点击事件,并使用它来触发给定标记上的点击事件,这将导致标记信息窗口打开。
  • 我很难理解如何将它们组合在一起。我对此并不陌生,并从您的建议中尝试了一些方法,但似乎没有任何效果。我在下面列出了我的完整代码作为错误的答案。但它显示了我如何设置钻机列表。我将如何指示每个装备的 onclick 事件并显示 javascript?希望这是有道理的。
  • 能否根据我的项目给出一些示例代码?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-06
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
  • 1970-01-01
  • 2011-02-26
  • 1970-01-01
相关资源
最近更新 更多