0

虽然我在 Gmapv2 中得到了这个工作..版本 3 被证明有点棘手。

我想将其他属性从 XML 文件添加到 infobubble 中,但是无论我尝试添加它们,它都会破坏点击标记?

    <script type="text/javascript">
    var infowindow;
    var map;
    function initialize() {

        var myLatlng = new google.maps.LatLng(54.046575, -2.8007399);
        var myOptions = {
          zoom: 13,
          center: myLatlng,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
        downloadUrl("http://www.xxxxxx.com/xxxxx.com/server/venue_output.php",         function(data) {
          var markers = data.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var latlng = new         google.maps.LatLng(parseFloat(markers[i].getAttribute("latitude")),
                                parseFloat(markers[i].getAttribute("longitude")));
                                var event_name =         markers[i].getAttribute("event_title");
      var event_start = markers[i].getAttribute("event_start");
      var event_link = markers[i].getAttribute("event_link");    
            var marker = createMarker(markers[i].getAttribute("event_name"),latlng);
           }
         });
      }

      function createMarker(name, latlng) {
        var marker = new google.maps.Marker({position: latlng, map: map, bounce:true, icon : new google.maps.MarkerImage('http://www.gigizmo.com/gigizmo.com/app/images/marker.png')});
        google.maps.event.addListener(marker, "click", function() {
          if (infowindow) infowindow.close();
          infowindow = new google.maps.InfoWindow({content: "<b>" + name + "</b>" });
          infowindow.open(map, marker);
        });
        return marker;
      }

    </script>

如何将我的 javascript 值(例如 event_link)添加到此标记窗口?

    infowindow = new google.maps.InfoWindow({content: "<b>" + name + "</b>" });
4

1 回答 1

0

你可以试试这个代码片段,提供在:这个例子

function createMarker(..){

        eval(" infowindow"+time+" = new google.maps.InfoWindow({ content: pt.latLng.toString() });");
        eval(" marker"+time+" = new google.maps.Marker({ position: pt.latLng, map: map });");
        eval(" google.maps.event.addListener(marker"+time+", \"click\", function() { infowindow"+time+".open(map, marker"+time+"); });");
        time++;
//rest of your code
}

另外,谈到我以前的经验:确保您的 XML 文件不包含换行符。特别是作为您设置为“名称”变量的值。

于 2013-02-23T16:00:30.997 回答