質問編集履歴

2

ブラウザのページソース結果追加

2021/11/25 11:33

投稿

hahaha44444
hahaha44444

スコア0

test CHANGED
File without changes
test CHANGED
@@ -257,3 +257,175 @@
257
257
 
258
258
 
259
259
  ここにより詳細な情報を記載してください。
260
+
261
+
262
+
263
+ ###ブラウザのページのソース表示結果
264
+
265
+ ```
266
+
267
+ <!DOCTYPE html>
268
+
269
+ <html lang="ja">
270
+
271
+ <head>
272
+
273
+ <meta charset="utf-8">
274
+
275
+ <title>距離計算</title>
276
+
277
+ <style></style>
278
+
279
+ </head>
280
+
281
+ <body>
282
+
283
+ 場所:honnatugi-staton<br>緯度:35.4349408<br>経度:139.339615<br>
284
+
285
+ <script>
286
+
287
+ //ユーザーの現在の位置情報を取得
288
+
289
+ navigator.geolocation.getCurrentPosition(successCallback, errorCallback);
290
+
291
+
292
+
293
+ // ユーザーの現在の位置情報を取得
294
+
295
+ function successCallback(position) {
296
+
297
+ const latitude1 = position.coords.latitude
298
+
299
+ const longitude1 = position.coords.longitude
300
+
301
+ let coord = <br />
302
+
303
+ <b>Notice</b>: Undefined variable: json_row in <b>C:\xampp\htdocs\セミナー\showtable.php</b> on line <b>38</b><br />
304
+
305
+
306
+
307
+ console.log(coord["latitude"]);
308
+
309
+ console.log(coord["longitude"]);
310
+
311
+ //const latitude2 = 35.4349408
312
+
313
+ //const longitude2 = 139.339615
314
+
315
+
316
+
317
+ const latitude3 = 35.480947
318
+
319
+ const longitude3 = 139.321024
320
+
321
+ var gl_text = "緯度:" + latitude1 + "<br>";
322
+
323
+ gl_text += "経度:" + longitude1 + "<br>";
324
+
325
+ const dis1 = distance(latitude1,longitude1,coord["latitude"],coord["longitude"])
326
+
327
+ const dis2 = distance(latitude1,longitude1,latitude3,longitude3)
328
+
329
+ gl_text += "駅までの距離 :" +dis1+"<br>"
330
+
331
+ gl_text += "運動公園までの距離 :" +dis2+"<br><br>"
332
+
333
+ if (compare(dis1,dis2)==1){
334
+
335
+ gl_text += "運動公園のほうが近いです<br>"
336
+
337
+ }
338
+
339
+ else {
340
+
341
+ gl_text += "駅のほうが近いです<br>"
342
+
343
+ }
344
+
345
+ document.getElementById("show_result").innerHTML = gl_text;
346
+
347
+
348
+
349
+ }
350
+
351
+
352
+
353
+ function compare (dis1,dis2){
354
+
355
+ if ((dis1-dis2)>0){
356
+
357
+ return 1
358
+
359
+ }
360
+
361
+ else
362
+
363
+ return 2
364
+
365
+ }
366
+
367
+ //2点間の距離計算
368
+
369
+ function distance(lat1,lng1,lat2,lng2){
370
+
371
+ const R = Math.PI / 180
372
+
373
+ lat1*=R;
374
+
375
+ lng1*=R;
376
+
377
+ lat2*=R;
378
+
379
+ lng2*=R;
380
+
381
+ return 6371 * Math.acos(Math.cos(lat1) * Math.cos(lat2) * Math.cos(lng2 - lng1) + Math.sin(lat1) * Math.sin(lat2));
382
+
383
+ }
384
+
385
+
386
+
387
+ // 位置情報が取得できない場合
388
+
389
+ function errorCallback(error) {
390
+
391
+ var err_msg = "";
392
+
393
+ switch(error.code)
394
+
395
+ {
396
+
397
+ case 1:
398
+
399
+ err_msg = "位置情報の利用が許可されていません";
400
+
401
+ break;
402
+
403
+ case 2:
404
+
405
+ err_msg = "デバイスの位置が判定できません";
406
+
407
+ break;
408
+
409
+ case 3:
410
+
411
+ err_msg = "タイムアウトしました";
412
+
413
+ break;
414
+
415
+ }
416
+
417
+ document.getElementById("show_result").innerHTML = err_msg;
418
+
419
+ }
420
+
421
+ </script>
422
+
423
+ <p>あなたの現在位置</p>
424
+
425
+ <div id="show_result"></div>
426
+
427
+ </body>
428
+
429
+ </html>
430
+
431
+ ```

1

codeの乗せ方

2021/11/25 11:33

投稿

hahaha44444
hahaha44444

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,8 @@
1
+ ```ここに言語を入力
2
+
3
+ コード
4
+
1
- ### 前提・実現したいこと
5
+ ```### 前提・実現したいこと
2
6
 
3
7
  phpとjavascriptを用いて現在の位置情報を「geolocationapi」から取得し
4
8
 
@@ -30,218 +34,214 @@
30
34
 
31
35
  ### 該当のソースコード
32
36
 
33
-
37
+ ```php
38
+
34
-
39
+ <!DOCTYPE html>
40
+
41
+ <html lang="ja">
42
+
43
+ <head>
44
+
45
+ <meta charset="utf-8">
46
+
47
+ <title>距離計算</title>
48
+
49
+ <style></style>
50
+
51
+ </head>
52
+
53
+ <body>
54
+
55
+ <?php
56
+
57
+ //MySQLのデータベースサーバへ接続(サーバ名,接続ユーザ名,パスワード,データベース名 の順に指定)
58
+
59
+ $link=mysqli_connect("localhost","root","","coordinate");
60
+
61
+
62
+
63
+ //SQL文を指定
64
+
65
+ $query="SELECT * FROM location";
66
+
67
+
68
+
69
+ //PHPからSQL文を実行(接続名 $link に対して $query のSQL文を実行)
70
+
71
+ //結果は$resultに格納される
72
+
73
+ $result=mysqli_query($link,$query);
74
+
75
+
76
+
77
+ //$result から1行取り出して,1項目ごとに配列 $row (フィールド名をキーとした連想配列)に格納
78
+
79
+ $row=mysqli_fetch_assoc($result);
80
+
81
+
82
+
83
+ //このrow配列をjs側に渡したい
84
+
85
+ //$row 配列の中身を表示
86
+
87
+ echo "場所:".$row['place']."<br>";
88
+
89
+ echo "緯度:".$row['latitude']."<br>";
90
+
91
+ echo "経度:".$row['longitude']."<br>";
92
+
93
+      $json_row = json_encode($row)
94
+
95
+ ?>
96
+
97
+
98
+
99
+ <script>
100
+
101
+ //ユーザーの現在の位置情報を取得
102
+
103
+ navigator.geolocation.getCurrentPosition(successCallback, errorCallback);
104
+
105
+
106
+
107
+ // ユーザーの現在の位置情報を取得
108
+
109
+ function successCallback(position) {
110
+
111
+ const latitude1 = position.coords.latitude
112
+
113
+ const longitude1 = position.coords.longitude
114
+
115
+ let coord = <?php echo $json_row;?>
116
+
117
+ const latitude2 = coord[1];
118
+
119
+ const longitude2 = coord[2];
120
+
121
+ //const latitude2 = 35.4349408
122
+
123
+ //const longitude2 = 139.339615
124
+
125
+
126
+
127
+ const latitude3 = 35.480947
128
+
129
+ const longitude3 = 139.321024
130
+
131
+ var gl_text = "緯度:" + latitude1 + "<br>";
132
+
133
+ gl_text += "経度:" + longitude1 + "<br>";
134
+
135
+ const dis1 = distance(latitude1,longitude1,latitude2,longitude2)
136
+
137
+ const dis2 = distance(latitude1,longitude1,latitude3,longitude3)
138
+
139
+ gl_text += "駅までの距離 :" +dis1+"<br>"
140
+
141
+ gl_text += "運動公園までの距離 :" +dis2+"<br><br>"
142
+
143
+ if (compare(dis1,dis2)==1){
144
+
145
+ gl_text += "運動公園のほうが近いです<br>"
146
+
147
+ }
148
+
149
+ else {
150
+
151
+ gl_text += "駅のほうが近いです<br>"
152
+
153
+ }
154
+
155
+ document.getElementById("show_result").innerHTML = gl_text;
156
+
157
+
158
+
159
+ }
160
+
161
+
162
+
163
+ function compare (dis1,dis2){
164
+
165
+ if ((dis1-dis2)>0){
166
+
167
+ return 1
168
+
169
+ }
170
+
171
+ else
172
+
173
+ return 2
174
+
175
+ }
176
+
177
+
178
+
179
+ //2点間の距離計算
180
+
181
+ function distance(lat1,lng1,lat2,lng2){
182
+
183
+ const R = Math.PI / 180
184
+
185
+ lat1*=R;
186
+
187
+ lng1*=R;
188
+
189
+ lat2*=R;
190
+
191
+ lng2*=R;
192
+
193
+ return 6371 * Math.acos(Math.cos(lat1) * Math.cos(lat2) * Math.cos(lng2 - lng1) + Math.sin(lat1) * Math.sin(lat2));
194
+
195
+ }
196
+
197
+
198
+
199
+ // 位置情報が取得できない場合
200
+
201
+ function errorCallback(error) {
202
+
203
+ var err_msg = "";
204
+
205
+ switch(error.code)
206
+
207
+ {
208
+
209
+ case 1:
210
+
211
+ err_msg = "位置情報の利用が許可されていません";
212
+
213
+ break;
214
+
215
+ case 2:
216
+
217
+ err_msg = "デバイスの位置が判定できません";
218
+
219
+ break;
220
+
221
+ case 3:
222
+
223
+ err_msg = "タイムアウトしました";
224
+
225
+ break;
226
+
227
+ }
228
+
229
+ document.getElementById("show_result").innerHTML = err_msg;
230
+
231
+ }
232
+
35
- ```php,javascript
233
+ </script>
234
+
235
+ <p>あなたの現在位置</p>
236
+
237
+ <div id="show_result"></div>
238
+
239
+ </body>
240
+
241
+ </html>
36
242
 
37
243
  ```
38
244
 
39
-
40
-
41
- <!DOCTYPE html>
42
-
43
- <html lang="ja">
44
-
45
- <head>
46
-
47
- <meta charset="utf-8">
48
-
49
- <title>距離計算</title>
50
-
51
- <style></style>
52
-
53
- </head>
54
-
55
- <body>
56
-
57
- <?php
58
-
59
- //MySQLのデータベースサーバへ接続(サーバ名,接続ユーザ名,パスワード,データベース名 の順に指定)
60
-
61
- $link=mysqli_connect("localhost","root","","coordinate");
62
-
63
-
64
-
65
- //SQL文を指定
66
-
67
- $query="SELECT * FROM location";
68
-
69
-
70
-
71
- //PHPからSQL文を実行(接続名 $link に対して $query のSQL文を実行)
72
-
73
- //結果は$resultに格納される
74
-
75
- $result=mysqli_query($link,$query);
76
-
77
-
78
-
79
- //$result から1行取り出して,1項目ごとに配列 $row (フィールド名をキーとした連想配列)に格納
80
-
81
- $row=mysqli_fetch_assoc($result);
82
-
83
-
84
-
85
- //このrow配列をjs側に渡したい
86
-
87
- //$row 配列の中身を表示
88
-
89
- echo "場所:".$row['place']."<br>";
90
-
91
- echo "緯度:".$row['latitude']."<br>";
92
-
93
- echo "経度:".$row['longitude']."<br>";
94
-
95
-      $json_row = json_encode($row)
96
-
97
- ?>
98
-
99
-
100
-
101
- <script>
102
-
103
- //ユーザーの現在の位置情報を取得
104
-
105
- navigator.geolocation.getCurrentPosition(successCallback, errorCallback);
106
-
107
-
108
-
109
- // ユーザーの現在の位置情報を取得
110
-
111
- function successCallback(position) {
112
-
113
- const latitude1 = position.coords.latitude
114
-
115
- const longitude1 = position.coords.longitude
116
-
117
- let coord = <?php echo $json_row;?>
118
-
119
- const latitude2 = coord[1];
120
-
121
- const longitude2 = coord[2];
122
-
123
- //const latitude2 = 35.4349408
124
-
125
- //const longitude2 = 139.339615
126
-
127
-
128
-
129
- const latitude3 = 35.480947
130
-
131
- const longitude3 = 139.321024
132
-
133
- var gl_text = "緯度:" + latitude1 + "<br>";
134
-
135
- gl_text += "経度:" + longitude1 + "<br>";
136
-
137
- const dis1 = distance(latitude1,longitude1,latitude2,longitude2)
138
-
139
- const dis2 = distance(latitude1,longitude1,latitude3,longitude3)
140
-
141
- gl_text += "駅までの距離 :" +dis1+"<br>"
142
-
143
- gl_text += "運動公園までの距離 :" +dis2+"<br><br>"
144
-
145
- if (compare(dis1,dis2)==1){
146
-
147
- gl_text += "運動公園のほうが近いです<br>"
148
-
149
- }
150
-
151
- else {
152
-
153
- gl_text += "駅のほうが近いです<br>"
154
-
155
- }
156
-
157
- document.getElementById("show_result").innerHTML = gl_text;
158
-
159
-
160
-
161
- }
162
-
163
-
164
-
165
- function compare (dis1,dis2){
166
-
167
- if ((dis1-dis2)>0){
168
-
169
- return 1
170
-
171
- }
172
-
173
- else
174
-
175
- return 2
176
-
177
- }
178
-
179
-
180
-
181
- //2点間の距離計算
182
-
183
- function distance(lat1,lng1,lat2,lng2){
184
-
185
- const R = Math.PI / 180
186
-
187
- lat1*=R;
188
-
189
- lng1*=R;
190
-
191
- lat2*=R;
192
-
193
- lng2*=R;
194
-
195
- return 6371 * Math.acos(Math.cos(lat1) * Math.cos(lat2) * Math.cos(lng2 - lng1) + Math.sin(lat1) * Math.sin(lat2));
196
-
197
- }
198
-
199
-
200
-
201
- // 位置情報が取得できない場合
202
-
203
- function errorCallback(error) {
204
-
205
- var err_msg = "";
206
-
207
- switch(error.code)
208
-
209
- {
210
-
211
- case 1:
212
-
213
- err_msg = "位置情報の利用が許可されていません";
214
-
215
- break;
216
-
217
- case 2:
218
-
219
- err_msg = "デバイスの位置が判定できません";
220
-
221
- break;
222
-
223
- case 3:
224
-
225
- err_msg = "タイムアウトしました";
226
-
227
- break;
228
-
229
- }
230
-
231
- document.getElementById("show_result").innerHTML = err_msg;
232
-
233
- }
234
-
235
- </script>
236
-
237
- <p>あなたの現在位置</p>
238
-
239
- <div id="show_result"></div>
240
-
241
- </body>
242
-
243
- </html>
244
-
245
245
  ### 試したこと
246
246
 
247
247