public static Tuple <StandardChunkMetadata, bool> Parse(string x) { var parts = x.Split('.'); var split1 = Math.Max(x.IndexOf('n'), x.IndexOf('s')); var split2 = Math.Max(x.IndexOf('w'), x.IndexOf('e')); var lat = Angle.Parse(x.Substring(0, split1 + 1)); var lon = Angle.Parse(x.Substring(split1 + 1, split2 - split1)); var zoom = int.Parse(parts[0].Substring(split2 + 1)); bool isImage = (parts[2][0] == 'i'); var template = StandardChunkMetadata.GetRangeContaingPoint(lat, lon, zoom); var ggg = isImage ? Imaging.Images.Current.GetFileName(template) : Elevation.Heights.Current.GetFileName(template); if (ggg != x) { throw new InvalidOperationException(); } return(new Tuple <StandardChunkMetadata, bool>(template, isImage)); }
public static StandardChunkMetadata ParseBase(string x) { var parts = x.Split('.'); var split1 = Math.Max(x.IndexOf('n'), x.IndexOf('s')); var split2 = Math.Max(x.IndexOf('w'), x.IndexOf('e')); var lat = Angle.Parse(x.Substring(0, split1 + 1)); var lon = Angle.Parse(x.Substring(split1 + 1, split2 - split1)); var zoom = int.Parse(parts[0].Substring(split2 + 1)); return(StandardChunkMetadata.GetRangeContaingPoint(lat, lon, zoom)); }