예제 #1
0
        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;
            }
        }
예제 #2
0
        internal ArcIMSDownloadRequest(IGeoSpatialDownloadTile oTile, ArcIMSImageStore oImageStore, string strLocalFilePath, CultureInfo oInfo)
            : base(oTile, oImageStore, strLocalFilePath, oImageStore.ServerUri.ToBaseUri())
        {
            m_oCultureInfo = oInfo;

            CalculateArtificialZoom();
        }
예제 #3
0
 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;
 }
예제 #4
0
        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);
        }
예제 #5
0
 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;
 }
예제 #6
0
        internal ArcIMSDownloadRequest(IGeoSpatialDownloadTile oTile, ArcIMSImageStore oImageStore, string strLocalFilePath, CultureInfo oInfo)
            : base(oTile, oImageStore, strLocalFilePath, oImageStore.ServerUri.ToBaseUri())
        {
            m_oCultureInfo = oInfo;

            CalculateArtificialZoom();
        }
예제 #7
0
        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;
        }