/// <summary>
/// Returns a <see cref="AxisInfo"/> given a piece of WKT.
/// </summary>
/// <param name="tokenizer">WktStreamTokenizer that has the WKT.</param>
/// <returns>An AxisInfo object.</returns>
private static AxisInfo ReadAxis(WktStreamTokenizer tokenizer)
{
if (tokenizer.GetStringValue() != "AXIS")
{
tokenizer.ReadToken("AXIS");
}
tokenizer.ReadToken("[");
string axisName = tokenizer.ReadDoubleQuotedWord();
tokenizer.ReadToken(",");
tokenizer.NextToken();
string unitname = tokenizer.GetStringValue();
tokenizer.ReadToken("]");
switch (unitname.ToUpper())
{
case "DOWN": return(new AxisInfo(axisName, AxisOrientationEnum.Down));
case "EAST": return(new AxisInfo(axisName, AxisOrientationEnum.East));
case "NORTH": return(new AxisInfo(axisName, AxisOrientationEnum.North));
case "OTHER": return(new AxisInfo(axisName, AxisOrientationEnum.Other));
case "SOUTH": return(new AxisInfo(axisName, AxisOrientationEnum.South));
case "UP": return(new AxisInfo(axisName, AxisOrientationEnum.Up));
case "WEST": return(new AxisInfo(axisName, AxisOrientationEnum.West));
default:
throw new ArgumentException("Invalid axis name '" + unitname + "' in WKT");
}
}