谷歌地图添加监听器点击获取XML数据

google map addlistener onclick get xml data

本文关键字:获取 XML 数据 添加 监听器 谷歌地图      更新时间:2023-09-26

嗨,我在谷歌地图中使用addlistener有问题我无法从 xml 获取 html 值。始终返回 [对象元素]

   document.getElementById("infobox").innerHTML = html;

和 infowindow.setContent(html);完美工作

我知道我在上个月之前这样做,我不知道是 v3 版本还是这个。 但我以前这样做过!

或者,如果您知道获取数据的其他方法,请提供帮助!

从添加侦听器中的此代码

  var side_bar_html = " "; 
  var html = " "; 
  var gmarkers = []; 
  var map = null;

/

function createMarker(latlng, name, html) {
var contentString = html;

var marker = new google.maps.Marker({
    position: latlng,
    map: map,
    zIndex: Math.round(latlng.lat()*-100000)<<5,icon : 'mark.png'
    });
google.maps.event.addListener(marker, 'click', function() {
           document.getElementById("infobox").innerHTML = html;
    infowindow.setContent(html); 
    infowindow.open(map,marker);
    });

gmarkers.push(marker);
// add a line to the side_bar html
side_bar_html += '<a href="javascript:myclick(' + (gmarkers.length-1) + ')">' + name + '<'/a><br>';

}


function myclick(i) {
google.maps.event.trigger(gmarkers[i], "click");
}
   function initialize() {
   var myOptions = {
   zoom: 11,
center: new google.maps.LatLng(38.06106741381199,46.359741),
mapTypeControl: true,
mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
navigationControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
 }
  map = new google.maps.Map(document.getElementById("map_canvas"),
                            myOptions);
  // Read the data from example.xml
  downloadUrl("example.xml", function(doc) {
    var xmlDoc = xmlParse(doc);
    var markers = xmlDoc.documentElement.getElementsByTagName("marker");
    for (var i = 0; i < markers.length; i++) {
      // obtain the attribues of each marker
      var lat = parseFloat(markers[i].getAttribute("lat"));
      var lng = parseFloat(markers[i].getAttribute("lng"));
      var point = new google.maps.LatLng(lat,lng);
      var html = markers[i].getElementsByTagName("infowindow")[0]                  ;
      var label = markers[i].getAttribute("label");
      // create the marker

      var marker = createMarker(point,label,html);
    }

           document.getElementById("side_bar").innerHTML = side_bar_html;

    // put the assembled side_bar_html contents into the side_bar div
  });


   }

 var infowindow = new google.maps.

InfoWindow(
 { 
   size: new google.maps.Size(150,50)
 });

XML代码:

<?xml version="1.0"?>
<maincontent>
<markers>
<marker lat="37.95989919257204" lng="46.38427734375" label="way 1">
  <infowindow>station 1</infowindow>
</marker>
</markers>
</maincontent>

我发现问题是什么,只需将标签更改为属性!

 var html = markers[i].getAttribute("html"); 

但我不知道为什么!