Code Coverage Lines Functions and Methods Classes and Traits Total 52.94% covered (warning) 52.94% 9 / 17 33.33% covered (danger) 33.33% 2 / 6 CRAP 0.00% covered (danger) 0.00% 0 / 1 BoundingBox 52.94% covered (warning) 52.94% 9 / 17 33.33% covered (danger) 33.33% 2 / 6 14.67 0.00% covered (danger) 0.00% 0 / 1 __construct 100.00% covered (success) 100.00% 5 / 5 100.00% covered (success) 100.00% 1 / 1 1 newFromPoints 0.00% covered (danger) 0.00% 0 / 2 0.00% covered (danger) 0.00% 0 / 1 2 topLeft 0.00% covered (danger) 0.00% 0 / 1 0.00% covered (danger) 0.00% 0 / 1 2 bottomRight 0.00% covered (danger) 0.00% 0 / 1 0.00% covered (danger) 0.00% 0 / 1 2 area 0.00% covered (danger) 0.00% 0 / 4 0.00% covered (danger) 0.00% 0 / 1 2 center 100.00% covered (success) 100.00% 4 / 4 100.00% covered (success) 100.00% 1 / 1 3
 1 lat1 = \$lat1; 30 \$this->lon1 = \$lon1; 31 \$this->lat2 = \$lat2; 32 \$this->lon2 = \$lon2; 33 \$this->globe = \$globe; 34 } 35 36 /** 37 * Constructs a bounding box from 2 corner coordinates 38 * 39 * @param Coord \$topLeft 40 * @param Coord \$bottomRight 41 * @return self 42 */ 43 public static function newFromPoints( Coord \$topLeft, Coord \$bottomRight ): self { 44 return new self( \$topLeft->lat, \$topLeft->lon, \$bottomRight->lat, \$bottomRight->lon, 45 \$topLeft->globe ); 46 } 47 48 /** 49 * @return Coord Top left corner of this bounding box 50 */ 51 public function topLeft(): Coord { 52 return new Coord( \$this->lat1, \$this->lon1, \$this->globe ); 53 } 54 55 /** 56 * @return Coord Bottom right corner of this bounding box 57 */ 58 public function bottomRight(): Coord { 59 return new Coord( \$this->lat2, \$this->lon2, \$this->globe ); 60 } 61 62 /** 63 * Computes a (very approximate) area of this bounding box 64 * 65 * @return float 66 */ 67 public function area() { 68 \$midLat = ( \$this->lat2 + \$this->lat1 ) / 2; 69 \$vert = Math::distance( \$this->lat1, 0, \$this->lat2, 0 ); 70 \$horz = Math::distance( \$midLat, \$this->lon1, \$midLat, \$this->lon2 ); 71 72 return \$horz * \$vert; 73 } 74 75 /** 76 * Returns center of this bounding box 77 * 78 * @return Coord 79 */ 80 public function center(): Coord { 81 \$lon = ( \$this->lon2 + \$this->lon1 ) / 2.0; 82 if ( \$this->lon1 > \$this->lon2 ) { 83 // Wrap around 84 \$lon += ( \$lon < 0 ) ? 180 : -180; 85 } 86 87 return new Coord( ( \$this->lat1 + \$this->lat2 ) / 2.0, \$lon ); 88 } 89 }