Author: Antoine Corcy (contact@sbin.dk)
Inheritance: extends League\Geotools\AbstractGeotools, implements League\Geotools\Distance\DistanceInterface
 /**
  * Calculates the distance between two Coordinate objects
  *
  * @param  Coordinate      $coordinate
  * @param  DistanceUnit    $unit
  * @param  DistanceFormula $formula
  * @return Real
  */
 public function distanceFrom(Coordinate $coordinate, DistanceUnit $unit = null, DistanceFormula $formula = null)
 {
     if (null === $unit) {
         $unit = DistanceUnit::METER();
     }
     if (null === $formula) {
         $formula = DistanceFormula::FLAT();
     }
     $baseThis = static::getBaseCoordinate($this);
     $baseCoordinate = static::getBaseCoordinate($coordinate);
     $distance = new Distance();
     $distance->setFrom($baseThis)->setTo($baseCoordinate)->in($unit->toNative());
     $value = \call_user_func(array($distance, $formula->toNative()));
     return new Real($value);
 }