private void UpdateItems(GisEditorWpfMap map) { LegendImporterItems.Clear(); var featureLayers = map.GetFeatureLayers(true); foreach (var featureLayer in featureLayers) { LegendImporterItems.Add(GenerateLayerItem(featureLayer)); if (featureLayer.ZoomLevelSet.CustomZoomLevels.Count > 0) { var featureLayerListItem = GisEditor.LayerManager.GetLayerListItem(featureLayer); if (featureLayerListItem != null) { if (featureLayerListItem.Load != null) { featureLayerListItem.Load(); featureLayerListItem.Load = null; } foreach (var ComponentStyle in featureLayerListItem.Children) { if (ComponentStyle.Children.Count > 1) { LegendImporterItems.Add(GenerateComponentSytleItem(ComponentStyle)); GenerateImporterItems(ComponentStyle, LegendImporterItems, 2); } else { GenerateImporterItems(ComponentStyle, LegendImporterItems, 1); } } } } } }
private static void ChangeAllLayersZoomLevelSet(GisEditorWpfMap map, IEnumerable <ZoomLevel> zoomLevels) { var zoomLevelSet = new ZoomLevelSet(); map.ZoomLevelSet.CustomZoomLevels.Clear(); foreach (var item in zoomLevels) { zoomLevelSet.CustomZoomLevels.Add(item); } map.ZoomLevelSet = zoomLevelSet; map.MinimumScale = map.ZoomLevelSet.CustomZoomLevels.LastOrDefault().Scale; var allFeatureLayers = map.GetFeatureLayers(); foreach (var featureLayer in allFeatureLayers) { var originalZoomLevels = featureLayer.ZoomLevelSet.CustomZoomLevels.ToList(); featureLayer.ZoomLevelSet.CustomZoomLevels.Clear(); foreach (var item in zoomLevels) { var max = item.Scale * 2; var min = item.Scale * 0.5; ZoomLevel newZoomLevel = null; if (item is PreciseZoomLevel) { newZoomLevel = new PreciseZoomLevel(item.Scale); } else { newZoomLevel = new ZoomLevel(item.Scale); } foreach (var style in item.CustomStyles) { newZoomLevel.CustomStyles.Add(style); } var styles = originalZoomLevels.Where(z => z.Scale <max && z.Scale> min).SelectMany(z => z.CustomStyles); foreach (var style in styles) { if (!newZoomLevel.CustomStyles.Contains(style)) { newZoomLevel.CustomStyles.Add(style); } } featureLayer.ZoomLevelSet.CustomZoomLevels.Add(newZoomLevel); } } foreach (var layerOverlay in GisEditor.ActiveMap.Overlays.OfType <LayerOverlay>()) { if (layerOverlay.MapArguments != null) { // layerOverlay.Refresh(); layerOverlay.RefreshWithBufferSettings(); } } }
public void Refresh(GisEditorWpfMap wpfMap) { RaisePropertyChanged(() => TargetLayers); RaisePropertyChanged(() => SnappingLayerName); if (SnappingLayers != null && SnappingLayers.Count > 0) { var count = wpfMap.GetFeatureLayers().Count(l => SnappingLayers.Contains(l)); if (count == 0) { SnappingLayers.Clear(); EditOverlay.Refresh(); } } }
private static void RemoveConditionsLayerNotExist(GisEditorWpfMap wpfMap) { var allLayers = wpfMap.GetFeatureLayers(); QueryFeatureLayerWindow.ClearConditions(allLayers); }