public function __get($name) { $name = strtolower($name); switch ($name) { case 'ne': return $this->northEast; break; case 'sw': return $this->southWest; break; case 'center': return $this->getCenter(); break; case 'diagonal': return GeoCoordinate::getDistanceInMeters($this->northEast->lat, $this->northEast->lon, $this->southWest->lat, $this->southWest->lon); break; } return null; }
/** * Move this point at a given distance in meters * @param float $nord To the north (meters) * @param float $east To the East (meters) */ public function move($nord, $east) { GeoCoordinate::moveCoordinatesInMeters($this->latitude, $this->longitude, $nord, $east); }
function testSaveLoadAggrigatedObjectByGetter() { $place = new GeoCoordinate(); $place->setLatitude($latitude = 'latitude'); $place->setLongitude($longitude = 'longitude'); $photo = new PhotoForTest(); $photo->setPlace($place); $photo->save(); $photo2 = lmbActiveRecord::findById('PhotoForTest', $photo->getId()); $this->assertIsA($photo2->getPlace(), 'GeoCoordinate'); $this->assertEqual($photo2->getPlace()->getLatitude(), $latitude); $this->assertEqual($photo2->getPlace()->getLongitude(), $longitude); }