- ベストアンサー
Google Mapの表示とマーカーのふきだし表示方法
- Google Mapを表示する方法とマーカーをクリックせずにふきだしを表示する方法について教えてください。
- 参考にした記事ではGoogle Mapの表示はできましたが、マーカーをクリックせずにふきだしを表示する方法についての情報がありませんでした。
- 質問文のコードを確認すると、マーカーをクリックしたときにふきだしを表示するイベントが設定されています。マーカーをクリックせずにふきだしを表示するにはどのように変更すればよいのでしょうか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
×google.maps..trigger(marker,"click"); ○google.maps.event.trigger(marker,"click"); これが正解です。 <script type="text/javascript"> google.maps.event.addDomListener(window, 'load', function() { var mapdiv = document.getElementById("map_canvas"); var myOptions = { zoom: 16, center: new google.maps.LatLng(35.686773, 139.68815), mapTypeId: google.maps.MapTypeId.ROADMAP, scaleControl: true, }; var map = new google.maps.Map(mapdiv, myOptions); var marker = new google.maps.Marker({ position: new google.maps.LatLng(35.686773, 139.68815), map: map, title: 'マーカーのタイトル' }); var infowindow = new google.maps.InfoWindow({ content: '情報ウィンドウ内に表示するHTML', size: new google.maps.Size(50,50) }); google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker); }); google.maps.event.trigger(marker,"click"); }); </script>
その他の回答 (3)
- yyr446
- ベストアンサー率65% (870/1330)
おっとごめんなさい。 サンプルの内容よく見てませんでした。 Ver2までの直接APIコールだと思ってました。 このサンプルは新しいGoogleMapApI Ver3 のやり方ですね。 google.maps..trigger(marker,"click"); に代えて下さい。 リファレンスはこっちでした。 http://code.google.com/intl/en/apis/maps/documentation/v3/reference.html#Mouse%20event
- yyr446
- ベストアンサー率65% (870/1330)
イベントはずしちゃだめですよ。 google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker); }); の下にいれるのですよ。 このサンプル見てやってるなら、こんなふうにしてるんじゃないですか <script type="text/javascript"> google.maps.event.addDomListener(window, 'load', function() { var mapdiv = document.getElementById('div要素のID'); var myOptions = { zoom: ズーム, center: new google.maps.LatLng(緯度, 経度), mapTypeId: google.maps.MapTypeId.ROADMAP, scaleControl: true, }; var map = new google.maps.Map(mapdiv, myOptions); var marker = new google.maps.Marker({ position: new google.maps.LatLng(緯度, 経度), map: map, title: 'マーカーのタイトル' }); var infowindow = new google.maps.InfoWindow({ content: '情報ウィンドウ内に表示するHTML', size: new google.maps.Size(幅, 高さ) }); google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker); }); GEvent.trigger(marker,"click"); // <=ここに追加 }); </script>
- yyr446
- ベストアンサー率65% (870/1330)
GEvent.trigger(source:Object, event:String, ...) というのを使います。 markerふきだしを表示するマーカーの名前がmarkerだとすると、 GEvent.trigger(marker,"click"); これを実行すると、markerのクリックイベントが地図に伝わります。 (リファレンス) http://code.google.com/intl/ja/apis/maps/documentation/reference.html#GEvent.trigger
補足
お返事ありがとうございます。 google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker); }); を外し GEvent.trigger(marker,"click"); を入れてみましたがクリックしても何も表示されない状態でマニュアルを見てみたのですが どうすればいいものかわかりません^^; 説明不足だったのかもしれないのですが現状はクリックしなければふきだしが表示されないが これをクリックしなくても表示させるように(初めからふきだしが出てる状態)したいという事なのですが。。。
お礼
お返事ありがとうございます。 外してはダメだったのですね^^;clickというのがいらないものと思い込んでおりそうしてしまいましたが おかげ様でうまくいきました^^ 定義はそのままでその後に実行するのがあのコードという意味だったようですね。大変参考になりました!