array (6377563, 0.00667054), "Australian National" =>array (6378160, 0.006694542), "Bessel 1841" =>array (6377397, 0.006674372), "Bessel 1841 Nambia" =>array (6377484, 0.006674372), "Clarke 1866" =>array (6378206, 0.006768658), "Clarke 1880" =>array (6378249, 0.006803511), "Everest" =>array (6377276, 0.006637847), "Fischer 1960 Mercury" =>array (6378166, 0.006693422), "Fischer 1968" =>array (6378150, 0.006693422), "GRS 1967" =>array (6378160, 0.006694605), "GRS 1980" =>array (6378137, 0.00669438), "Helmert 1906" =>array (6378200, 0.006693422), "Hough" =>array (6378270, 0.00672267), "International" =>array (6378388, 0.00672267), "Krassovsky" =>array (6378245, 0.006693422), "Modified Airy" =>array (6377340, 0.00667054), "Modified Everest" =>array (6377304, 0.006637847), "Modified Fischer 1960" =>array (6378155, 0.006693422), "South American 1969" =>array (6378160, 0.006694542), "WGS 60" =>array (6378165, 0.006693422), "WGS 66" =>array (6378145, 0.006694542), "WGS 72" =>array (6378135, 0.006694318), "WGS 84" =>array (6378137, 0.00669438)); // Properties var $a; // Equatorial Radius var $e2; // Square of eccentricity var $datum; // Selected datum var $Xp, $Yp; // X,Y pixel location var $lat, $long; // Latitude & Longitude of the point var $utmNorthing, $utmEasting, $utmZone; // UTM Coordinates of the point var $lccNorthing, $lccEasting; // Lambert coordinates of the point var $falseNorthing, $falseEasting; // Origin coordinates for Lambert Projection var $latOfOrigin; // For Lambert Projection var $longOfOrigin; // For Lambert Projection var $firstStdParallel; // For lambert Projection var $secondStdParallel; // For lambert Projection // constructor function gPoint($datum='WGS 84') // Default datum is WGS 84 { $this->a = $this->ellipsoid[$datum][0]; // Set datum Equatorial Radius $this->e2 = $this->ellipsoid[$datum][1]; // Set datum Square of eccentricity $this->datum = $datum; // Save the datum } // // Set/Get/Output Longitude & Latitude of the point // function setLongLat($long, $lat) { $this->long = $long; $this->lat = $lat; } function convertLLtoTM($LongOrigin='') { $k0 = 0.9996; $falseEasting = 500000.0; //Make sure the longitude is between -180.00 .. 179.9 $LongTemp = ($this->long+180)-(integer)(($this->long+180)/360)*360-180; // -180.00 .. 179.9; $LatRad = deg2rad($this->lat); $LongRad = deg2rad($LongTemp); $ZoneNumber=35; // Added by Petko Yotov $LongOrigin = ($ZoneNumber - 1)*6 - 180 + 3; //+3 puts origin in middle of zone $LongOriginRad = deg2rad($LongOrigin); $eccPrimeSquared = ($this->e2)/(1-$this->e2); $N = $this->a/sqrt(1-$this->e2*sin($LatRad)*sin($LatRad)); $T = tan($LatRad)*tan($LatRad); $C = $eccPrimeSquared*cos($LatRad)*cos($LatRad); $A = cos($LatRad)*($LongRad-$LongOriginRad); $M = $this->a*((1 - $this->e2/4 - 3*$this->e2*$this->e2/64 - 5*$this->e2*$this->e2*$this->e2/256)*$LatRad - (3*$this->e2/8 + 3*$this->e2*$this->e2/32 + 45*$this->e2*$this->e2*$this->e2/1024)*sin(2*$LatRad) + (15*$this->e2*$this->e2/256 + 45*$this->e2*$this->e2*$this->e2/1024)*sin(4*$LatRad) - (35*$this->e2*$this->e2*$this->e2/3072)*sin(6*$LatRad)); $this->utmEasting = ($k0*$N*($A+(1-$T+$C)*$A*$A*$A/6 + (5-18*$T+$T*$T+72*$C-58*$eccPrimeSquared)*$A*$A*$A*$A*$A/120) + $falseEasting); $this->utmNorthing = ($k0*($M+$N*tan($LatRad)*($A*$A/2+(5-$T+9*$C+4*$C*$C)*$A*$A*$A*$A/24 + (61-58*$T+$T*$T+600*$C-330*$eccPrimeSquared)*$A*$A*$A*$A*$A*$A/720))); if($this->lat < 0) $this->utmNorthing += 10000000.0; //10000000 meter offset for southern hemisphere } } // end of class gPoint // Next code by Petko Yotov function create_link($lat, $lon, $ell) { $gpoint =& new gPoint($ell); $gpoint->setLongLat($lon, $lat); $gpoint->convertLLtoTM(''); $mapX = round($gpoint->utmEasting); $mapY = round($gpoint->utmNorthing); $minx = $mapX-14425; $maxx = $mapX+14425; $miny = $mapY-10000; $maxy = $mapY+10000; $base_url = "http://www.emaps.bg/emaps/content.asp?mapSize=1&cboMaps=0"; $url = "$base_url&minx=$minx&maxx=$maxx&miny=$miny&maxy=$maxy"; return $url; } function message($en, $bg) { header("Content-type: text/html; charset=UTF-8"); echo <<Error... Грешка...

Error... Грешка...

$en
You can:

$bg
Можете:


Script by Petko Yotov.
EOF; exit; } if(strtolower($_GET['q']) == "source") { header("Content-type: text/html; charset=UTF-8"); highlight_file(__FILE__); exit; } if(!isset($_GET['q']) || preg_match("/[^0-9,\.]/", trim($_GET['q']) ) ) { message("No coordinates requested or illegal character", "Не са посочени координати или е въведен неразрешен символ"); } list($lat, $lon) = explode(",", $_GET['q'], 2); $lat = floatval($lat); // 41..45 $lon = floatval($lon); // 22..29 if($lat<41 || $lat>45 || $lon<22 || $lon>29 ) { message("Coordinates are out of range. Lattitude '$lat' (must be 41..45), Longitude '$lon' (must be 22..29)", "Координатите са извън картата. Ширина: '$lat' (трябва да е 41..45), дължина: '$lon' (трябва да е 22..29)"); } $url = create_link($lat, $lon, "WGS 84"); header("Location: $url"); exit; ?>