/**
  * @param IPointGlobal $zeroPoint
  * @param IPointGlobal $endPoint
  * @param FieldConfiguration $config
  * @param float $width track width in meters
  */
 public function __construct(IPointGlobal $zeroPoint, IPointGlobal $endPoint, FieldConfiguration $config, $width)
 {
     $this->zeroPoint = $zeroPoint->convertToLocal($config);
     $this->endPoint = $endPoint->convertToLocal($config);
     $diff = $this->endPoint->subtract($this->zeroPoint, $config);
     $this->factor = max(abs($diff->getLatitude()), abs($diff->getLongitude()));
     $this->vector = new LinearVector($diff);
     $absDiff = new LinearVector($endPoint->subtract($zeroPoint));
     $this->cursor = new FieldCursor($this->zeroPoint, $absDiff->getPerpendicular(), $config, $width);
 }