Esempio n. 1
0
 private bool TryAddAviLayerToCanvas(ICanvas canvas, IAVILayer aviLyr, GeoDo.RSS.Core.DrawEngine.CoordEnvelope viewPrjEvp)
 {
     canvas.LayerContainer.Layers.Add(aviLyr);
     canvas.CurrentEnvelope = viewPrjEvp;
     canvas.Refresh(enumRefreshType.All);
     return(true);
 }
Esempio n. 2
0
        public void DisplayAvi(ISmartSession session, string wndName, string[] fnames, string templateName,
                               string subIdentify, out string outputFname)
        {
            string satellite = null;
            string sensor    = null;

            outputFname = GetOutputGxdFileName(fnames, subIdentify, out satellite, out sensor);
            bool isOk = false;

            FileIsSupportable(fnames);
            ILayoutTemplate temp = GetTemplateByArg(templateName);

            if (temp == null)
            {
                return;
            }
            ILayoutViewer viewer = new LayoutViewer(wndName);

            ApplyLayoutTemplate(viewer, ref temp); //在这里应用模板,初始化数据框的dataProvider
            TryApplyVars(temp, subIdentify, satellite, sensor);
            if (viewer.LayoutHost == null)
            {
                return;
            }
            ICanvas canvas = GetCanvasByTemplate(temp);

            if (canvas == null)
            {
                return;
            }
            Size dataSize = Size.Empty;

            GeoDo.RSS.Core.DrawEngine.CoordEnvelope viewPrjEvp = null;
            GeoDo.RSS.Core.DF.CoordEnvelope         viewGeoEvp = null;
            float     resolution = 0;
            int       maxSize    = GetBorderSizeByTemplate(viewer.LayoutHost.LayoutRuntime, temp);
            IAVILayer aviLyr     = AVILayerBuilder.CreatAVILayer(fnames, canvas, maxSize, out dataSize, out viewPrjEvp, out viewGeoEvp, out resolution);

            if (aviLyr == null)
            {
                return;
            }
            aviLyr.OnTicked += new EventHandler(RefreshDataFrame);
            if (_isCustom)
            {
                TryApplyCustom(canvas, dataSize, subIdentify, viewPrjEvp, viewGeoEvp, resolution);
            }
            isOk = TryAddAviLayerToCanvas(canvas, aviLyr, viewPrjEvp);
            if (isOk)
            {
                session.SmartWindowManager.DisplayWindow(viewer);
                _host.ToSuitedSize(_host.LayoutRuntime.Layout);
                TryExportToGIF(session, subIdentify, outputFname);
            }
        }
Esempio n. 3
0
        public override void Execute()
        {
            ILayoutViewer viewer = _smartSession.SmartWindowManager.ActiveViewer as ILayoutViewer;

            if (viewer == null)
            {
                return;
            }
            IAVILayer aviLyr = GetAviLayer(viewer);

            if (aviLyr == null)
            {
                return;
            }
            _interval = aviLyr.Interval;
            ILayoutHost host = viewer.LayoutHost;

            if (host == null)
            {
                return;
            }
            ExportBitmaps(host);
        }
Esempio n. 4
0
        private void InitAviLayerInfos()
        {
            ILayout layout = _host.LayoutRuntime.Layout;

            if (layout == null)
            {
                return;
            }
            if (layout.Elements == null || layout.Elements.Count == 0)
            {
                return;
            }
            IDataFrame df = null;

            foreach (IElement ele in layout.Elements)
            {
                if (ele is IDataFrame)
                {
                    df = ele as IDataFrame;
                    break;
                }
            }
            if (df == null)
            {
                return;
            }
            if (df.Provider == null)
            {
                return;
            }
            ICanvas canvas = (df.Provider as IDataFrameDataProvider).Canvas;

            if (canvas == null)
            {
                return;
            }
            List <GeoDo.RSS.Core.DrawEngine.ILayer> layers = canvas.LayerContainer.Layers;

            if (layers == null || layers.Count == 0)
            {
                return;
            }
            IAVILayer aviLry = null;

            foreach (GeoDo.RSS.Core.DrawEngine.ILayer lry in layers)
            {
                if (lry is IAVILayer)
                {
                    aviLry = lry as IAVILayer;
                }
            }
            if (aviLry == null)
            {
                return;
            }
            if (aviLry.BitmapCount == 0)
            {
                return;
            }
            _count    = aviLry.BitmapCount;
            _interval = aviLry.Interval;
            _enabled  = aviLry.IsRunning;
            return;
        }