protected override void BuildIndexCore(FeatureLayer featureLayer) { lock (layersInBuildingIndex) { if (!layersInBuildingIndex.Contains(featureLayer)) { layersInBuildingIndex.Add(featureLayer); } } if (layersInBuildingIndex.Count > 0) { ShapeFileFeatureSource.BuildingIndex -= ShapeFileFeatureSource_BuildingIndex; ShapeFileFeatureSource.BuildingIndex += ShapeFileFeatureSource_BuildingIndex; } var uri = LayerPlugin.GetUri(featureLayer); if (uri != null) { ShapeFileFeatureLayer.BuildIndexFile(uri.LocalPath, BuildIndexMode.DoNotRebuild); lock (layersInBuildingIndex) { if (layersInBuildingIndex.Contains(featureLayer)) { layersInBuildingIndex.Remove(featureLayer); } if (layersInBuildingIndex.Count == 0) { ShapeFileFeatureSource.BuildingIndex -= new EventHandler <BuildingIndexShapeFileFeatureSourceEventArgs>(ShapeFileFeatureSource_BuildingIndex); } } } }
private void FillMatchesByLocalLayers(string searchAddress, Collection <GeocodeMatch> resultMatches, Collection <string> errorMessages, IEnumerable <string> pluginNames) { try { List <Layer> layers = GetAvailableLayers(pluginNames).ToList(); foreach (Layer layer in layers) { LayerPlugin layerPlugin = GisEditor.LayerManager.GetLayerPlugins(layer.GetType()).FirstOrDefault(); if (layerPlugin != null && layerPlugin.SearchPlaceTool.CanSearchPlace(layer)) { List <Feature> resultFeatures = layerPlugin.SearchPlaceTool.SearchPlaces(searchAddress, layer).Take(SearchPlaceMaxResultCount).ToList(); IEnumerable <GeocodeMatch> resultMatchs = GetMatchedResult(resultFeatures); foreach (GeocodeMatch item in resultMatchs) { resultMatches.Add(item); } } } } catch (Exception ex) { GisEditor.LoggerManager.Log(LoggerLevel.Debug, ex.Message, new ExceptionInfo(ex)); errorMessages.Add(ex.Message); } }
public PostgreTableDataRepositoryItem() { Icon = new BitmapImage(new Uri("/GisEditorPluginCore;component/Images/table.png", UriKind.RelativeOrAbsolute)); MenuItem propertyItem = new MenuItem(); propertyItem.Icon = DataRepositoryHelper.GetMenuIcon("/GisEditorPluginCore;component/Images/properties.png", 16, 16); propertyItem.Header = "Properties"; propertyItem.Command = new RelayCommand(() => { LayerPlugin matchingLayerPlugin = GisEditor.LayerManager.GetActiveLayerPlugins <LayerPlugin>() .FirstOrDefault(tmpPlugin => tmpPlugin.Name.Equals("PostgreSql", StringComparison.OrdinalIgnoreCase)); PostgreSqlFeatureLayer newLayer = GetPostgreSqlFeatureLayers().FirstOrDefault(); if (newLayer != null) { UserControl userControl = matchingLayerPlugin.GetPropertiesUI(newLayer); Window propertiesDockWindow = new Window() { Content = userControl, Title = GisEditor.LanguageManager.GetStringResource("MapElementsListPluginProperties"), SizeToContent = SizeToContent.WidthAndHeight, ResizeMode = System.Windows.ResizeMode.NoResize, Style = Application.Current.FindResource("WindowStyle") as System.Windows.Style }; propertiesDockWindow.ShowDialog(); } }); ContextMenu.Items.Add(propertyItem); }
protected override void BuildIndexCore(FeatureLayer featureLayer) { lock (layersInBuildingIndex) { if (!layersInBuildingIndex.Contains(featureLayer)) { layersInBuildingIndex.Add(featureLayer); } } var uri = LayerPlugin.GetUri(featureLayer); if (uri != null) { KmlFeatureLayer.BuildIndexFile(uri.LocalPath, BuildIndexMode.DoNotRebuild); lock (layersInBuildingIndex) { if (layersInBuildingIndex.Contains(featureLayer)) { layersInBuildingIndex.Remove(featureLayer); } } } }
protected override void BuildIndexCore(FeatureLayer featureLayer) { var uri = LayerPlugin.GetUri(featureLayer); if (uri != null) { TabFeatureLayer.BuildIndexFile(uri.LocalPath, BuildIndexMode.DoNotRebuild); } }
protected override void BuildIndexCore(FeatureLayer featureLayer) { TobinBasFeatureSource.BuildingIndex += TobinBasFeatureSource_BuildingIndex; var uri = LayerPlugin.GetUri(featureLayer); if (uri != null) { TobinBasFeatureSource.BuildIndexFile(uri.LocalPath, Path.ChangeExtension(uri.LocalPath, ".idx"), null, string.Empty, string.Empty, BuildIndexMode.DoNotRebuild); } }
private void InitializeSearchEntries() { searchEntriesModels = new Collection <SearchEntriesModel>(); UsingOnlineServiceLayerPlugin geocodeplugin = new UsingOnlineServiceLayerPlugin(); SearchEntriesModel searchModel = new SearchEntriesModel(geocodeplugin.Name, false, geocodeplugin); LayerPlugin shapeFilePlugin = GisEditor.LayerManager.GetLayerPlugins <ShapeFileFeatureLayer>().FirstOrDefault(); SearchEntriesModel shapeFilePluginModel = new SearchEntriesModel("On Local Shapefiles", true, shapeFilePlugin); searchEntriesModels.Add(searchModel); searchEntriesModels.Add(shapeFilePluginModel); }
public FileDataRepositoryItem(string filePath) { fileInfo = new FileInfo(filePath); Name = fileInfo.Name; CustomData["Size"] = fileInfo.Length; matchingLayerPlugin = GisEditor.LayerManager.GetActiveLayerPlugins <LayerPlugin>() .FirstOrDefault(tmpPlugin => tmpPlugin.ExtensionFilter.ToUpperInvariant().Contains(FileInfo.Extension.ToUpperInvariant())); string imageUri = matchingLayerPlugin != null ? ((BitmapImage)matchingLayerPlugin.SmallIcon).UriSource.OriginalString : "/GisEditorPluginCore;component/Images/dr_fileicon_raster.png"; Icon = new BitmapImage(new Uri(imageUri, UriKind.RelativeOrAbsolute)); AddMenuItems(); }
public static string GetFeatureIdColumn(FeatureLayer featureLayer) { string featureIdColumn = string.Empty; if (featureLayer != null) { LayerPlugin layerPlugin = GisEditor.LayerManager.GetLayerPlugins(featureLayer.GetType()).FirstOrDefault(); if (layerPlugin != null) { Uri uri = null; try { uri = layerPlugin.GetUri(featureLayer); } catch { } if (uri != null && GisEditor.LayerManager.FeatureIdColumnNames.ContainsKey(uri.ToString())) { featureIdColumn = GisEditor.LayerManager.FeatureIdColumnNames[uri.ToString()]; GisEditor.LayerManager.FeatureIdColumnNames.Remove(uri.ToString()); GisEditor.LayerManager.FeatureIdColumnNames[featureLayer.FeatureSource.Id] = featureIdColumn; } else if (GisEditor.LayerManager.FeatureIdColumnNames.ContainsKey(featureLayer.FeatureSource.Id)) { featureIdColumn = GisEditor.LayerManager.FeatureIdColumnNames[featureLayer.FeatureSource.Id]; } else if (GisEditor.LayerManager.FeatureIdColumnNames.Count == 0) { if (string.IsNullOrEmpty(featureIdColumn) && featureLayer.FeatureSource.IsOpen) { var apnColumn = featureLayer.FeatureSource.GetColumns().FirstOrDefault(c => { return(c.ColumnName == "APN"); }); if (apnColumn != null) { featureIdColumn = "APN"; } } } } } return(featureIdColumn); }
public static void CloseInOverlay(this FeatureLayer featureLayer) { featureLayer.CloseAll(); LayerPlugin currentFeatureLayerPlugin = GisEditor.LayerManager.GetLayerPlugins(featureLayer.GetType()).FirstOrDefault(); if (currentFeatureLayerPlugin != null) { Uri currentFeatureLayerUri = currentFeatureLayerPlugin.GetUri(featureLayer); IEnumerable <LayerOverlay> layerOverlays = GisEditor.GetMaps(). SelectMany(map => map.Overlays). OfType <LayerOverlay>(). Where(layerOverlay => { FeatureLayer matchingShpLayer = layerOverlay.Layers.OfType <FeatureLayer>().Where(tempLayer => { LayerPlugin tempFeatureLayerPlugin = GisEditor.LayerManager.GetLayerPlugins(tempLayer.GetType()).FirstOrDefault(); return(tempFeatureLayerPlugin.GetUri(tempLayer) == currentFeatureLayerUri); }).FirstOrDefault(); if (matchingShpLayer != null) { matchingShpLayer.CloseAll(); return(true); } return(false); }); foreach (var layerOverlay in layerOverlays) { layerOverlay.Close(); } } else { LayerOverlay layerOverlay = GisEditor.ActiveMap.Overlays.OfType <LayerOverlay>().Where(lo => lo.Layers.Contains(featureLayer)).FirstOrDefault(); if (layerOverlay != null) { layerOverlay.Close(); } } }
private void FillMatchesByShapefiles(string searchAddress, Collection <GeocodeMatch> resultMatches, Collection <Feature> features, Collection <string> errorMessages) { List <ShapeFileFeatureLayer> layers = new List <ShapeFileFeatureLayer>(); int resultLayerCount = 0; try { layers = GisEditor.ActiveMap.GetFeatureLayers().OfType <ShapeFileFeatureLayer>().ToList(); LayerPlugin layerPlugin = GisEditor.LayerManager.GetLayerPlugins <ShapeFileFeatureLayer>().FirstOrDefault(); if (layerPlugin != null && layerPlugin.SearchPlaceTool.CanSearchPlace()) { foreach (ShapeFileFeatureLayer layer in layers) { List <Feature> resultFeatures = layerPlugin.SearchPlaceTool.SearchPlaces(searchAddress, layer).Take(SearchPlaceMaxResultCount).ToList(); if (resultFeatures.Count > 0) { resultLayerCount++; foreach (var item in resultFeatures) { features.Add(item); } IEnumerable <GeocodeMatch> resultMatchs = GetMatchedResult(resultFeatures); foreach (GeocodeMatch item in resultMatchs) { resultMatches.Add(item); } } } } } catch (Exception ex) { GisEditor.LoggerManager.Log(LoggerLevel.Debug, ex.Message, new ExceptionInfo(ex)); errorMessages.Add(ex.Message); } }
public SearchEntriesModel(string name, bool isChecked, LayerPlugin layerPlugin) { this.name = name; this.isChecked = isChecked; this.layerPlugin = layerPlugin; }