Add functions for validating longitudes and latitutdes

This commit is contained in:
Joshua Ramon Enslin 2022-07-28 11:01:30 +02:00
parent c362aa1283
commit f477401114
Signed by: jrenslin
GPG Key ID: 46016F84501B70AE
2 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,20 @@
<?PHP
declare(strict_types = 1);
/**
* Custom exception class for coordinates (longitude, latitude) that are out
* of range (-90 - 90 for latitudes, -180 to 180 for longitudes).
*/
final class MDCoordinateOutOfRange extends MDExpectedException {
/**
* Error message.
*
* @return string
*/
public function errorMessage() {
//error message
$errorMsg = 'Parameter: <b>' . $this->getMessage() . '</b> is not a valid, numeric values.';
return $errorMsg;
}
}

View File

@ -295,6 +295,46 @@ final class MD_STD_IN {
}
/**
* Validates a coordinate.
*
* @param string|integer $input Input string.
*
* @return float
*/
public static function validate_longitude(string|int $input):float {
if (is_string($input)) $output = self::sanitize_float($input);
else $output = $input;
if ($output < -180 || $output > 180) {
throw new MDCoordinateOutOfRange("Longitude out of range");
}
return $output;
}
/**
* Validates a coordinate.
*
* @param string|integer $input Input string.
*
* @return float
*/
public static function validate_latitude(string|int $input):float {
if (is_string($input)) $output = self::sanitize_float($input);
else $output = $input;
if ($output < -90 || $output > 90) {
throw new MDCoordinateOutOfRange("Latitude out of range");
}
return $output;
}
/**
* Validates ISBNs. Empty strings are accepted as well.
*