Example #1
0
function findTakeoff($args)
{
    $sitePass = $args[0];
    $lat = $args[1];
    $lon = $args[2];
    if (!securityCheck($sitePass)) {
        return new IXR_Error(4000, 'Access Denied');
    }
    $firstPoint = new gpsPoint();
    $firstPoint->lat = $lat;
    $firstPoint->lon = $lon;
    // calc TAKEOFF - LANDING PLACES
    if (count($waypoints) == 0) {
        $waypoints = getWaypoints();
    }
    $takeoffIDTmp = 0;
    $minTakeoffDistance = 10000000;
    $i = 0;
    foreach ($waypoints as $waypoint) {
        $takeoff_distance = $firstPoint->calcDistance($waypoint);
        if ($takeoff_distance < $minTakeoffDistance) {
            $minTakeoffDistance = $takeoff_distance;
            $takeoffIDTmp = $waypoint->waypointID;
        }
        $i++;
    }
    $nearestWaypoint = new waypoint($takeoffIDTmp);
    $nearestWaypoint->getFromDB();
    // echo "&^".$nearestWaypoint->name."&";
    return array($nearestWaypoint, $minTakeoffDistance);
}
Example #2
0
 } else {
     if ($op == "find_wpt") {
         $lat = $_GET['lat'] + 0;
         $lon = $_GET['lon'] + 0;
         $firstPoint = new gpsPoint();
         $firstPoint->lat = $lat;
         $firstPoint->lon = $lon;
         // calc TAKEOFF - LANDING PLACES
         if (count($waypoints) == 0) {
             $waypoints = getWaypoints();
         }
         $takeoffIDTmp = 0;
         $minTakeoffDistance = 10000000;
         $i = 0;
         foreach ($waypoints as $waypoint) {
             $takeoff_distance = $firstPoint->calcDistance($waypoint);
             if ($takeoff_distance < $minTakeoffDistance) {
                 $minTakeoffDistance = $takeoff_distance;
                 $takeoffIDTmp = $waypoint->waypointID;
             }
             $i++;
         }
         $nearestWaypoint = new waypoint($takeoffIDTmp);
         $nearestWaypoint->getFromDB();
         header('Content-Type: text/xml');
         echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
         echo "<search>\n";
         echo $nearestWaypoint->exportXML('XML');
         echo "\n<distance>" . sprintf("%.0f", $minTakeoffDistance) . "</distance>\n";
         echo "</search>\n";
     } else {
Example #3
0
 function updateTakeoffLanding()
 {
     global $db;
     global $flightsTable, $waypoints;
     $firstPoint = new gpsPoint('', $this->timezone);
     $firstPoint->setLat($this->firstLat);
     $firstPoint->setLon($this->firstLon);
     $firstPoint->gpsTime = $this->firstPointTM;
     $lastPoint = new gpsPoint('', $this->timezone);
     $lastPoint->setLat($this->lastLat);
     $lastPoint->setLon($this->lastLon);
     $lastPoint->gpsTime = $this->lastPointTM;
     //$firstPoint=new gpsPoint($this->FIRST_POINT,$this->timezone);
     //$lastPoint=new gpsPoint($this->LAST_POINT,$this->timezone);
     // calc TAKEOFF - LANDING PLACES
     if (count($waypoints) == 0) {
         $waypoints = getWaypoints();
     }
     $takeoffIDTmp = 0;
     $minTakeoffDistance = 1000000;
     $landingIDTmp = 0;
     $minLandingDistance = 1000000;
     foreach ($waypoints as $waypoint) {
         $takeoff_distance = $firstPoint->calcDistance($waypoint);
         $landing_distance = $lastPoint->calcDistance($waypoint);
         if ($takeoff_distance < $minTakeoffDistance) {
             $minTakeoffDistance = $takeoff_distance;
             $takeoffIDTmp = $waypoint->waypointID;
         }
         if ($landing_distance < $minLandingDistance) {
             $minLandingDistance = $landing_distance;
             $landingIDTmp = $waypoint->waypointID;
         }
     }
     if ($this->takeoffID != $takeoffIDTmp || $this->takeoffVinicity != $minTakeoffDistance || $this->landingID != $landingIDTmp || $this->landingVinicity != $minLandingDistance) {
         $query = "UPDATE {$flightsTable} SET takeoffID='" . $takeoffIDTmp . "',  takeoffVinicity=" . $minTakeoffDistance . ",\n\t\t\t\t\t  landingID='" . $landingIDTmp . "', landingVinicity=" . $minLandingDistance . "  WHERE ID=" . $this->flightID . " ";
         // echo $query;
         $res = $db->sql_query($query);
         # Error checking
         if ($res <= 0) {
             echo "<H3> Error in Update Takeoff - landing  query! </H3>\n";
             exit;
         }
     }
     $this->takeoffID = $takeoffIDTmp;
     $this->takeoffVinicity = $minTakeoffDistance;
     $this->landingID = $landingIDTmp;
     $this->landingVinicity = $minLandingDistance;
 }
Example #4
0
function flights_find($arg)
{
    global $db, $flightsTable;
    global $takeoffRadious, $CONF;
    require_once "FN_pilot.php";
    $sitePass = $arg[0];
    $lat = $arg[1];
    $lon = -$arg[2];
    $limit = $arg[3];
    if (!securityCheck($sitePass)) {
        return new IXR_Error(4000, 'Access Denied');
    }
    $firstPoint = new gpsPoint();
    $firstPoint->lat = $lat;
    $firstPoint->lon = $lon;
    // calc TAKEOFF - LANDING PLACES
    if (count($waypoints) == 0) {
        $waypoints = getWaypoints(0, 1);
    }
    $takeoffIDTmp = 0;
    $minTakeoffDistance = 10000000;
    $i = 0;
    foreach ($waypoints as $waypoint) {
        $takeoff_distance = $firstPoint->calcDistance($waypoint);
        if ($takeoff_distance < $minTakeoffDistance) {
            $minTakeoffDistance = $takeoff_distance;
            $takeoffIDTmp = $waypoint->waypointID;
        }
        $i++;
    }
    $nearestWaypoint = new waypoint($takeoffIDTmp);
    $nearestWaypoint->getFromDB();
    //$nearestWaypoint;
    //$minTakeoffDistance;
    if ($limit > 0) {
        $lim = "LIMIT {$limit}";
    } else {
        $lim = "";
    }
    $where_clause = "AND takeoffID={$nearestWaypoint->waypointID}";
    $query = "SELECT * FROM {$flightsTable} WHERE private=0 {$where_clause} ORDER BY FLIGHT_POINTS  DESC {$lim} ";
    //echo $query;
    $res = $db->sql_query($query);
    if ($res <= 0) {
        return new IXR_Error(4000, 'Error in query! ' . $query);
    }
    $flights = array();
    $i = 0;
    while ($row = mysql_fetch_assoc($res)) {
        $name = getPilotRealName($row["userID"], $row["serverID"]);
        $link = htmlspecialchars("http://" . $_SERVER['SERVER_NAME'] . getLeonardoLink(array('op' => 'show_flight', 'flightID' => $row['ID'])));
        $this_year = substr($row['DATE'], 0, 4);
        $linkIGC = htmlspecialchars("http://" . $_SERVER['SERVER_NAME'] . getRelMainDir() . str_replace("%PILOTID%", getPilotID($row["userServerID"], $row["userID"]), str_replace("%YEAR%", $this_year, $CONF['paths']['igc'])) . '/' . $row['filename']);
        //$flightsRelPath."/".$row[userID]."/flights/".$this_year."/".$row[filename] );
        if ($row['takeoffVinicity'] > $takeoffRadious) {
            $location = getWaypointName($row['takeoffID']) . " [~" . sprintf("%.1f", $row['takeoffVinicity'] / 1000) . " km]";
        } else {
            $location = getWaypointName($row['takeoffID']);
        }
        $flights[$i]['pilot'] = htmlspecialchars($name);
        $flights[$i]['takeoff'] = htmlspecialchars($location);
        $flights[$i]['date'] = $row['DATE'];
        $flights[$i]['duration'] = $row['DURATION'];
        $flights[$i]['openDistance'] = $row['MAX_LINEAR_DISTANCE'];
        $flights[$i]['OLCkm'] = $row['FLIGHT_KM'];
        $flights[$i]['OLCScore'] = $row['FLIGHT_POINTS'];
        $flights[$i]['OLCtype'] = $row['BEST_FLIGHT_TYPE'];
        $flights[$i]['displayLink'] = $link;
        $i++;
    }
    return array($i, $flights);
    //return array($i,0);
}