google map マーカー複数 情報ウインドウ表示

<!DOCTYPE html>
<html>
  <head>
  <meta charset="UTF-8">
  <title>Google maps</title>
    <style type="text/css">
      html,body,#map {
        height: 100%;
      }
    </style>
  </head>
  <body>
    <div id="map"></div>

	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script type="text/javascript" src="gmap.js"></script>
    <script async defer
      src="https://maps.googleapis.com/maps/api/js?key=ここにAPIキー&callback=initMap">
    </script>
  </body>
</html>
var map;
var marker = [];
var infoWindow = [];
var data = [];

function initMap() {

    map = new google.maps.Map(document.getElementById('map'), {
        center: {lat: 38.2586, lng: 137.6850} , // 日本の中心
        zoom: 6
    });

	$.getJSON("lists.json", function(json){
        for (var i = 0; i <= json.length-1; i++) {
            data.push(
                {
                    'content': json[i].title,
                    'lat': json[i].lat,
                    'lng': json[i].lng
                }
            );
        };

        for (var i = 0; i < data.length; i++) {
            markerLatLng = {lat: data[i]['lat'], lng: data[i]['lng']};
            marker[i] = new google.maps.Marker({
                position: markerLatLng,
                map: map
            });
            infoWindow[i] = new google.maps.InfoWindow({ // 吹き出しの追加
                content: data[i]['content'] // 吹き出しに表示する内容
            });
            markerEvent(i); // マーカーにクリックイベントを追加
//            infoWindow[i].open(map, marker[i]); // マーカーを初期表示
        }

    });

}
// マーカーにクリックイベントを追加
function markerEvent(i) {
    marker[i].addListener('click', function() {
        infoWindow[i].open(map, marker[i]);
    });
}
[
    {
        "title": "新宿御苑",
        "lat": 35.6822664,
        "lng": 139.7116884
    }, {
        "title": "芝公園",
        "lat": 35.6615958,
        "lng": 139.7378616
    }, {
        "title": "明治座",
        "lat": 35.6860608,
        "lng": 139.777226
    }
]
PAGE TOP