Example #1
0
        //从内存加载图片
        public void addGDIlayer(string layername, IImageDataProvider datapro, config cfg)
        {
            //delete existing same layer
            ILayer layer = this.mapBox.Map.GetLayerByName(layername);

            if (layer != null)
            {

                if (mp != null)
                {
                    mp.Dispose();
                    mp = null;
                }

                if (img != null)
                {
                    img.Dispose();
                    img = null;
                }

                if (p != null)
                {
                    DeleteObject(p);
                }

                this.mapBox.Map.Layers.Remove(layer);
                ((Layer)layer).Dispose();

                GC.Collect();
            }
            //get data from data provider

            if (datapro == null)
            {
                DefaultData dd = new DefaultData();

                mp = dd.GetData();
            }
            else
            {
                mp = datapro.GetData();
            }

            p = mp.GetHbitmap();
            img = Image.FromHbitmap(p);

            ImageGDILayer gdilayer = new ImageGDILayer(layername, img, cfg);
            this.mapBox.Map.Layers.Insert(0, gdilayer);
            this.mapBox.Map.ZoomToBox(gdilayer.Envelope);
            this.mapBox.Refresh();

            //System.Diagnostics.Process.GetCurrentProcess().MinWorkingSet = new System.IntPtr(5);
        }
Example #2
0
 //从路径加载图片
 public void addGDIlayer(string layername, string filepath, config cfg)
 {
     ImageGDILayer gdilayer = new ImageGDILayer(layername, filepath, cfg);
     this.mapBox.Map.Layers.Insert(0, gdilayer);
     this.mapBox.Map.ZoomToBox(gdilayer.Envelope);
     this.mapBox.Refresh();
 }