Вход Регистрация
Файл: vendor/fakerphp/faker/src/Faker/Core/Coordinates.php
Строк: 84
<?php

declare(strict_types=1);

namespace 
FakerCore;

use 
FakerExtensionExtension;

class 
Coordinates implements Extension
{
    
/**
     * @example '77.147489'
     *
     * @return float Uses signed degrees format (returns a float number between -90 and 90)
     */
    
public function latitude(float $min = -90.0float $max 90.0): float
    
{
        if (
$min < -90 || $max < -90) {
            throw new 
LogicException('Latitude cannot be less that -90.0');
        }

        if (
$min 90 || $max 90) {
            throw new 
LogicException('Latitude cannot be greater that 90.0');
        }

        return 
$this->randomFloat(6$min$max);
    }

    
/**
     * @example '86.211205'
     *
     * @return float Uses signed degrees format (returns a float number between -180 and 180)
     */
    
public function longitude(float $min = -180.0float $max 180.0): float
    
{
        if (
$min < -180 || $max < -180) {
            throw new 
LogicException('Longitude cannot be less that -180.0');
        }

        if (
$min 180 || $max 180) {
            throw new 
LogicException('Longitude cannot be greater that 180.0');
        }

        return 
$this->randomFloat(6$min$max);
    }

    
/**
     * @example array('77.147489', '86.211205')
     *
     * @return array{latitude: float, longitude: float}
     */
    
public function localCoordinates(): array
    {
        return [
            
'latitude' => static::latitude(),
            
'longitude' => static::longitude(),
        ];
    }

    private function 
randomFloat(int $nbMaxDecimalsfloat $minfloat $max): float
    
{
        if (
$min $max) {
            throw new 
LogicException('Invalid coordinates boundaries');
        }

        return 
round($min mt_rand() / mt_getrandmax() * ($max $min), $nbMaxDecimals);
    }
}
Онлайн: 1
Реклама