internal override bool CheckBeforeDraw(UpdateParameter updateParameter) { if ((Map.MapManipulator == MapManipulator.None && Map.MapStatus == MapStatus.Still) || Map.MapStatus == MapStatus.PanCompleted || Map.MapStatus == MapStatus.ZoomCompleted) { return true; } else { return false; } }
internal override bool CheckBeforeDraw(UpdateParameter updateParameter) { if ((base.IsInitialized && base.IsVisible) && (base.Container != null)) { if (Map.MapStatus == MapStatus.Zooming && (GetCachedResolutions() == null) && updateParameter.Resolutions == null) { return false; } return true; } return false; }
internal override void Draw(UpdateParameter updateParameter) { base.Draw(updateParameter); if ((base.IsInitialized && base.IsVisible) && (!Rectangle2D.IsNullOrEmpty(ViewBounds)) && (base.Container != null)) { if (GetCachedResolutions() != null) { realResolutions = this.GetCachedResolutions(); } else { realResolutions = updateParameter.Resolutions; } double resolution = MathUtil.GetNearest(updateParameter.Resolution,realResolutions,MinVisibleResolution,MaxVisibleResolution); int[] span = this.GetTileSpanWithin(ViewBounds, resolution); int level = -1; needShowTiles = NeedShowTiles(resolution, span, updateParameter.UseTransitions, out level); TileComparer comparer = new TileComparer(); List<Tile> needDownload = needShowTiles.Except<Tile>(_inContainer.Values, comparer).ToList(); if (needDownload.Count > 0) { _queueSystem.InputTiles(uniqueLayerId, needDownload); } } }
internal override void Draw(UpdateParameter updateParameter) { if (base.Container != null) { Rectangle2D bounds = ViewBounds; double num = 20.0 * Resolution; Rectangle2D biggerBounds = bounds.Inflate(num, num);//上下左右扩张20个像素的距离 foreach (UIElement element in this.Children) { if (element == null) { return; } if (!(element.GetValue(BBoxProperty) is Rectangle2D)) { throw new ArgumentException(ExceptionStrings.BboxIsNotSet); } Rectangle2D rect = GetBBox(element); if (rect.IntersectsWith(biggerBounds) && !base.Container.Children.Contains(element)) { if (element is ShapeElement) { ShapeElement sb = element as ShapeElement; sb.SetPath(); sb.InvalidatePath(base.Container.Resolution, base.Container.OriginX, base.Container.OriginY); ElementsLayer.SetBBox(sb, sb.ClippedBounds); } base.Container.Children.Add(element); } } } }
internal override bool CheckBeforeDraw(UpdateParameter updateParameter) { if (Map.MapStatus == MapStatus.Zooming) { return false; } return true; }
internal abstract void Draw(UpdateParameter updateParameter);
internal virtual bool CheckBeforeDraw(UpdateParameter updateParameter) { return true; }
internal void Update (UpdateParameter updateParameter) { if (CheckBeforeDraw(updateParameter)) { Resolution = updateParameter.Resolution; ViewBounds = updateParameter.ViewBounds; ViewSize = updateParameter.ViewSize; LayerOrigin = updateParameter.LayerOrigin; Draw(updateParameter); } }
internal override void Draw(UpdateParameter updateParameter) { base.Draw(updateParameter); if ((!Rectangle2D.IsNullOrEmpty(ViewBounds)) && (base.IsVisible)) { this.OnProgress(0); //if (_timer.IsEnabled) //{ // _timer.Stop(); //} //_timer.Start(); ImageInfo image = new ImageInfo(); image.ViewBounds = this.ViewBounds; StartDownloadImage(image); } }