private void CalculateArtificialZoom() { double dMapUntis = m_tile.East - m_tile.West; double dScale = dMapUntis / m_imageStore.TextureSizePixels; ArcIMSImageStore castImageStore = m_imageStore as ArcIMSImageStore; if (dScale > castImageStore.MaxScale) // Zoomed out too far { // Want to keep the target scale as large as possible // The smaller it is, the larger (and slower to render) the // resulting tiles on the server side will be double dTargetScale = castImageStore.MinScale + 0.95 * (castImageStore.MaxScale - castImageStore.MinScale); m_dArtificialZoom = dScale / dTargetScale; } else if (dScale < castImageStore.MinScale) // Zoomed in too far { // Want to keep the target scale as small as possible // The larger it is, the smaller (and lower resolution) // the resulting tiles on the server side will be double dTargetScale = castImageStore.MinScale + 0.05 * (castImageStore.MaxScale - castImageStore.MinScale); m_dArtificialZoom = dScale / dTargetScale; } else { m_dArtificialZoom = 1.0; } }
internal ArcIMSDownloadRequest(IGeoSpatialDownloadTile oTile, ArcIMSImageStore oImageStore, string strLocalFilePath, CultureInfo oInfo) : base(oTile, oImageStore, strLocalFilePath, oImageStore.ServerUri.ToBaseUri()) { m_oCultureInfo = oInfo; CalculateArtificialZoom(); }
internal ArcIMSImageDownload(ArcIMSImageStore oImageStore, Geosoft.Dap.Common.BoundingBox oEnvelope, int iIndexNumber, CultureInfo oInfo, double dArtificialZoom) : base(oImageStore.ServerUri, iIndexNumber) { m_oCultureInfo = oInfo; m_oImageStore = oImageStore; m_oEnvelope = oEnvelope; m_dArtificialZoom = dArtificialZoom; }
internal override RenderableObject GetLayer() { if (m_blnIsChanged) { ImageStore[] aImageStore = new ImageStore[1]; aImageStore[0] = new ArcIMSImageStore(m_szServiceName, m_szLayerID, m_oServerUri as ArcIMSServerUri, TileSize, m_oCultureInfo, m_dMinScale, m_dMaxScale); aImageStore[0].DataDirectory = null; aImageStore[0].LevelZeroTileSizeDegrees = LevelZeroTileSize; aImageStore[0].LevelCount = m_iLevels; aImageStore[0].ImageExtension = ".png"; aImageStore[0].CacheDirectory = GetCachePath(); m_oQuadTileSet = new QuadTileSet(m_szTreeNodeText, m_oWorldWindow.CurrentWorld, 0, Extents.North, Extents.South, Extents.West, Extents.East, true, aImageStore); m_oQuadTileSet.AlwaysRenderBaseTiles = true; m_oQuadTileSet.IsOn = m_IsOn; m_oQuadTileSet.Opacity = m_bOpacity; m_blnIsChanged = false; } return(m_oQuadTileSet); }
internal override RenderableObject GetLayer() { if (m_blnIsChanged) { ImageStore[] aImageStore = new ImageStore[1]; aImageStore[0] = new ArcIMSImageStore(m_szServiceName, m_szLayerID, m_oServerUri as ArcIMSServerUri, TileSize, m_oCultureInfo, m_dMinScale, m_dMaxScale); aImageStore[0].DataDirectory = null; aImageStore[0].LevelZeroTileSizeDegrees = LevelZeroTileSize; aImageStore[0].LevelCount = m_iLevels; aImageStore[0].ImageExtension = ".png"; aImageStore[0].CacheDirectory = GetCachePath(); m_oQuadTileSet = new QuadTileSet(m_szTreeNodeText, m_oWorldWindow.CurrentWorld, 0, Extents.North, Extents.South, Extents.West, Extents.East, true, aImageStore); m_oQuadTileSet.AlwaysRenderBaseTiles = true; m_oQuadTileSet.IsOn = m_IsOn; m_oQuadTileSet.Opacity = m_bOpacity; m_blnIsChanged = false; } return m_oQuadTileSet; }