code: public static function fromString(string $string, Ellipsoid $ellipsoid = null): Coordinate
      {
          $string = self::mergeSecondsToMinutes($string);
  
          $result = self::parseDecimalMinutesWithoutCardinalLetters($string, $ellipsoid);
  
          if ($result instanceof Coordinate) {
              return $result;
          }
  
          $result = self::parseDecimalMinutesWithCardinalLetters($string, $ellipsoid);
  
          if ($result instanceof Coordinate) {
              return $result;
          }
  
          $result = self::parseDecimalDegreesWithoutCardinalLetters($string, $ellipsoid);
  
          if ($result instanceof Coordinate) {
              return $result;
          }
  
          $result = self::parseDecimalDegreesWithCardinalLetters($string, $ellipsoid);
  
          if ($result instanceof Coordinate) {
              return $result;
          }
  
          throw new InvalidArgumentException('Format of coordinates was not recognized');
      }
docs: Creates a Coordinate instance from the given string.
  
  The string is parsed by a regular expression for a known
  format of geographical coordinates.
  
  @param string $string formatted geographical coordinate
  @param Ellipsoid $ellipsoid
  
  @return Coordinate
  @throws InvalidArgumentException