code: public static PointLocation parsePointLocation(final String representation)
      throws ParserException
    {
      if (StringUtils.isBlank(representation))
      {
        throw new ParserException("No point location value provided");
      }
      if (!StringUtils.endsWith(representation, "/"))
      {
        throw new ParserException("Point location value must be terminated with /");
      }
  
      final PointLocationParser parser = new PointLocationParser();
      final CoordinateParser coordinateParser = new CoordinateParser();
      // Split by group
      final List<String> tokens = parser.split(representation);
      if (tokens.size() != 4)
      {
        throw new ParserException("Cannot parse " + representation);
      }
  
      final Latitude latitude = coordinateParser.parseLatitude(tokens.get(0));
      final Longitude longitude = coordinateParser.parseLongitude(tokens.get(1));
      final double altitude = NumberUtils.toDouble(tokens.get(2));
      final String coordinateReferenceSystemIdentifier = StringUtils
        .trimToEmpty(tokens.get(3));
  
      final PointLocation pointLocation = new PointLocation(latitude,
                                                            longitude,
                                                            altitude,
                                                            coordinateReferenceSystemIdentifier);
      return pointLocation;
    }
docs: Parses a string representation of the point location.
  
  @param representation
  String representation of the point location
  @return Point location
  @throws ParserException
  On an exception