private static Extent TileToWorldNormal(TileRange range, string levelId, ITileSchema schema) { var resolution = schema.Resolutions[levelId]; var tileWorldUnits = resolution.UnitsPerPixel * schema.GetTileWidth(levelId); var minX = range.FirstCol * tileWorldUnits + schema.GetOriginX(levelId); var minY = range.FirstRow * tileWorldUnits + schema.GetOriginY(levelId); var maxX = (range.FirstCol + range.ColCount) * tileWorldUnits + schema.GetOriginX(levelId); var maxY = (range.FirstRow + range.RowCount) * tileWorldUnits + schema.GetOriginY(levelId); return new Extent(minX, minY, maxX, maxY); }
private static TileRange WorldToTileNormal(Extent extent, string levelId, ITileSchema schema) { var resolution = schema.Resolutions[levelId]; var tileWorldUnits = resolution.UnitsPerPixel * schema.GetTileWidth(levelId); var firstCol = (int)Math.Floor((extent.MinX - schema.GetOriginX(levelId)) / tileWorldUnits); var firstRow = (int)Math.Floor((extent.MinY - schema.GetOriginY(levelId)) / tileWorldUnits); var lastCol = (int)Math.Ceiling((extent.MaxX - schema.GetOriginX(levelId)) / tileWorldUnits); var lastRow = (int)Math.Ceiling((extent.MaxY - schema.GetOriginY(levelId)) / tileWorldUnits); return new TileRange(firstCol, firstRow, lastCol - firstCol, lastRow - firstRow); }
private static TileRange WorldToTileInvertedY(Extent extent, string levelId, ITileSchema schema) { var resolution = schema.Resolutions[levelId]; var tileWorldUnits = resolution.UnitsPerPixel * schema.GetTileWidth(levelId); var firstCol = (int)Math.Floor((extent.MinX - schema.GetOriginX(levelId)) / tileWorldUnits + Tolerance); var firstRow = (int)Math.Floor((-extent.MaxY + schema.GetOriginY(levelId)) / tileWorldUnits + Tolerance); var lastCol = (int)Math.Ceiling((extent.MaxX - schema.GetOriginX(levelId)) / tileWorldUnits - Tolerance); var lastRow = (int)Math.Ceiling((-extent.MinY + schema.GetOriginY(levelId)) / tileWorldUnits - Tolerance); return(new TileRange(firstCol, firstRow, lastCol - firstCol, lastRow - firstRow)); }
public static TileRange WorldToTileNormal(Extent extent, string levelId, ITileSchema schema) { var resolution = schema.Resolutions[levelId]; var tileWorldUnits = resolution.UnitsPerPixel * schema.GetTileWidth(levelId); var firstCol = (int)Math.Floor((extent.MinX - schema.GetOriginX(levelId)) / tileWorldUnits); var firstRow = (int)Math.Floor((extent.MinY - schema.GetOriginY(levelId)) / tileWorldUnits); var lastCol = (int)Math.Ceiling((extent.MaxX - schema.GetOriginX(levelId)) / tileWorldUnits); var lastRow = (int)Math.Ceiling((extent.MaxY - schema.GetOriginY(levelId)) / tileWorldUnits); return(new TileRange(firstCol, firstRow, lastCol - firstCol, lastRow - firstRow)); }
private static Extent TileToWorldInvertedY(TileRange range, int level, ITileSchema schema) { var resolution = schema.Resolutions[level]; var tileWidthWorldUnits = resolution.UnitsPerPixel * schema.GetTileWidth(level); var tileHeightWorldUnits = resolution.UnitsPerPixel * schema.GetTileHeight(level); var minX = range.FirstCol * tileWidthWorldUnits + schema.GetOriginX(level); var minY = -(range.FirstRow + range.RowCount) * tileHeightWorldUnits + schema.GetOriginY(level); var maxX = (range.FirstCol + range.ColCount) * tileWidthWorldUnits + schema.GetOriginX(level); var maxY = -(range.FirstRow) * tileHeightWorldUnits + schema.GetOriginY(level); return(new Extent(minX, minY, maxX, maxY)); }
private static TileRange WorldToTileNormal(Extent extent, int level, ITileSchema schema) { var resolution = schema.Resolutions[level]; var tileWidthWorldUnits = resolution.UnitsPerPixel * schema.GetTileWidth(level); var tileHeightWorldUnits = resolution.UnitsPerPixel * schema.GetTileHeight(level); var firstCol = (int)Math.Floor((extent.MinX - schema.GetOriginX(level)) / tileWidthWorldUnits + Tolerance); var firstRow = (int)Math.Floor((extent.MinY - schema.GetOriginY(level)) / tileHeightWorldUnits + Tolerance); var lastCol = (int)Math.Ceiling((extent.MaxX - schema.GetOriginX(level)) / tileWidthWorldUnits - Tolerance); var lastRow = (int)Math.Ceiling((extent.MaxY - schema.GetOriginY(level)) / tileHeightWorldUnits - Tolerance); return(new TileRange(firstCol, firstRow, lastCol - firstCol, lastRow - firstRow)); }
private static Extent TileToWorldNormal(TileRange range, string levelId, ITileSchema schema) { var resolution = schema.Resolutions[levelId]; var tileWorldUnits = resolution.UnitsPerPixel * schema.GetTileWidth(levelId); var minX = range.FirstCol * tileWorldUnits + schema.GetOriginX(levelId); var minY = range.FirstRow * tileWorldUnits + schema.GetOriginY(levelId); var maxX = (range.FirstCol + range.ColCount) * tileWorldUnits + schema.GetOriginX(levelId); var maxY = (range.FirstRow + range.RowCount) * tileWorldUnits + schema.GetOriginY(levelId); return(new Extent(minX, minY, maxX, maxY)); }
private void SafeSchema(ITileSchema schema) { _axis = schema.YAxis; _minX = schema.Extent.MinX; _maxX = schema.Extent.MaxX; _minY = schema.Extent.MinY; _maxY = schema.Extent.MaxY; _format = schema.Format; _height = schema.GetTileHeight(String.Empty); _width = schema.GetTileWidth(String.Empty); _schemaName = schema.Name; _originX = schema.GetOriginX(String.Empty); _originY = schema.GetOriginY(String.Empty); _srs = schema.Srs; _resolutions = new Dictionary <string, Resolution>(); foreach (var resolution in schema.Resolutions) { _resolutions.Add(resolution.Key, resolution.Value); } }
private void SafeSchema(ITileSchema schema) { _axis = schema.YAxis; _minX = schema.Extent.MinX; _maxX = schema.Extent.MaxX; _minY = schema.Extent.MinY; _maxY = schema.Extent.MaxY; _format = schema.Format; _height = schema.GetTileHeight(String.Empty); _width = schema.GetTileWidth(String.Empty); _schemaName = schema.Name; _originX = schema.GetOriginX(String.Empty); _originY = schema.GetOriginY(String.Empty); _srs = schema.Srs; _resolutions = new Dictionary<string, Resolution>(); foreach (var resolution in schema.Resolutions) _resolutions.Add(resolution.Key, resolution.Value); }