示例#1
0
        private List <Feature> FilterSelectedFeatures()
        {
            var filteredSelectedFeatures = overlay.HighlightFeatureLayer.InternalFeatures
                                           .Where(f => SelectedAreaLayers.Any(l => l == f.Tag))
                                           .ToList();

            return(filteredSelectedFeatures);
        }
示例#2
0
        protected override TaskPlugin GetTaskPluginCore()
        {
            List <FeatureLayer> featureLayers = null;

            if (BlendSelectedFeaturesOnly)
            {
                SaveFeaturesToTempFile();

                if (IsIntersect)
                {
                    featureLayers = tempFilesForIntersect.Select(fileName => new ShapeFileFeatureLayer(fileName)).Cast <FeatureLayer>().ToList();
                }
                else
                {
                    featureLayers = new List <FeatureLayer> {
                        new ShapeFileFeatureLayer(tempFilePath)
                    };
                }
            }
            else
            {
                featureLayers = SelectedAreaLayers.ToList();
            }

            featureLayers.ForEach(featureSource =>
            {
                if (featureSource.IsOpen)
                {
                    featureSource.Close();
                }
                if (featureSource.FeatureSource.Projection != null)
                {
                    featureSource.FeatureSource.Projection.Close();
                }
            });

            var plugin = GisEditor.TaskManager.GetActiveTaskPlugins <BlendTaskPlugin>().FirstOrDefault();

            if (plugin != null)
            {
                InitializePlugin(plugin, featureLayers);
            }

            return(plugin);
        }