private static KeyValuePair <string, Resolution> ToResolution(Generated.TileMatrix tileMatrix, int[] ordinateOrder, double metersPerUnit = 1, ScaleSet ss = null) { // Get the coordinates var coords = tileMatrix.TopLeftCorner.Trim().Split(' '); // Try to get units per pixel from passed scale set var unitsPerPixel = tileMatrix.ScaleDenominator * ScaleHint / metersPerUnit; if (double.IsNaN(unitsPerPixel) || unitsPerPixel == 0) { if (ss == null) { throw new ArgumentNullException(); } unitsPerPixel = ss[tileMatrix.ScaleDenominator].GetValueOrDefault(0d); } return(new KeyValuePair <string, Resolution>(tileMatrix.Identifier.Value, new Resolution ( tileMatrix.Identifier.Value, unitsPerPixel, tileMatrix.TileWidth, tileMatrix.TileHeight, Convert.ToDouble(coords[ordinateOrder[0]], CultureInfo.InvariantCulture), Convert.ToDouble(coords[ordinateOrder[1]], CultureInfo.InvariantCulture), tileMatrix.MatrixWidth, tileMatrix.MatrixHeight, tileMatrix.ScaleDenominator))); }
private static KeyValuePair <string, Resolution> ToResolution(Generated.TileMatrix tileMatrix) { var coords = tileMatrix.TopLeftCorner.Trim().Split(' '); return(new KeyValuePair <string, Resolution>(tileMatrix.Identifier.Value, new Resolution { Id = tileMatrix.Identifier.Value, UnitsPerPixel = tileMatrix.ScaleDenominator * ScaleHint, ScaleDenominator = tileMatrix.ScaleDenominator, Left = Convert.ToDouble(coords[0], CultureInfo.InvariantCulture), Top = Convert.ToDouble(coords[1], CultureInfo.InvariantCulture), MatrixWidth = tileMatrix.MatrixWidth, MatrixHeight = tileMatrix.MatrixHeight, TileWidth = tileMatrix.TileWidth, TileHeight = tileMatrix.TileHeight })); }