2013-03-31 21:28:49 -05:00
|
|
|
<?php
|
|
|
|
|
|
2018-01-26 13:27:57 -06:00
|
|
|
/**
|
|
|
|
|
* SOM English class.
|
|
|
|
|
*
|
|
|
|
|
* All conversions are limited to 2 decimal places.
|
|
|
|
|
*/
|
2013-03-31 21:28:49 -05:00
|
|
|
class WPStrava_SOMEnglish extends WPStrava_SOM {
|
|
|
|
|
|
|
|
|
|
/**
|
2018-01-26 13:27:57 -06:00
|
|
|
* Change meters to miles.
|
|
|
|
|
*
|
2019-03-01 11:41:41 -06:00
|
|
|
* @param float|string $m Distance in meters.
|
|
|
|
|
* @return string Distance in miles.
|
2013-03-31 21:28:49 -05:00
|
|
|
*/
|
|
|
|
|
public function distance( $m ) {
|
2019-10-04 15:50:08 -05:00
|
|
|
return number_format_i18n( $m / 1609.344, 2 );
|
2013-03-31 21:28:49 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2018-01-26 13:27:57 -06:00
|
|
|
* Change miles to meters.
|
|
|
|
|
*
|
2019-10-04 15:50:08 -05:00
|
|
|
* @param float $dist Distance in miles.
|
|
|
|
|
* @return float Distance in meters.
|
2013-03-31 21:28:49 -05:00
|
|
|
*/
|
|
|
|
|
public function distance_inverse( $dist ) {
|
2019-10-04 15:50:08 -05:00
|
|
|
return (float) number_format( $dist * 1609.344, 2, '.', '' );
|
2013-03-31 21:28:49 -05:00
|
|
|
}
|
|
|
|
|
|
2018-01-26 13:27:57 -06:00
|
|
|
/**
|
|
|
|
|
* Abbreviated label for this system of measure's distance - Miles: mi.
|
|
|
|
|
*
|
|
|
|
|
* @return string 'mi.'
|
|
|
|
|
*/
|
2013-03-31 21:28:49 -05:00
|
|
|
public function get_distance_label() {
|
|
|
|
|
return __( 'mi.', 'wp-strava' );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2018-01-26 13:27:57 -06:00
|
|
|
* Change meters per second to miles per hour.
|
|
|
|
|
*
|
2019-03-01 11:41:41 -06:00
|
|
|
* @param float|string $mps Meters per second.
|
|
|
|
|
* @return string Miles per hour.
|
2013-03-31 21:28:49 -05:00
|
|
|
*/
|
|
|
|
|
public function speed( $mps ) {
|
2019-10-04 15:50:08 -05:00
|
|
|
return number_format_i18n( $mps * 2.2369, 2 );
|
2013-03-31 21:28:49 -05:00
|
|
|
}
|
|
|
|
|
|
2018-01-26 13:27:57 -06:00
|
|
|
/**
|
|
|
|
|
* Abbreviated label for this system of measure's speed - Miles Per Hour: mph
|
|
|
|
|
*
|
|
|
|
|
* @return string 'mph'
|
|
|
|
|
*/
|
2013-03-31 21:28:49 -05:00
|
|
|
public function get_speed_label() {
|
|
|
|
|
return __( 'mph', 'wp-strava' );
|
|
|
|
|
}
|
|
|
|
|
|
2018-11-09 15:18:27 -06:00
|
|
|
/**
|
2019-02-01 12:48:19 -06:00
|
|
|
* Change meters per second to minutes per mile.
|
2018-11-09 15:18:27 -06:00
|
|
|
*
|
2019-03-01 11:41:41 -06:00
|
|
|
* @param float|string $mps Meters per second.
|
|
|
|
|
* @return string Minutes Per Mile.
|
2018-11-09 15:18:27 -06:00
|
|
|
*/
|
|
|
|
|
public function pace( $mps ) {
|
|
|
|
|
|
|
|
|
|
if ( ! $mps ) {
|
|
|
|
|
return __( 'N/A', 'wp-strava' );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$mph = $mps * 2.2369;
|
|
|
|
|
$s = 3600 / $mph;
|
|
|
|
|
$ss = $s / 60;
|
|
|
|
|
$ms = floor( $ss ) * 60;
|
2019-03-01 11:41:41 -06:00
|
|
|
$sec = sprintf( '%02d', round( $s - $ms ) );
|
2018-11-09 15:18:27 -06:00
|
|
|
$min = floor( $ss );
|
|
|
|
|
|
|
|
|
|
return "{$min}:{$sec}";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Abbreviated label for this system of measure's pace - Minutes Per Mile: min/mile
|
|
|
|
|
*
|
|
|
|
|
* @return string 'min/mile'
|
|
|
|
|
*/
|
|
|
|
|
public function get_pace_label() {
|
|
|
|
|
return __( 'min/mile', 'wp-strava' );
|
|
|
|
|
}
|
|
|
|
|
|
2013-03-31 21:28:49 -05:00
|
|
|
/**
|
2018-01-26 13:27:57 -06:00
|
|
|
* Change meters to feet.
|
|
|
|
|
*
|
2019-03-01 11:41:41 -06:00
|
|
|
* @param float|string $m Elevation in meters.
|
|
|
|
|
* @return string Elevation in feet.
|
2013-03-31 21:28:49 -05:00
|
|
|
*/
|
|
|
|
|
public function elevation( $m ) {
|
2019-10-04 15:50:08 -05:00
|
|
|
return number_format_i18n( $m / 0.3048, 2 );
|
2013-03-31 21:28:49 -05:00
|
|
|
}
|
|
|
|
|
|
2018-01-26 13:27:57 -06:00
|
|
|
/**
|
|
|
|
|
* Abbreviated label for this system of measure's elevation - Feet: ft.
|
|
|
|
|
*
|
|
|
|
|
* @return string 'ft.'
|
|
|
|
|
*/
|
2013-03-31 21:28:49 -05:00
|
|
|
public function get_elevation_label() {
|
|
|
|
|
return __( 'ft.', 'wp-strava' );
|
|
|
|
|
}
|
2017-05-26 10:53:24 -05:00
|
|
|
}
|