Longitude::normalize()   A
last analyzed

Complexity

Conditions 4
Paths 5

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 10
rs 9.2
cc 4
eloc 5
nc 5
nop 1
1
<?php
2
3
/**
4
 * This file is part of the Cubiche package.
5
 *
6
 * Copyright (c) Cubiche
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
namespace Cubiche\Domain\Geolocation;
12
13
use Cubiche\Domain\System\Real;
14
15
/**
16
 * Longitude Class.
17
 *
18
 * @author Karel Osorio Ramírez <[email protected]>
19
 */
20
class Longitude extends Real
21
{
22
    /**
23
     * @param float $value
24
     */
25
    public function __construct($value)
26
    {
27
        parent::__construct($this->normalize($value));
28
    }
29
30
    /**
31
     * @param float $longitude
32
     *
33
     * @return float
34
     */
35
    private function normalize($longitude)
36
    {
37
        if ($longitude % 360 === 180) {
38
            return 180.0;
39
        }
40
41
        $mod = \fmod($longitude, 360);
42
43
        return (double) $mod < -180 ? $mod + 360 : ($mod > 180 ? $mod - 360 : $mod);
44
    }
45
}
46