Exemple #1
0
        private static void MapUsingSimpleMarkerRenderer()
        {
            string layerName = CboLayers.GetSelectedLayer();
            ILayer layer     = GetLayerByName(layerName);

            string     colorName   = CboColors.GetSelectedColor();
            ICmykColor markerColor = ColorbrewerExtension.GetSingleCMYKColor();

            ISimpleMarkerSymbol marker = new SimpleMarkerSymbol();

            marker.Style = esriSimpleMarkerStyle.esriSMSCircle;
            marker.Color = markerColor;
            marker.Size  = 5;

            ISimpleRenderer renderer = new SimpleRenderer();

            renderer.Symbol = marker as ISymbol;
            renderer.Label  = layer.Name;

            IGeoFeatureLayer gFLayer = layer as IGeoFeatureLayer;

            gFLayer.Renderer = renderer as IFeatureRenderer;
            IMxDocument mxDoc = ArcMap.Application.Document as IMxDocument;
            IMap        map   = mxDoc.FocusMap;

            mxDoc.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography,
                                            gFLayer, mxDoc.ActiveView.Extent);
            mxDoc.UpdateContents();
        }
Exemple #2
0
        private static void MapUsingSimpleFillRenderer()
        {
            string layerName = CboLayers.GetSelectedLayer();
            ILayer layer     = GetLayerByName(layerName);

            string     colorName = CboColors.GetSelectedColor();
            ICmykColor fillColor = ColorbrewerExtension.GetSingleCMYKColor();

            ISimpleFillSymbol fill = new SimpleFillSymbol();

            fill.Style = esriSimpleFillStyle.esriSFSSolid;
            fill.Color = fillColor;

            ISimpleRenderer simpleRenderer = new SimpleRenderer();

            simpleRenderer.Symbol = fill as ISymbol;
            simpleRenderer.Label  = layer.Name;

            IGeoFeatureLayer gFLayer = layer as IGeoFeatureLayer;

            gFLayer.Renderer = simpleRenderer as IFeatureRenderer;
            IMxDocument mxDoc = ArcMap.Application.Document as IMxDocument;
            IMap        map   = mxDoc.FocusMap;

            mxDoc.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography
                                            , gFLayer, mxDoc.ActiveView.Extent);
        }
Exemple #3
0
 protected override void OnSelChange(int cookie)
 {
     if (cookie < 0)
     {
         return;
     }
     s_selectedColor = this.GetItem(cookie).Caption;
     ColorbrewerExtension.UpdateCboClasses();
     CboRenderers.Render();
 }
        protected override void OnStartup()
        {
            s_extension = this;
            if (s_extension == null || this.State != ESRI.ArcGIS.Desktop.AddIns.ExtensionState.Enabled)
            {
                return;
            }
            s_extension.WireDocumentEvents();
            UID winID = new UIDClass();

            winID.Value = ThisAddIn.IDs.DockableWindow;
            dockWin     = ArcMap.DockableWindowManager.GetDockableWindow(winID);
            dockWin.Show(true);
        }
Exemple #5
0
        private static void MapUsingProportionalSymbolRenderer()
        {
            ISimpleMarkerSymbol marker = new SimpleMarkerSymbol();

            marker.Style = esriSimpleMarkerStyle.esriSMSCircle;

            ICmykColor markerColor = ColorbrewerExtension.GetSingleCMYKColor();

            marker.Size  = 10;
            marker.Color = markerColor;

            IMxDocument mxDoc = ArcMap.Application.Document as IMxDocument;
            IMap        map   = mxDoc.FocusMap;

            string          layerName = CboLayers.GetSelectedLayer();
            ILayer          layer     = GetLayerByName(layerName);
            IFeatureLayer   fLayer    = layer as IFeatureLayer;
            IFeatureClass   fClass    = fLayer.FeatureClass as IFeatureClass;
            IFeatureCursor  cursor    = fClass.Search(null, true);
            IDataStatistics dataStats = new DataStatisticsClass();

            dataStats.Cursor = cursor as ICursor;

            string fieldName = CboFields.GetSelectedField();

            dataStats.Field = fieldName;
            IStatisticsResults statResult = dataStats.Statistics;

            IProportionalSymbolRenderer propSymRenderer = new ProportionalSymbolRendererClass();

            propSymRenderer.Field                = fieldName;
            propSymRenderer.MinDataValue         = statResult.Minimum == 0.0 ? 1 : statResult.Minimum;
            propSymRenderer.MaxDataValue         = statResult.Maximum;
            propSymRenderer.FlanneryCompensation = true;
            propSymRenderer.ValueUnit            = esriUnits.esriUnknownUnits;
            propSymRenderer.MinSymbol            = marker as ISymbol;
            propSymRenderer.LegendSymbolCount    = 3;
            propSymRenderer.CreateLegendSymbols();

            IGeoFeatureLayer gFLayer = layer as IGeoFeatureLayer;

            gFLayer.Renderer = propSymRenderer as IFeatureRenderer;
            mxDoc.ActiveView.Refresh();
            mxDoc.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, gFLayer
                                            , mxDoc.ActiveView.Extent);
            mxDoc.UpdateContents();
        }
Exemple #6
0
        protected override void OnSelChange(int cookie)
        {
            if (cookie < 0)
            {
                return;
            }
            s_selectedRenderer = this.GetItem(cookie).Caption;

            switch (s_selectedRenderer)
            {
            case "Simple Marker Renderer":
            case "Proportional Symbol Renderer":
            case "Simple Fill Renderer":
                ColorbrewerExtension.UpdateCboClasses();
                break;

            case "Classbreaks Renderer":
                ColorbrewerExtension.UpdateCboClasses();
                break;
            }
            Render();
        }
Exemple #7
0
        private static void MapUsingClassbreaksRenderer()
        {
            string layerName = CboLayers.GetSelectedLayer();
            ILayer layer     = GetLayerByName(layerName);

            IFeatureLayer2 fLayer    = layer as IFeatureLayer2;
            string         fieldName = CboFields.GetSelectedField();

            // Get the number of classes
            string selectedClass   = CboClasses.GetSelectedClass();
            int    numberOfClasses = Convert.ToInt32(selectedClass);

            ITableHistogram tableHistogram = new TableHistogramClass();

            tableHistogram.Table = fLayer.FeatureClass as ITable;
            tableHistogram.Field = fieldName;
            IHistogram histo = tableHistogram as IHistogram;
            object     datavalues, datafrequencies;

            histo.GetHistogram(out datavalues, out datafrequencies);

            IClassify classify = new QuantileClass();

            classify.SetHistogramData(datavalues, datafrequencies);
            classify.Classify(ref numberOfClasses);

            if (numberOfClasses <= 1)
            {
                return;
            }

            double[] classBreaks = (double[])classify.ClassBreaks;

            IClassBreaksRenderer render = new ClassBreaksRenderer();

            render.Field        = fieldName;
            render.BreakCount   = numberOfClasses;
            render.MinimumBreak = classBreaks[0];

            // Get the colors
            ICmykColor[] colors = ColorbrewerExtension.GetCmykColors();
            IFillSymbol  fill   = null;

            // Iterate through the colors
            for (int i = 0; i < numberOfClasses; i++)
            {
                fill               = new SimpleFillSymbol();
                fill.Color         = colors[i];
                fill.Outline.Width = 0.5;
                render.Symbol[i]   = fill as ISymbol;
                render.Break[i]    = classBreaks[i + 1];
                render.Label[i]    = string.Format("{0} to {1}", classBreaks[i]
                                                   , classBreaks[i + 1]);
            }

            IGeoFeatureLayer gFLayer = layer as IGeoFeatureLayer;

            gFLayer.Renderer = render as IFeatureRenderer;
            IMxDocument mxDoc = ArcMap.Application.Document as IMxDocument;

            mxDoc.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, gFLayer
                                            , mxDoc.ActiveView.Extent);
            mxDoc.UpdateContents();
        }
 private void txtFilePath_TextChanged(object sender, EventArgs e)
 {
     ColorbrewerExtension.UpdateCombos();
 }
 private void btnLocate_Click(object sender, EventArgs e)
 {
     txtFilePath.Text = ColorbrewerExtension.LocateCBfile();
 }
Exemple #10
0
 protected override void OnUpdate()
 {
     this.Enabled = ColorbrewerExtension.IsExtensionEnabled();
 }