2011-03-29 97 views
2

下面是我根據這裏給出的例子寫的代碼Google Map V3 DemojQuery的谷歌地圖V3 - 信息窗口總是固定一個標記

我的問題是關於任何標記在一個固定點始終在打開信息窗口點擊我的意思是,如果我有4個標記標誌1,標誌2,marker3,marker4 ..如果我點擊MARK1或MARK2或MARK3或mark4的信息窗口總是在marker4開放,也是對信息marker4

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>jQuery + Google Maps API v3 Demo</title> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> 
<script type="text/javascript"> 
    var map; 
    var arrMarkers = []; 
    var arrInfoWindows = []; 

    function mapInit(){ 
     var centerCoord = new google.maps.LatLng(17.22, 78.29); 
     var mapOptions = { 
      zoom: 6, 
      center: centerCoord, 
      mapTypeId: google.maps.MapTypeId.TERRAIN 
     }; 
     map = new google.maps.Map(document.getElementById("map"), mapOptions); 

     $.getJSON("mapDB.php", function(mapPoints){ 
         for (var i = 0; i < mapPoints.length; i++) { 
          var marker = new google.maps.Marker({ 
               position: new google.maps.LatLng(mapPoints[i].latitude,mapPoints[i].longitude), 
               map: map, 
               title: "test"+i 
          }); 
          arrMarkers[i] = marker; 
          var infowindow = new google.maps.InfoWindow({ 
               content: "<h3>Test this</h3>"+i 
          }); 
          arrInfoWindows[i] = infowindow; 
          google.maps.event.addListener(marker, 'click', function() { 
               infowindow.open(map, marker); 
          }); 


        } 

       }); 
    } 
    $(function(){ 
     mapInit(); 

    }); 
</script> 
<style type="text/css" media="screen"> 
    img { border: 0; } 
    #map{ 
     width: 500px; 
     height: 600px;; 


    } 
    #content { 
     position: fixed; 
     top: 10px; 
     left: 800px; 
     margin: 30px; 
    } 
</style> 
</head> 

<body> 
    <div id="container"> 
     <div id="map"></div> 
    </div> 

</body> 
</html> 

感謝你的幫助 Regards Kiran

回答

2

我認爲你有一些與變量的範圍問題。沒有太多時間深入挖掘。我放在一起這樣的jsfiddle:http://jsfiddle.net/rcravens/T7HwX/2/

這裏是我更新,以得到它的工作代碼:

var count = mapPoints.length; 
    for (var i = 0; i < count; i++) { 
     var latlng = new google.maps.LatLng(mapPoints[i].latitude,mapPoints[i].longitude); 
     var title = "test" + i; 
     var marker = new google.maps.Marker({ 
      position: latlng, 
      map: map, 
      title: title 
     }); 
     arrMarkers[i] = marker; 
     var infowindow = new google.maps.InfoWindow(); 
     arrInfoWindows[i] = infowindow; 
     marker.myHtml = "<h3>Test this " + i + "</h3>"; 
     google.maps.event.addListener(marker, 'click', function() { 
       infowindow.setContent(this.myHtml); 
       infowindow.open(map, this); 
      }); 

    } 

晴在創造「的addListener」的。

希望這會有所幫助。

鮑勃

+0

謝謝鮑勃的幫助和快速解決方案。這解決了我的問題。問候 - 基蘭 – Bujji 2011-03-29 23:36:28

相關問題