protected function execute(InputInterface $input, OutputInterface $output)
{
$ellipsoid = Ellipsoid::createFromName($input->getOption('ellipsoid'));
$from = new Coordinate($input->getArgument('origin'), $ellipsoid);
$to = new Coordinate($input->getArgument('destination'), $ellipsoid);
$geotools = new Geotools();
$distance = $geotools->distance()->setFrom($from)->setTo($to);
if ($input->getOption('km')) {
$distance->in('km');
}
if ($input->getOption('mi')) {
$distance->in('mi');
}
if ($input->getOption('ft')) {
$distance->in('ft');
}
$output->writeln(sprintf('<value>%s</value>', $distance->haversine()));
}