Goede middag,
We zijn bezig met een .txt bestand gelezen uit een GPS-apparaat te weergeven in een tabel via PHP en HTML. Met behulp van de Coordinaten willen we de hoek en afstand bepalen. De regel $GPRMC is alleen van belang.
voorbeeld text bestand
"$GPRMC,143708,A,5321.9518,N,00513.3058,E,0.0,48.9,130415,0.4,E,A*28
$GPRMB,A,,,,,,,,,,,,V,A*1C
$GPGGA,143708,5321.9518,N,00513.3058,E,1,11,2.1,9.0,M,45.1,M,,*48
$GPGSA,A,3,01,06,12,13,14,15,17,18,22,24,25,,3.0,2.1,2.2*3B
$GPGSV,3,2,11,14,22,315,00,15,27,177,00,17,32,052,00,18,11,254,00*70
$GPGLL,5321.9518,N,00513.3058,E,143708,A,A*47
$GPBOD,,T,,M,,*47"
Het is ons gelukt om de coordinaten om te rekenen naar hele graden zodat hier beter gereken mee kan worden (i.p.v. graden, minuten, seconden) Nu lukt het ons alleen niet om de berekenden coordinaten ,weergeven in bijvoorbeeld de eerste collom, van elkaar af te trekken zodat met het verschil gerekent kan worden om koers en afstand te bepalen. Ik hoop dat iemand ons hiermee kan helpen.
We zijn bezig met een .txt bestand gelezen uit een GPS-apparaat te weergeven in een tabel via PHP en HTML. Met behulp van de Coordinaten willen we de hoek en afstand bepalen. De regel $GPRMC is alleen van belang.
voorbeeld text bestand
"$GPRMC,143708,A,5321.9518,N,00513.3058,E,0.0,48.9,130415,0.4,E,A*28
$GPRMB,A,,,,,,,,,,,,V,A*1C
$GPGGA,143708,5321.9518,N,00513.3058,E,1,11,2.1,9.0,M,45.1,M,,*48
$GPGSA,A,3,01,06,12,13,14,15,17,18,22,24,25,,3.0,2.1,2.2*3B
$GPGSV,3,2,11,14,22,315,00,15,27,177,00,17,32,052,00,18,11,254,00*70
$GPGLL,5321.9518,N,00513.3058,E,143708,A,A*47
$GPBOD,,T,,M,,*47"
Het is ons gelukt om de coordinaten om te rekenen naar hele graden zodat hier beter gereken mee kan worden (i.p.v. graden, minuten, seconden) Nu lukt het ons alleen niet om de berekenden coordinaten ,weergeven in bijvoorbeeld de eerste collom, van elkaar af te trekken zodat met het verschil gerekent kan worden om koers en afstand te bepalen. Ik hoop dat iemand ons hiermee kan helpen.
PHP: filename
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
| for ($i = 0; i < 4; $i++) { <?php // checken of bestand is geopload if (!$_FILES['bestand']['tmp_name'] ) { echo "Selecteer een bestand"; // formulier om bestand te uploaden ?> <form action=<?php echo $_SERVER['PHP_SELF']; ?> method="post" enctype='multipart/form-data'> <input type="file" name="bestand"><br> <input type="submit" value="Verzenden"> </form> <?php } // script voor het bestand else { $bestand = $_FILES['bestand']['tmp_name']; // openen en lezen van bestand $file= fopen("$bestand", "r"); // beginnen bij eerste waarde (0) $i=0; //html code echo "<html>"; echo "<heading>"; echo "</heading>"; echo "<body>"; echo "<table border=3>"; echo "<th>tijd (hhmmss)</th><th>breedte (ggmm)</th><th>lengte (gmm.ss)</th><th>afstand (nm)</th><th>snelheid (knopen)</th><th>koers (deg)</th>"; // bestand openen om te bewerken en wanneer die moet stoppen met lezen bestand while (!feof($file) ){ $data=fgets($file); // voorwaarde welke regels gelezen moeten worden if ( substr($data,0, 6)=='$GPRMC'){ // arrays indexeren $arrayindex[$i]=$data; $kuikentjes[$i]=explode(',',$arrayindex[$i]); // split breedte in graden minuten en seconden $gb=substr($kuikentjes[$i][3], 0,2); $mb=substr($kuikentjes[$i][3], 2,3); $sb=substr($kuikentjes[$i][3], -4); //omrekenen van breedte naar getal $minutennaargraden=$mb/60; $secondennaargraden1=$sb/100; $secondennaargraden2=$secondennaargraden1/3600; $breedteg=$gb+$secondennaargraden2+$minutennaargraden; //idem dito voor de lengte $gl=substr($kuikentjes[$i][5], 0,3); $ml=substr($kuikentjes[$i][5], 3,2); $sl=substr($kuikentjes[$i][5], -4); $minutennaargradenl=$ml/60; $secondennaargradenl1=$sl/100; $secondennaargradenl2=$secondennaargradenl1/3600; $lengteg=$gl+$secondennaargradenl2+$minutennaargradenl; ///////////////////////Berekening loxodroom $Breedte2=$breedteg[$i-1]; $Breedte1=$breedteg; $lengte1=$lengteg[$i-1]; $lengte2=$lengteg; $DVB = (10800/pi()) * log(tan(deg2rad(45-0.5*$Breedte2)) / tan(deg2rad(45-0.5*$Breedte1))); //function koers ($dl,$DVB) { //if ($DVB==0) { //if ($dl>0) ($K=90); //else ($K=270); //} //else { //$K=rad2deg(atan($dl*60/$DVB)); //if ($dl==0){ // if ($DVB>0) ($K=0); // else ($K=180); //} //else { // if ($dl>0) { // if($K>0) ($K=$K); // else ($K=$K+180); // } // else { // if ($K>0) ($K=$K + 180); // else ($K=$K + 360); // } //} //} //return $K; // Functie voor de verheid //function verheid ($bA,$bB,$K,$dl) { //if ($bA==$bB){ //$v=$dl * cos(deg2rad($bA)) * 60; //} //else { //$v=($bB-$bA) / cos(deg2rad($K)) * 60; //} //return $v; //} echo "<tr>"; echo "<td>" . intval($kuikentjes[$i][1]). "</td>"; echo "<td>" . intval($kuikentjes[$i][3]). "</td>"; echo "<td>" . round($kuikentjes[$i][5], 2). "</td>"; echo "<td>" . intval($kuikentjes[$i][3]) . "</td>"; echo "<td>" . round($kuikentjes[$i][7], 2). "</td>"; echo "<td>" . intval($kuikentjes[$i][8]). "</td>"; echo "<td>" . round($lengte1, 4). "</td>"; echo "</tr>"; $i++; } } echo "</body>"; echo "</html>"; fclose($file); } ?> } |