????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 13.59.90.172 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/appsrv.astacus.se/utm/ |
Upload File : |
<?php $link = mysql_connect ("localhost", "root", "root123"); mysql_select_db ("UTM"); function calculateOrientation($p1, $p2, $p3) { // Extrahera punkterna (P1 = vänster topp, P2 = höger topp, P3 = mitten) list($easting1, $northing1, $altitude1) = $p1; list($easting2, $northing2, $altitude2) = $p2; list($easting3, $northing3, $altitude3) = $p3; // Invertera höjd (altitude) för att matcha NED-ramen $altitude1 = -$altitude1; $altitude2 = -$altitude2; $altitude3 = -$altitude3; // Beräkna vektorer för P1-P2 (horisontell) och P1-P3 (vertikal) $v1 = [$easting2 - $easting1, $northing2 - $northing1, $altitude2 - $altitude1]; // Horisontell linje P1-P2 $v2 = [$easting3 - $easting1, $northing3 - $northing1, $altitude3 - $altitude1]; // Vertikal linje P1-P3 // Korsprodukt för att beräkna normalvektorn $n = [ $v1[1] * $v2[2] - $v1[2] * $v2[1], $v1[2] * $v2[0] - $v1[0] * $v2[2], $v1[0] * $v2[1] - $v1[1] * $v2[0] ]; // Beräkna heading som rotationen runt Z-axeln (xy-planet) $heading = rad2deg(atan2($northing2 - $northing1, $easting2 - $easting1)); // Om heading är negativ, lägg till 360 för att få det inom intervallet 0-360 grader if ($heading < 0) { $heading += 360; } $heading = 360 - $heading; // Beräkna roll: lutningen av linjen P1-P2 i förhållande till horisontalplanet $delta_z = $altitude2 - $altitude1; $delta_xy = sqrt(pow(($easting2 - $easting1), 2) + pow(($northing2 - $northing1), 2)); $roll = rad2deg(atan2($delta_z, $delta_xy)) -180; // Pitch: pitch här speglar lutningen framåt eller bakåt $pitch = rad2deg(atan2($n[2], sqrt($n[0] * $n[0] + $n[1] * $n[1]))) * -1; return [ 'roll' => $roll, 'pitch' => $pitch, 'heading' => $heading ]; } $sql = "SELECT * FROM tblCoordinates Order By TargetID, PointId"; $result = mysql_query($sql); $point = array(); while ($row = mysql_fetch_assoc($result)){ $point[] = array($row['TargetId'],$row['PointId'],$row['Easting'], $row['Northing'],$row['Altitude']); } foreach($point as $p){ if($p[1] == 1){ $p1 = array($p[2], $p[3], $p[4]); } if($p[1] == 2){ $p2 = array($p[2], $p[3], $p[4]); } if($p[1] == 3){ $p3 = array($p[2], $p[3], $p[4]); } if($p[1] == 3){ $result = calculateOrientation($p1, $p2, $p3); echo("Target: ".$p[0] ."<br>"); echo("Heading: " .$result['heading']."<br>"); echo("Pitch: " .$result['pitch']."<br>"); echo("Roll: " .$result['roll']."<br><br>"); } } ?>