2012-10-08 134 views
0

IAM試圖實現與地址在它顯示信息窗口.. 下面是我的代碼谷歌 - 地圖:在信息窗口顯示的地址

$('#citiesdata').empty(); 

    var listFavourite = []; 

    $(responce).find("favorite").each(function() { 
     var name = $(this).find("name").text(); 
     var address = $(this).find("address").text(); 
     var phoneNo = $(this).find("phoneNo").text(); 
     var lattitude = $(this).find("lattitude").text(); 
     var longitude = $(this).find("longitude").text(); 

     var favouriteObject = new Object(); 
      favouriteObject.name = name; 
       favouriteObject.address = address; 
       favouriteObject.lattitude = lattitude; 
       favouriteObject.longitude = longitude; 
      listFavourite.push(favouriteObject); 

     $('#citiesdata').append('<tr><td><b>'+name+'</b></td></tr>'); 
     $('#citiesdata').append('<tr><td>'+address+'</td></tr>'); 
     $('#citiesdata').append('<tr><td>'+phoneNo+'</td></tr>'); 



    }); 
    //call map service to load map with marker 
    //method name(listFavourite); 
    var content = "<div id='tabs'>"+ 
           "<form id='button'>"+ 
           "<div>"+ 
           "<input type='button' value='click me' onclick='alert(\"infoWindow\")'>"+ 
           "</div>"+ 
           "</form>"+ 
          "</div>"; 

     var map = new google.maps.Map(document.getElementById("map_canvas"), { 
       mapTypeId: google.maps.MapTypeId.ROADMAP, 
       streetViewControl: false 
     }); 
     var infowindow = new google.maps.InfoWindow({ 
     //content: content 
     }); 

     for (var n = 0 ; n <listFavourite.length ; n++) 
      addMarker(listFavourite[n]); 
     } 


     function addMarker(data) { 
      var marker = new google.maps.Marker({ 
       position: new google.maps.LatLng(data.lattitude, data.longitude), 
       map: map, 
       title: data.address 
      }); 
      google.maps.event.addListener(marker, "click", function() { 
       infowindow.setContent(data.address); 
       infowindow.open(map, marker); 
      }); 

     }; 

這裏我從一個arraylist..and獲取數據(地址)我想在infowindows..thankyou

+0

改變infowindow.setContent(內容); infowindow.setContent(data.address);但相同的地址重複所有標記......任何線索? – hari86

回答

0

你需要在一個單獨的函數來創建你的標誌,以顯示該地址:

for (var n = 0 ; n <listFavourite.length ; n++) 
    addMarker(listFavourite[n]); 
} 


function addMarker(data) { 
    var marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(data.lattitude, data.longitude), 
     map: map, 
     title: data.address 
    }); 
    google.maps.event.addListener(marker, "click", function() { 
     infowindow.setContent(data.address); 
     infowindow.open(map, marker); 
    }); 

}; 
+0

集成了您的代碼但出現了愚蠢的錯誤:未捕獲RangeError:超出了最大調用堆棧大小 – hari86

+0

您錯誤地集成了它。編輯你的問題,以反映你的**完整的**當前代碼,包括列表的內容加入數組 – Marcelo

+0

現在無法顯示地圖.. – hari86