ThinkGeo.com    |     Documentation    |     Premium Support

Question on styles

 


Hi,
I’m wounding what style render I should use to accomplish the following example…
I’ll create a in memory feature layer with a column let’s call it index that has 100 lines. I would like to render the lines with the value less than some dynamic variable that I will provide green and all other lines red.
Thanks in advance for your help,
Dan

Dan,


Thanks for your post, please refer the following code for your requirement:


 



     winformsMap1.MapUnit = GeographyUnit.DecimalDegree;
            winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean);

            // Draw thematic features
            ClassBreakStyle classBreakStyle = new ClassBreakStyle("POP_CNTRY");
            classBreakStyle.ClassBreaks.Add(new ClassBreak(double.MinValue, AreaStyles.Grass1));
            classBreakStyle.ClassBreaks.Add(new ClassBreak(1000000, AreaStyles.Evergreen2));
            classBreakStyle.ClassBreaks.Add(new ClassBreak(10000000, AreaStyles.Evergreen1));
            classBreakStyle.ClassBreaks.Add(new ClassBreak(50000000, AreaStyles.Crop1));
            classBreakStyle.ClassBreaks.Add(new ClassBreak(100000000, AreaStyles.Forest1));

            ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(@"..\..\SampleData\Data\Countries02.shp");
            worldLayer.Open();
            InMemoryFeatureLayer inMemoryFeatureLayer = new InMemoryFeatureLayer();
            inMemoryFeatureLayer.Open();
            inMemoryFeatureLayer.Columns.Add(new FeatureSourceColumn("POP_CNTRY"));
            Collection<Feature> features = worldLayer.FeatureSource.GetAllFeatures(ReturningColumnsType.AllColumns);

            for (int i = 0; i < 100; i++)
            {
                inMemoryFeatureLayer.InternalFeatures.Add(features[i]);
            }

            inMemoryFeatureLayer.Close();
            worldLayer.Close();

            inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(AreaStyles.Country1);
            inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
            inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(classBreakStyle);

            LayerOverlay layerOverlay = new LayerOverlay();
            layerOverlay.Layers.Add(inMemoryFeatureLayer);
            winformsMap1.Overlays.Add(layerOverlay);

            winformsMap1.ZoomLevelSnapping = ZoomLevelSnappingMode.Default;
            winformsMap1.CurrentExtent = new RectangleShape(-143.4, 109.3, 116.7, -76.3);
            winformsMap1.Refresh();

In the sample code above you just need to replace the shape file location to your own shape file and create the special InMemoryFeatureLayer according to the source shape file, also you need to change the column name in the code above.


If you encounter any problems when using the code above please let us know and send your shape file to us, we will make a sample for you,


Thanks,


Scott,



Scott, thanks for the reply. 
  
 You did not quite get what I’m trying to accomplish… 
  
 I will have an in memory layer like you show (features will be multi-Line which is a set of paths that a vehicle must follow). 
 I will have a single feature column that I will use. I will call that column index and add it to the memory layer like you show (the column will be the order starting with 0 thru the number of multi-lines that the vehicle must follow - in order). 
  
 But this is what I’m trying to accomplish with the rendering color. 
 I would like to have the color red as the default color that all lines will be colored unless their index is less than a variable (the current line the vehicle is following) then I would like to color all the lines below the variable value green which indicates they are complete. 
  
 Thanks, 
 Dan 


Dan,


Thanks for the explanation. The previous sample shows the general way to use ClassBreakStyle and here is the sample exactly meets your requirement,  please have another try.



Thanks,


James,


 

8773_ClassBreakStyle.zip (10.4 KB)

Bingo...


That is exactly what I'm looking for.


Thanks alot,


Dan



Dan, 
  
  You are welcome. If you have any other questions, let us know.