2011-11-12 77 views
2

我已經創建了一個自定義地圖,其中包含大部分我想要的東西(自定義圖標和自定義信息氣泡),但是我無法找到解決方案來自動打開標記信息窗口負載,我已經做了很多搜索的,但似乎無法找到任何我迄今如下,任何幫助將是非常讚賞的代碼:在Google地圖上自動打開標記信息窗格

function initialize() { 

     var myLatlng = new google.maps.LatLng(54.325109,-2.742226); 

     var myOptions = { 
     zoom: 15, 
     center: myLatlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
     } 

     var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

     var countries = [ 
     { 
      title:'Remedy', 
      lat:54.3210, 
      lon:-2.7438, 
      content:"<h2>Remedy</h2><p>address, <br />location, <br />postcode</p> <p><b>T:</b> 07595 153 835 <br /><b>E:</b> <a href='mailto:email'>email</a></p>" 
     } 
     ]; 

     for (var i = 0; i < countries.length; i++) { 
      var c = countries[i]; 
      c.marker = new google.maps.Marker({ 
       position: new google.maps.LatLng(c.lat, c.lon), 
       map: map, 
       icon: '/wp-content/themes/remedy/display_images/google_map_icon.png', 
       title: c.title}); 
      c.infowindow = new google.maps.InfoWindow({content: c.content}); 
      google.maps.event.addListener(c.marker, 'click', makeCallback(c)); 
     } 

     function makeCallback(country) { 
      return function() { 
       country.infowindow.open(map, country.marker); 
      }; 
     } 

     infowindow.open(map, marker); 

    } 

回答

0

嗯,inforwindow沒有引用代碼中的任何內容,這就是爲什麼它不起作用。

由於您目前有一個國家在列表中,您可以使用實際信息窗口進行快速測試並初始化變量,或者更好,因爲您在列表中有1個項目,只需定義c是外循環,所以你可以訪問它,然後打開它傳遞的地圖和標記,像這樣的彈出(假設C已被外循環定義)

c.infowindow.open(map, c.marker); 
+1

哇謝謝,好的簡單修復一次!非常感謝你讓我從頭痛中解脫出來;) – Nick

0
var infowindow = new google.maps.InfoWindow({ 
    content: "Test Route", 
    position: new google.maps.LatLng(38.8709866, -77.208055), 
}); 
infowindow.open(map); 
相關問題