PHP Text bestand, berekenen weergeven tabel

Pagina: 1
Acties:
  • 370 views

Acties:
  • 0 Henk 'm!

Anoniem: 449109

Topicstarter
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.


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);
}
?> } 

Acties:
  • 0 Henk 'm!

  • wha
  • Registratie: April 2011
  • Laatst online: 09-05 13:19

wha

Beetje veel code, krijg je enige foutmelding? al geprobeerd om code te strippen door de som klein te houden?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

Ik ga mezelf maar even quoten want ook dit topic ontbeert weer elke vorm van eigen inzet. Je zegt wat je wil, je roept "ik kan het niet!!!1" en verwacht dat wij even uit gaan leggen wat jij moet doen om exact de input te krijgen die je zoekt? Oftewel:
NMe schreef op woensdag 04 juni 2014 @ 16:33:
Kom op, doe even wat meer moeite voor je eigen probleem. Ik linkte hierboven de quickstart al. Een gebrek aan kennis is geen excuus voor een gebrek aan eigen inzet.
Lees eens de Quickstart door en open dan gerust een nieuw topic, maar op deze manier zijn we niet getrouwd.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Dit topic is gesloten.