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