示例#1
0
 /**
  * @param Coordinate   $coordinate
  * @param DistanceUnit $unit
  */
 public function distance(Coordinate $coordinate, DistanceUnit $unit = null)
 {
     $latA = \deg2rad($this->latitude());
     $lngA = \deg2rad($this->longitude());
     $latB = \deg2rad($coordinate->latitude());
     $lngB = \deg2rad($coordinate->longitude());
     $degrees = \acos(\sin($latA) * \sin($latB) + \cos($latA) * \cos($latB) * \cos($lngB - $lngA));
     $unit = $unit === null ? DistanceUnit::METER() : $unit;
     return (new Distance(Real::fromNative($degrees * self::EARTH_RADIUS), DistanceUnit::METER()))->in($unit);
 }
示例#2
0
文件: Near.php 项目: cubiche/cubiche
 /**
  * @param SelectorInterface $selector
  * @param Coordinate        $coordinate
  * @param Distance          $radius
  */
 public function __construct(SelectorInterface $selector, Coordinate $coordinate, Distance $radius = null)
 {
     $this->selector = $selector;
     $this->coordinate = $coordinate;
     $this->radius = $radius === null ? new Distance(Real::fromNative(self::DEFAULT_RADIUS), DistanceUnit::METER()) : $radius;
 }