回答編集履歴

4

追記

2018/10/31 00:23

投稿

colling
colling

スコア798

test CHANGED
@@ -30,6 +30,8 @@
30
30
 
31
31
  下記の例では`document.write`はあまり必要性を感じないので省いています。
32
32
 
33
+    --追記-- この場合、`document.write`を省いたので、`api-javascript-test.js`の呼び出しは、`API`呼び出しよりも**前であれば**、`<head>`の中でも`<body>`の中でも構いません。
34
+
33
35
  ```html
34
36
 
35
37
  <!DOCTYPE html>

3

修正

2018/10/31 00:23

投稿

colling
colling

スコア798

test CHANGED
@@ -72,7 +72,7 @@
72
72
 
73
73
  </script>
74
74
 
75
- <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBfVbazyiNc3DGpBS-C0Wem9VSRTA8LgXU&callback=initMap"></script>
75
+ <script src="https://maps.googleapis.com/maps/api/js?key=hoge&callback=initMap"></script>
76
76
 
77
77
  </body>
78
78
 

2

追記

2018/10/30 23:54

投稿

colling
colling

スコア798

test CHANGED
@@ -17,3 +17,219 @@
17
17
  ---追記 ---
18
18
 
19
19
  APIが呼ばれた後、`callback=initMap`で`initMap()`を呼び出していますので、`<div>`の配列も、`initMap()`の中で宣言していると、タイミングがNGですね。
20
+
21
+
22
+
23
+
24
+
25
+ --- 追記 ---
26
+
27
+ `if(document.getElementById("map1"))`で、目的の`id`があるかどうかをチェックできます。
28
+
29
+
30
+
31
+ 下記の例では`document.write`はあまり必要性を感じないので省いています。
32
+
33
+ ```html
34
+
35
+ <!DOCTYPE html>
36
+
37
+ <html>
38
+
39
+ <head>
40
+
41
+ <meta charset="UTF-8">
42
+
43
+ <title>google API test</title>
44
+
45
+ <style type="text/css">
46
+
47
+
48
+
49
+ </style>
50
+
51
+
52
+
53
+ </head>
54
+
55
+ <body>
56
+
57
+ <p>テスト</p>
58
+
59
+
60
+
61
+ <div id="map1" style = "width: 500px ; height:300px"></div>
62
+
63
+ <div id="map3" style = "width: 500px ; height:300px"></div>
64
+
65
+ <div id="map5" style = "width: 500px ; height:300px"></div>
66
+
67
+
68
+
69
+
70
+
71
+ <script type="text/javascript" src="api-javascript-test.js">
72
+
73
+ </script>
74
+
75
+ <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBfVbazyiNc3DGpBS-C0Wem9VSRTA8LgXU&callback=initMap"></script>
76
+
77
+ </body>
78
+
79
+ </html>
80
+
81
+ ```
82
+
83
+
84
+
85
+ api-javascript-test.js
86
+
87
+ ```javascript
88
+
89
+ function initMap(){
90
+
91
+ // JR東京駅 map1
92
+
93
+ if(document.getElementById("map1")){//id="map1" があれば 処理を通る
94
+
95
+ var opts1 = {
96
+
97
+ zoom: 15,
98
+
99
+ center: new google.maps.LatLng(35.681661 , 139.767314),
100
+
101
+ };
102
+
103
+ var map1 = new google.maps.Map(document.getElementById("map1"), opts1);
104
+
105
+
106
+
107
+ var mnum1 = new google.maps.LatLng(35.681661 , 139.767314);
108
+
109
+ var marker1 = new google.maps.Marker({
110
+
111
+ position: mnum1,
112
+
113
+ map: map1
114
+
115
+ });
116
+
117
+ }
118
+
119
+ // 新国立競技場 map2
120
+
121
+ if(document.getElementById("map2")){//id="map2" があれば 処理を通る
122
+
123
+ var opts2 = {
124
+
125
+ zoom: 15,
126
+
127
+ center: new google.maps.LatLng(35.678356 , 139.715482)
128
+
129
+ };
130
+
131
+ var map2 = new google.maps.Map(document.getElementById("map2"), opts2);
132
+
133
+
134
+
135
+ var mnum2 = new google.maps.LatLng(35.678356 , 139.715482);
136
+
137
+ var marker2 = new google.maps.Marker({
138
+
139
+ position: mnum2,
140
+
141
+ map: map2
142
+
143
+ });
144
+
145
+ }
146
+
147
+ // 東京体育館 map3
148
+
149
+ if(document.getElementById("map3")){//id="map3" があれば 処理を通る
150
+
151
+ var opts3 = {
152
+
153
+ zoom: 15,
154
+
155
+ center: new google.maps.LatLng(35.67948 , 139.712092)
156
+
157
+ };
158
+
159
+ var map3 = new google.maps.Map(document.getElementById("map3"), opts3);
160
+
161
+
162
+
163
+ var mnum3 = new google.maps.LatLng(35.67948 , 139.712092);
164
+
165
+ var marker3 = new google.maps.Marker({
166
+
167
+ position: mnum3,
168
+
169
+ map: map3
170
+
171
+ });
172
+
173
+ }
174
+
175
+ // 国立代々木競技場
176
+
177
+ if(document.getElementById("map4")){//id="map4" があれば 処理を通る
178
+
179
+ var opts4 = {
180
+
181
+ zoom: 15,
182
+
183
+ center: new google.maps.LatLng(35.667868 , 139.700438)
184
+
185
+ };
186
+
187
+ var map4 = new google.maps.Map(document.getElementById("map4"), opts4);
188
+
189
+
190
+
191
+ var mnum4 = new google.maps.LatLng(35.667868 , 139.700438);
192
+
193
+ var marker4 = new google.maps.Marker({
194
+
195
+ position: mnum4,
196
+
197
+ map: map4
198
+
199
+ });
200
+
201
+ }
202
+
203
+
204
+
205
+ // 日本武道館
206
+
207
+ if(document.getElementById("map5")){//id="map5" があれば 処理を通る
208
+
209
+ var opts5 = {
210
+
211
+ zoom: 15,
212
+
213
+ center: new google.maps.LatLng(35.693475 , 139.75006)
214
+
215
+ };
216
+
217
+ var map5 = new google.maps.Map(document.getElementById("map5"), opts5);
218
+
219
+
220
+
221
+ var mnum5 = new google.maps.LatLng(35.693475 , 139.75006);
222
+
223
+ var marker5 = new google.maps.Marker({
224
+
225
+ position: mnum5,
226
+
227
+ map: map5
228
+
229
+ });
230
+
231
+ }
232
+
233
+ }
234
+
235
+ ```

1

追記

2018/10/30 23:52

投稿

colling
colling

スコア798

test CHANGED
@@ -13,3 +13,7 @@
13
13
 
14
14
 
15
15
  そのあたりを踏まえて、スクリプトを組み直してみましょう。
16
+
17
+ ---追記 ---
18
+
19
+ APIが呼ばれた後、`callback=initMap`で`initMap()`を呼び出していますので、`<div>`の配列も、`initMap()`の中で宣言していると、タイミングがNGですね。