2014-01-22 185 views
-1

我需要在地图上显示标记,并为每个标记显示一些带有一些信息的弹出窗口。 这里我的代码:Google地图和地图上的标记

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
    var createMap = function() { 
     var address = document.getElementById("address").value; 
     var geocoder = new google.maps.Geocoder(); 
     geocoder.geocode({'address': address}, function(results,status){ 
      if (status == google.maps.GeocoderStatus.OK) { 
       var options = { 
        zoom: 12, 
        center: results[0].geometry.location, 
        mapTypeId: google.maps.MapTypeId.ROADMAP 
       }; 
       var map = new google.maps.Map(document.getElementById('map'), options); 
       setMarkers(map, sites); 
      } 
      else { 
       alert("Problema nella ricerca dell'indirizzo: " + status); 
      } 
     }); 
    } 

    //Aggiungo i marker alla mappa 
    function setMarkers(map, markers) { 
     for (var i = 0; i < markers.length; i++) { 
      var sites = markers[i]; 
      var siteLatLng = new google.maps.LatLng(sites[1], sites[2]); 
      var marker = new google.maps.Marker({ 
       position: siteLatLng, 
       map: map, 
       title: sites[0], 
       zIndex: sites[3], 
       html: "<b>"+sites[0]+"</b><br>"+sites[4] 
      }); 

      google.maps.event.addListener(marker, "click", function() {    
       infowindow.setContent(this.html); 
       infowindow.open(map, this); 
      }); 
     } 
    } 

    //Elenco dei marcatori da aggiungere 
    var sites = [[ 'Veterinari Associati', 45.448405,9.19823 , 1 , 'Via Palladio 4 - 20100 Milano (MI)'],]; 


    window.onload = createMap; 
</script> 
<input id="address" type="hidden" value="Milan"> 
<div id="map" style="width:345px; height:306px;"></div> 

一切正常,标记的位置,但是当我点击了市场上弹出doen't显示出来。 我无法理解问题出在哪里......

+0

我不认为this.html == marker.html的 –

+0

可能重复[谷歌地图JS API V3 - 简单多个标记示例] (http://stackoverflow.com/questions/3059044/google-maps-js-api-v3-simple-multiple-marker-example) – geocodezip

回答

2

你力intialise信息窗口,试试这个

google.maps.event.addListener(marker, "click", function() { 
    var infowindow = new google.maps.InfoWindow(); 
    infowindow.setContent(this.html); 
    infowindow.open(map, this); 
}); 
+0

谢谢!我总是想念它! –

+0

欢迎您! –

1

这是因为在设置HTML并打开它之前,您尚未设置infowindow。插入此:

var infowindow = new google.maps.InfoWindow(); 
+0

谢谢!我总是想念它! –