private static void RefreshOverlay(TileOverlay tileOverlay) { if (Application.Current != null) { Application.Current.Dispatcher.BeginInvoke(new Action <TileOverlay>(tmpOverlay => { tmpOverlay.RefreshWithBufferSettings(); }), tileOverlay); } else { tileOverlay.RefreshWithBufferSettings(); } }
public static void Invalidate(this TileOverlay overlay, bool delay) { if (overlay.TileCache != null) { overlay.RefreshCache(); } if (overlay.MapArguments != null) { if (delay) { overlay.RefreshWithBufferSettings(); } else { overlay.Refresh(); } } }
internal static MenuItem GetTileTypeMenuItem(TileOverlay tileOverlay) { MenuItem tileTypeItem = new MenuItem(); tileTypeItem.Header = "Tile type"; tileTypeItem.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/GisEditorPluginCore;component/Images/tiltType.png", UriKind.Absolute)), Width = 16, Height = 16 }; MenuItem singleMenuItem = new MenuItem(); singleMenuItem.Header = "Single tile"; ObservedCommand singleCommand = new ObservedCommand(() => { foreach (var subItem in tileTypeItem.Items.OfType <MenuItem>()) { if (subItem.Header == singleMenuItem.Header) { singleMenuItem.IsChecked = true; } else { subItem.IsChecked = false; } } tileOverlay.TileType = TileType.SingleTile; tileOverlay.RefreshWithBufferSettings(); }, () => GisEditor.ActiveMap != null); singleMenuItem.Command = singleCommand; MenuItem hybridMenuItem = new MenuItem(); hybridMenuItem.Header = "Multiple tile"; ObservedCommand hybridCommand = new ObservedCommand(() => { foreach (var subItem in tileTypeItem.Items.OfType <MenuItem>()) { subItem.IsChecked = false; } hybridMenuItem.IsChecked = true; tileOverlay.TileType = TileType.HybridTile; tileOverlay.RefreshWithBufferSettings(); }, () => GisEditor.ActiveMap != null); hybridMenuItem.Command = hybridCommand; MenuItem preloadMenuItem = new MenuItem(); preloadMenuItem.Header = "Hybrid tile"; ObservedCommand preloadCommand = new ObservedCommand(() => { foreach (var subItem in tileTypeItem.Items.OfType <MenuItem>()) { if (subItem.Header == preloadMenuItem.Header) { preloadMenuItem.IsChecked = true; } else { subItem.IsChecked = false; } } tileOverlay.TileType = TileType.PreloadDataHybridTile; tileOverlay.RefreshWithBufferSettings(); }, () => GisEditor.ActiveMap != null); preloadMenuItem.Command = preloadCommand; switch (tileOverlay.TileType) { case TileType.SingleTile: singleMenuItem.IsChecked = true; break; case TileType.PreloadDataHybridTile: preloadMenuItem.IsChecked = true; break; case TileType.MultipleTile: case TileType.HybridTile: default: hybridMenuItem.IsChecked = true; break; } tileTypeItem.Items.Add(singleMenuItem); tileTypeItem.Items.Add(hybridMenuItem); tileTypeItem.Items.Add(preloadMenuItem); return(tileTypeItem); }