Example #1
0
 /**
  * Function: deriveConstants
  * Sets several derived constant values and initialization of datum and ellipse parameters.
  *
  */
 public function deriveConstants()
 {
     if (isset($this->nagrids) && $this->nagrids == '@null') {
         $this->datumCode = 'none';
     }
     if (isset($this->datumCode) && $this->datumCode != 'none') {
         $datumDef = $this->proj4php->getDatum($this->datumCode);
         if (is_array($datumDef)) {
             $this->datum_params = array_key_exists('towgs84', $datumDef) ? explode(',', $datumDef['towgs84']) : null;
             $this->ellps = $datumDef['ellipse'];
             $this->datumName = array_key_exists('name', $datumDef) ? $datumDef['name'] : $this->datumCode;
         }
     }
     // Do we have an ellipsoid?
     if (!isset($this->a)) {
         if (!isset($this->ellps) || strlen($this->ellps) == 0 || !$this->proj4php->hasEllipsoid($this->ellps)) {
             $ellipse = $this->proj4php->getEllipsoid('WGS84');
         } else {
             $ellipse = $this->proj4php->getEllipsoid($this->ellps);
         }
         Proj4php::extend($this, $ellipse);
     }
     if (isset($this->rf) && !isset($this->b)) {
         $this->b = (1.0 - 1.0 / $this->rf) * $this->a;
     }
     if (isset($this->rf) && $this->rf === 0 || abs($this->a - $this->b) < Common::EPSLN) {
         $this->sphere = true;
         $this->b = $this->a;
     }
     // used in geocentric
     $this->a2 = $this->a * $this->a;
     // used in geocentric
     $this->b2 = $this->b * $this->b;
     // e ^ 2
     $this->es = ($this->a2 - $this->b2) / $this->a2;
     // eccentricity
     $this->e = sqrt($this->es);
     if (isset($this->R_A)) {
         $this->a *= 1.0 - $this->es * (Common::SIXTH + $this->es * (Common::RA4 + $this->es * Common::RA6));
         $this->a2 = $this->a * $this->a;
         $this->b2 = $this->b * $this->b;
         $this->es = 0.0;
     }
     // used in geocentric
     $this->ep2 = ($this->a2 - $this->b2) / $this->b2;
     if (!isset($this->k0)) {
         // default value
         $this->k0 = 1.0;
     }
     // DGR 2010-11-12: axis
     if (!isset($this->axis)) {
         $this->axis = "enu";
     }
     $this->datum = new Datum($this);
 }