回答編集履歴

3

ミスがあったため修正。

2016/11/10 09:00

投稿

kei344
kei344

スコア69574

test CHANGED
@@ -104,9 +104,13 @@
104
104
 
105
105
  marker[i].addListener('click', function() { // マーカーをクリックしたとき
106
106
 
107
- infoWindow[i].setContent( html );
107
+ //infoWindow[i].setContent( html );//20161110 17:59修正
108
108
 
109
+ //infoWindow[i].open(map, marker[i]);//20161110 17:59修正
110
+
111
+ infoWindow.setContent( html );//20161110 17:22修正
112
+
109
- infoWindow[i].open(map, marker[i]);
113
+ infoWindow.open(map, marker[i]);//20161110 17:22修正
110
114
 
111
115
  });
112
116
 

2

ミスがあったため修正。

2016/11/10 08:59

投稿

kei344
kei344

スコア69574

test CHANGED
@@ -24,7 +24,9 @@
24
24
 
25
25
  var marker = [];
26
26
 
27
- var infoWindow new google.maps.InfoWindow();
27
+ // var infoWindow new google.maps.InfoWindow();//20161110 17:22修正
28
+
29
+ var infoWindow;//20161110 17:22修正
28
30
 
29
31
  var markerData = [ // マーカーを立てる場所名・緯度・経度
30
32
 
@@ -63,6 +65,10 @@
63
65
  zoom: 18 // 地図のズームを指定
64
66
 
65
67
  });
68
+
69
+
70
+
71
+ infoWindow = new google.maps.InfoWindow();//20161110 17:22修正
66
72
 
67
73
 
68
74
 

1

補足の追加。

2016/11/10 08:23

投稿

kei344
kei344

スコア69574

test CHANGED
@@ -5,3 +5,105 @@
5
5
  【JavaScript - Google Mapの情報ウインドウを常にひとつだけ表示したい(31721)|teratail】
6
6
 
7
7
  [https://teratail.com/questions/31721](https://teratail.com/questions/31721)
8
+
9
+
10
+
11
+
12
+
13
+ ---
14
+
15
+
16
+
17
+ **追記:**
18
+
19
+
20
+
21
+ ```JavaScript
22
+
23
+ var map;
24
+
25
+ var marker = [];
26
+
27
+ var infoWindow new google.maps.InfoWindow();
28
+
29
+ var markerData = [ // マーカーを立てる場所名・緯度・経度
30
+
31
+ {
32
+
33
+ name: 'テスと',
34
+
35
+ lat: 35.681298, // 緯度
36
+
37
+ lng: 139.7640582 // 経度
38
+
39
+ }, {
40
+
41
+ name: 'てすと01',
42
+
43
+ lat: 35.6810041, // 緯度
44
+
45
+ lng: 1139.7615828 // 経度
46
+
47
+ }
48
+
49
+ ];
50
+
51
+
52
+
53
+ function initMap() {
54
+
55
+ // 地図の作成
56
+
57
+ var mapLatLng = new google.maps.LatLng({lat: markerData[0]['lat'], lng: markerData[0]['lng']}); // 緯度経度のデータ作成
58
+
59
+ map = new google.maps.Map(document.getElementById('google-maps'), { // #sampleに地図を埋め込む
60
+
61
+ center: mapLatLng, // 地図の中心を指定
62
+
63
+ zoom: 18 // 地図のズームを指定
64
+
65
+ });
66
+
67
+
68
+
69
+ // マーカー毎の処理
70
+
71
+ for (var i = 0; i < markerData.length; i++) {
72
+
73
+ markerLatLng = new google.maps.LatLng({lat: markerData[i]['lat'], lng: markerData[i]['lng']}); // 緯度経度のデータ作成
74
+
75
+ marker[i] = new google.maps.Marker({ // マーカーの追加
76
+
77
+ position: markerLatLng, // マーカーを立てる位置を指定
78
+
79
+ map: map // マーカーを立てる地図を指定
80
+
81
+ });
82
+
83
+
84
+
85
+ markerEvent(i,'<div class="name">' + markerData[i]['name'] + '</div>'); // マーカーにクリックイベントを追加
86
+
87
+ }
88
+
89
+
90
+
91
+ }
92
+
93
+
94
+
95
+ // マーカーにクリックイベントを追加
96
+
97
+ function markerEvent(i, html) {
98
+
99
+ marker[i].addListener('click', function() { // マーカーをクリックしたとき
100
+
101
+ infoWindow[i].setContent( html );
102
+
103
+ infoWindow[i].open(map, marker[i]);
104
+
105
+ });
106
+
107
+ }
108
+
109
+ ```