質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.04%

google maps api v3 の複数の『吹き出し』を一気に全部閉じるにはどうしたらよいでしょうか???

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 3,859

score 7

google maps apiのマーカーから出る吹き出しを
一つづつ出して、一つづつ閉じる、説明は多々みかけるのですが・・・
複数、一気に吹き出しを出して、一気に閉じるにはどうしたら宜しいか、わかる方いらっしゃりましたら、ご教授お願い致します・・・
例えばこれは、一つ出して、一つ消すみたいなことの説明です

http://goo.gl/M7Ddc

この応用なんでしょうが・・・
なんとも、僕には解決できませんでした・・・
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

例えばwindowオブジェクトとマーカーオブジェクトを配列に持っていて
各イベントのタイミングで配列に設定された全オブジェクトに対して処理を行えば可能です。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8" />
  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
  <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
  <script type="text/javascript">
    $(function(){
      var datas = [
        {lat: 29.97516,  lon: 31.137657, title: 'title 01', content: 'content 01'},
        {lat: 29.974695, lon: 31.138340, title: 'title 02', content: 'content 02'}
      ];
      var mainLatlng = new google.maps.LatLng(29.975083, 31.137895);
      var myOptions={
        zoom: 18,
        center: mainLatlng,
        mapTypeId: google.maps.MapTypeId.HYBRID
      };
      var map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
      var windowList = [];
      var markerList = [];
      for (var i=0; i<datas.length; i++) {
        var contentString = '<dl><dt style="font-weight:bold;">'+datas[i]['title']+'</dt><dd>'+datas[i]['content']+'</dd></dl>';
        var infowindow = new google.maps.InfoWindow({content: contentString});
        var marker = new google.maps.Marker({
          position: new google.maps.LatLng(datas[i]['lat'], datas[i]['lon']),
          map: map,
          title: datas[i]['title']
        });
        windowList.push(infowindow);
        markerList.push(marker);
        google.maps.event.addListener(marker, 'click', function() {
          for (var j=0; j<windowList.length; j++) {
            windowList[j].open(map, markerList[j]);
          }
          $("#btn_show").prop("disabled", true);
          $("#btn_hide").prop("disabled", false);
        });
        google.maps.event.addListener(infowindow, 'closeclick', function() {
          for (var j=0; j<windowList.length; j++) {
            windowList[j].close();
          }
          $("#btn_show").prop("disabled", false);
          $("#btn_hide").prop("disabled", true);
        });
      }
      $("#btn_show").bind("click",function(){
        for (var i=0; i<windowList.length; i++) {
          windowList[i].open(map, markerList[i]);
        }
        $("#btn_show").prop("disabled", true);
        $("#btn_hide").prop("disabled", false);
      });
      $("#btn_hide").bind("click",function(){
        for (var i=0; i<windowList.length; i++) {
          windowList[i].close();
        }
        $("#btn_show").prop("disabled", false);
        $("#btn_hide").prop("disabled", true);
      });
    });
  </script>
</head>
<body>
  <p>
    <input type="button" id="btn_show" value="情報ウィンドウ表示" />
    <input type="button" id="btn_hide" value="情報ウィンドウ非表示" disabled />
  </p>
  <div id="map_canvas" style="width:400px;height:400px;"></div>
</body>
</html>

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/08/10 20:37

    ありがとうございます・・・(涙)。
    つくづく自分が情けなく思えてきます・・・
    本当にありがとうございました!!!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.04%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る