示例#1
0
        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)));
        }
示例#2
0
        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
            }));
        }