Example #1
0
        private void HandleMapNewTileAvaliable(ITileAsyncLayer sender, Envelope box, Bitmap bm, int sourceWidth,
                                               int sourceHeight, ImageAttributes imageAttributes)
        {
            if (sender == null)
            {
                return;
            }

            if (!_imageLayers.TryGetValue((ILayer)sender, out var lockImg))
            {
                return;
            }

            if (MapBox.IsDisposed == false && IsDisposed == false)
            {
                var min  = Point.Round(Map.WorldToImage(box.Min()));
                var max  = Point.Round(Map.WorldToImage(box.Max()));
                var rect = new Rectangle(min.X, max.Y, (max.X - min.X), (min.Y - max.Y));
                lock (lockImg.Item1)
                {
                    using (var g = Graphics.FromImage(lockImg.Item2))
                    {
                        g.DrawImage(bm, rect, 0, 0,
                                    sourceWidth, sourceHeight,
                                    GraphicsUnit.Pixel,
                                    imageAttributes);
                    }
                }

                InvalidateCacheImage();

                MapBox.Invoke(new MethodInvoker(MapBox.Invalidate), rect);
                MapBox.Invoke(new MethodInvoker(MapBox.Update));
            }
        }
            public void Add(ITileAsyncLayer asyncLayer)
            {
                if (asyncLayer.OnlyRedrawWhenComplete)
                {
                    return;
                }

                _asyncLayers.Add(asyncLayer);
                asyncLayer.DownloadProgressChanged += HandleDownloadProgressChanged;
            }
Example #3
0
 private void WireTileAsyncEvents(ITileAsyncLayer tileAsyncLayer)
 {
     if (tileAsyncLayer.OnlyRedrawWhenComplete)
     {
         tileAsyncLayer.DownloadProgressChanged += layer_DownloadProgressChanged;
     }
     else
     {
         //tileAsyncLayer.MapNewTileAvaliable += MapNewTileAvaliableHandler;
     }
 }
Example #4
0
        public static IObservable <MapNewTileAvailableEventArgs> GetMapNewTileAvailableAsObservable(
            this ITileAsyncLayer layer)
        {
            var listener = new EventListener(layer, "MapNewTileAvaliable");

            return(listener.SavedArgs.ToObservable()
                   .Select(dict => new MapNewTileAvailableEventArgs(
                               (TileLayer)dict["sender"],
                               (Envelope)dict["bbox"],
                               (Bitmap)dict["bm"],
                               (int)dict["sourceWidth"],
                               (int)dict["sourceHeight"],
                               (ImageAttributes)dict["imageAttributes"])));
        }
Example #5
0
 private void UnhookTileAsyncEvents(ITileAsyncLayer tileAsyncLayer)
 {
     tileAsyncLayer.DownloadProgressChanged -= layer_DownloadProgressChanged;
     tileAsyncLayer.MapNewTileAvaliable -= MapNewTileAvaliableHandler;
 }
Example #6
0
 private void WireTileAsyncEvents(ITileAsyncLayer tileAsyncLayer)
 {
     if (tileAsyncLayer.OnlyRedrawWhenComplete)
     {
         tileAsyncLayer.DownloadProgressChanged += layer_DownloadProgressChanged;
     }
     else
     {
         tileAsyncLayer.MapNewTileAvaliable += MapNewTileAvaliableHandler;
     }
 }
Example #7
0
        public static IObservable <DownloadProgressEventArgs> GetDownloadProgressAsObservable(this ITileAsyncLayer layer)
        {
            var listener = new EventListener(layer, "DownloadProgressChanged");

            return(listener.SavedArgs.ToObservable()
                   .Select(dict => new DownloadProgressEventArgs((int)dict["tilesRemaining"])));
        }
Example #8
0
 private void UnhookTileAsyncEvents(ITileAsyncLayer tileAsyncLayer)
 {
     tileAsyncLayer.DownloadProgressChanged -= layer_DownloadProgressChanged;
     //tileAsyncLayer.MapNewTileAvaliable -= MapNewTileAvaliableHandler;
 }
Example #9
0
 private void WmtsLayer_MapNewTileAvaliable(ITileAsyncLayer sender, Envelope bbox, Bitmap bm, int sourceWidth, int sourceHeight, System.Drawing.Imaging.ImageAttributes imageAttributes)
 {
     throw new NotImplementedException();
 }