0

这是我要完成的工作:

当您单击标记时,通常会显示在气泡中的信息会显示在地图外部的 DIV 中,在右侧的部分中,并具有自己的格式。

我不确定该怎么做。我在这里尝试了这些建议,但那是从 2007 年开始的,我认为 GDownload() 函数现在已被弃用。或者至少,我在 Google Developer 网站上的文档和 API 列表中找不到任何参考。

我所知道的是,我需要以某种方式将以下内容转换为 DIV。

downloadUrl("genxml.php", function(data) {
  var xml = data.responseXML;
  var locations = xml.documentElement.getElementsByTagName("marker");
  for (var i = 0; i < locations.length; i++) {
    var name = locations[i].getAttribute("name");
    var address = locations[i].getAttribute("address");
    var type = locations[i].getAttribute("type");
    var point = new google.maps.LatLng(
        parseFloat(locations[i].getAttribute("lat")),
        parseFloat(locations[i].getAttribute("lng")));
    var html = "<div id=loc> <div class=loc-name>" + name + "</div> <br/>" + address + "<br/>" + "<div class=loc-type>" + type + "</div></div>";
    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);
  }
});
}
 document.getElementById("loc-info").innerHTML = html;

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

谁能指出我正确的方向?

4

1 回答 1

2

只需更改创建信息窗口的代码即可设置 div 的内容:

 function bindInfoWindow(marker, map, infoWindow, html) {
   google.maps.event.addListener(marker, 'click', function() {
     document.getElementById('loc-info').innerHTML = html;
   });
 }

编辑:您还想删除该行(您之前的那一行function bindInfoWindow),它什么都不做,因为html此时不存在:

document.getElementById("loc-info").innerHTML = html;
于 2012-09-22T04:02:18.283 回答