/**
* @param float $lat -90.0 .. +90.0
* @param float $lng -180.0 .. +180.0
* @param Ellipsoid $ellipsoid if omitted, WGS-84 is used
*
* @throws \InvalidArgumentException
*/
public function __construct($lat, $lng, Ellipsoid $ellipsoid = null)
{
if (!$this->isValidLatitude($lat)) {
throw new \InvalidArgumentException("Latitude value must be numeric -90.0 .. +90.0 (given: {$lat})");
}
if (!$this->isValidLongitude($lng)) {
throw new \InvalidArgumentException("Longitude value must be numeric -180.0 .. +180.0 (given: {$lng})");
}
$this->lat = doubleval($lat);
$this->lng = doubleval($lng);
if ($ellipsoid !== null) {
$this->ellipsoid = $ellipsoid;
} else {
$this->ellipsoid = Ellipsoid::createDefault();
}
}