2011-11-12 18 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の定義もいっその簡単なテストを行い、実際の情報ウィンドウで情報ウィンドウ変数をintialize、またはすることができますあなたがそれにアクセスして、それをマップマーカー、このような何かを渡すポップアップを開くことができるように、ループの外であることを

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

うわー、ありがとう、簡単に一度修正!あまりにもあなたが頭痛から私を救ってくれてありがとう;) – Nick

2

は、多分それはちょうどあなたので、働いていない(と仮定すると、Cは、ループ外で定義されています)マップのインスタンスを作成し、マップの完全なロードがInfoWindowを開くのを待たずにいました。

このような何かを試してみてください:

google.maps.event.addListenerOnce(map, 'tilesloaded', function(event) { 
    infowindow.open(map, marker); 
}); 


文献によれば:tilesloaded http://code.google.com/intl/en/apis/maps/documentation/javascript/reference.html#Map

- 目に見えるタイルのロードが終了したときに、このイベントが発生しています。

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