We are encountering pixelation of WmsRasterLayer at ZoomLevel19 (Scale 563) and ZoomLevel20 (Scale 282). This only occurs when caching is enabled. If caching is disabled the imagery is rendered properly. Below are screen captures of a pixelated and non-pixelated example.
The client application does not use the standard default ZoomLevelSet values. Attached is a text file which has the ZoomLevelSet that is used (Detail) and the default (Standard).
You may recall that our environment is such that all the clients make WmsRasterLayer requests via a local central server (running ThinkGeo.MapSuite.WmsServer). The local server, in turn, passes said requests to a third-party WMS Provider (nearmap). The versions of WmsServer DLL’s being used are:
Below is a screen capture of the WmsServer Cached Directory Structure. Notice that the directory naming does not exactly match the scales being used. Instead of 1128, 2256, and 4513 we have ZoomLevelSet values of
ZoomLevel18 - 1126
ZoomLevel17 - 1900
ZoomLevel16 - 4505
Also notice there are no directories for ZoomLevel19 (563) and ZoomLevel20 (282) even though the map was zoomed to those levels.
Below is code from WmsServer showing FileBitmapTileCache properties.
It seems to me that WmsServer Caching is not handling non-standard ZoomLevelSet.
OriStar Mapping, Inc.
// instantiate TimeSpan Object TheTimeSpan = new TimeSpan(12, 00, 00); // instantiate TileMatrix Object TheTileMatrix = new MapSuiteTileMatrix(147647947); // instantiate TileCache Object TheFileBitmapTileCache = new FileBitmapTileCache(); // set TileCache Object properties TheFileBitmapTileCache.CacheDirectory = "TheDirectory"; TheFileBitmapTileCache.CacheId = "TheCacheId"; TheFileBitmapTileCache.ExpirationTime = TheTimeSpan; TheFileBitmapTileCache.TileAccessMode = TileAccessMode.ReadAddDelete; TheFileBitmapTileCache.TileMatrix = TheTileMatrix; TheFileBitmapTileCache.ImageFormat = TileImageFormat.JPeg; TheMapConfiguration.TileCache = TheFileBitmapTileCache;
ZoomLevelSetTable.txt (2.7 KB)