"; $prefix = "%20Airport"; $num = 3; if (isset($_GET['num'])) $num = $_GET['num']; function pre_great_circle_distance($ptalis, $pgnolis, $one, $two, $three, $four, $five, $six, $seven, $eight, $sanity) { global $alat; global $along; $alat = ($one + ($two / 60.00) + ($three / 3600.0)); $along = ($five + ($six / 60.00) + ($seven / 3600.0)); if ($one == 0 && $two == 0 && $three == 0 && $five == 0 && $six == 0 && $seven == 0) { return -9.0; } else { //echo "*" . $sanity . "+++" . $four . "---" . $eight . "*"; if ($four == "S" && $eight == "U") $alat = -($one + ($two / 60.00) + ($three / 3600.0)); if ($four == "S" && $eight == "U") $along = -($five + ($six / 60.00) + ($seven / 3600.0)); if ($four != "S" && $eight == "U") $alat = ($one + ($two / 60.00) + ($three / 3600.0)); if ($four != "S" && $eight == "U") $along = -($five + ($six / 60.00) + ($seven / 3600.0)); if ($four == "S" && $eight != "U") $alat = -($one + ($two / 60.00) + ($three / 3600.0)); if ($four == "S" && $eight != "U") $along = ($five + ($six / 60.00) + ($seven / 3600.0)); return great_circle_distance($ptalis, $pgnolis, $alat, $along); } } function great_circle_distance($talis, $gnolis, $latis, $longis) { $ourdist=0.0; $rgnol=(($gnolis) * pi() / 180.0); $rtal=(($talis) * pi() / 180.0); $rlong=(($longis) * pi() / 180.0); $rlat=(($latis) * pi() / 180.0); $deltalong = abs(((($gnolis)-($longis)) * pi() / 180.0)); $acof = (sin($rtal) * sin($rlat)) + (cos($rtal) * cos($rlat) * cos($deltalong)); // via http://en.wikipedia.org/wiki/Great-circle_distance ... thanks $ourdist = (round((acos($acof) * 6371000.0) + 0.00001) * 100) / 100; return $ourdist; } $nsf = -9.0; $name = ""; $glat = 0.0; $glong = 0.0; $mindist = -9.0; if (isset($_GET['lat']) && isset($_GET['long'])) { $adb = @file_get_contents("GlobalAirportDatabase/GlobalAirportDatabase.txt"); $cols = explode(":", "0000 " . $adb); for ($j=0; $j<$num; $j++) { for ($i=0; $i= 12) { $distis = pre_great_circle_distance($_GET['lat'], $_GET['long'], $cols[$i + 5], $cols[$i + 6], $cols[$i + 7], $cols[$i + 8], $cols[$i + 9], $cols[$i + 10], $cols[$i + 11], $cols[$i + 12], $cols[$i + 0]); if ($distis >= 0.0 && $distis > $mindist && ($nsf < 0.0 || $distis < $nsf)) { $nsf = $distis; $name = $cols[$i + 1] . "/" . $cols[$i + 2] . "/" . $cols[$i + 3] . "/" . $cols[$i + 4]; $glat = $alat; $glong = $along; //echo $name . " " , $glat . " " . $glong . " " . $nsf . "\n"; } } } if ($glat != 0.0 || $glong != 0.0) { $proposed = str_replace("", "\n parent.document.getElementById('myiframe').src=parent.document.getElementById('myiframe').src + ',[" . round($glat, 4) . "," . round($glong, 4) . ",~Nearest" . $prefix . "%20on%20GlobalAirportDatabase%20" . round($nsf / 1000.0) . "km%20to%20" . $name . "~]'; \n" . "", $proposed); $prefix = (str_replace("%20Airport", "", $prefix) . "-"); $mindist = $nsf; $nsf = -9.0; $name = ""; $glat = 0.0; $glong = 0.0; $distis = 0.0; } } echo $proposed; } else if (isset($_GET['plot']) && 1 == 2) { $adb = @file_get_contents("GlobalAirportDatabase/GlobalAirportDatabase.txt"); $cols = explode(":", "0000 " . $adb); for ($i=0; $i= 12) { $distis = pre_great_circle_distance($_GET['lat'], $_GET['long'], $cols[$i + 5], $cols[$i + 6], $cols[$i + 7], $cols[$i + 8], $cols[$i + 9], $cols[$i + 10], $cols[$i + 11], $cols[$i + 12], $cols[$i + 0]); if ($distis >= 0.0 && ($nsf < 0.0 || $distis < $nsf)) { //$nsf = $distis; $name = $cols[$i + 1] . "/" . $cols[$i + 2] . "/" . $cols[$i + 3] . "/" . $cols[$i + 4]; $glat = $alat; $glong = $along; $proposed = str_replace("", "\n parent.document.getElementById('mya').title='" . $glat . "," . $glong . "'; parent.document.getElementById('mya').click(); \n" . "", $proposed); } echo $proposed; } } } ?>