public static void PointsLabelingPlaced()
        {
            //ExStart: PointsLabelingPlaced
            using (var map = new Map(500, 200))
            {
                var symbol = new SimpleMarker
                {
                    FillColor   = Color.LightGray,
                    StrokeStyle = StrokeStyle.None
                };

                var labeling = new SimpleLabeling(labelAttribute: "name")
                {
                    HaloSize  = 1,
                    Placement = new PointLabelPlacement
                    {
                        VerticalAnchorPoint   = VerticalAnchor.Bottom,
                        HorizontalAnchorPoint = HorizontalAnchor.Left,
                        HorizontalOffset      = 2,
                        VerticalOffset        = 2,
                        Rotation = 10,
                    }
                };

                map.Add(VectorLayer.Open(dataDir + "points.geojson", Drivers.GeoJson), symbol, labeling);
                map.Padding = 50;
                map.Render(dataDir + "points_labeling_placed_out.svg", Renderers.Svg);
            }
            //ExEnd: PointsLabelingPlaced
        }
        public static void AddMapLayersAndStyles()
        {
            //ExStart: AddMapLayersAndStyles
            using (var map = new Map(800, 476))
            {
                var baseMapSymbolizer = new SimpleFill {
                    FillColor = Color.Salmon, StrokeWidth = 0.75
                };
                map.Add(VectorLayer.Open(dataDir + "basemap.shp", Drivers.Shapefile), baseMapSymbolizer);

                var citiesSymbolizer = new SimpleMarker()
                {
                    FillColor = Color.LightBlue
                };
                citiesSymbolizer.FeatureBasedConfiguration = (feature, symbolizer) =>
                {
                    var population = feature.GetValue <int>("population");
                    symbolizer.Size = 10 * population / 1000;
                    if (population < 2500)
                    {
                        symbolizer.FillColor = Color.GreenYellow;
                    }
                };
                map.Add(VectorLayer.Open(dataDir + "points.geojson", Drivers.GeoJson), citiesSymbolizer);

                map.Render(dataDir + "cities_out.svg", Renderers.Svg);
            }
            //ExEnd: AddMapLayersAndStyles
        }
        public static void PointsLabelingStyled()
        {
            //ExStart: PointsLabelingStyled
            using (var map = new Map(500, 200))
            {
                var symbol = new SimpleMarker
                {
                    FillColor   = Color.LightGray,
                    StrokeStyle = StrokeStyle.None
                };

                var labeling = new SimpleLabeling(labelAttribute: "name")
                {
                    HaloSize  = 2,
                    HaloColor = Color.LightGray,
                    FontSize  = 15,
                    FontStyle = FontStyle.Italic,
                };

                map.Add(VectorLayer.Open(dataDir + "points.geojson", Drivers.GeoJson), symbol, labeling);
                map.Padding = 50;
                map.Render(dataDir + "points_labeling_styled_out.svg", Renderers.Svg);
            }
            //ExEnd: PointsLabelingStyled
        }
        public static void ChangeMarkerStyleFeatureBased()
        {
            //ExStart: ChangeMarkerStyleFeatureBased
            using (var map = new Map(500, 200))
            {
                var symbol = new SimpleMarker()
                {
                    FillColor = Color.LightBlue
                };
                symbol.FeatureBasedConfiguration = (feature, symbolizer) =>
                {
                    // retirieve city population (in thousands) from a feature attribute
                    var population = feature.GetValue <int>("population");

                    // let's increase circle radius by 5 pixels for each million people
                    symbolizer.Size = 5 * population / 1000;

                    // and let's draw cities with less than 2.5M people in green
                    if (population < 2500)
                    {
                        symbolizer.FillColor = Color.GreenYellow;
                    }
                };

                map.Add(VectorLayer.Open(dataDir + "points.geojson", Drivers.GeoJson), symbol);
                map.Padding = 20;
                map.Render(dataDir + "points_out.svg", Renderers.Svg);
            }
            //ExEnd: ChangeMarkerStyleFeatureBased
        }
        public static void DefaultMarkerStyle()
        {
            //ExStart: DefaultMarkerStyle
            using (var map = new Map(500, 200))
            {
                var symbol = new SimpleMarker();

                map.Add(VectorLayer.Open(dataDir + "points.geojson", Drivers.GeoJson), symbol);
                map.Padding = 20;
                map.Render(dataDir + "points_out.svg", Renderers.Svg);
            }
            //ExEnd: DefaultMarkerStyle
        }
        public static void ChangeMarkerStyle()
        {
            //ExStart: ChangeMarkerStyle
            using (var map = new Map(500, 200))
            {
                var symbol = new SimpleMarker()
                {
                    Size = 7, StrokeWidth = 1, FillColor = Color.Red
                };

                map.Add(VectorLayer.Open(dataDir + "points.geojson", Drivers.GeoJson), symbol);
                map.Padding = 20;
                map.Render(dataDir + "points_out.svg", Renderers.Svg);
            }
            //ExEnd: ChangeMarkerStyle
        }
        public static void RuleBasedLabeling()
        {
            //ExStart: RuleBasedLabeling
            using (var map = new Map(500, 200))
            {
                var symbolizer = new SimpleMarker {
                    FillColor = Color.LightGray, StrokeStyle = StrokeStyle.None
                };

                var labeling = new RuleBasedLabeling();
                // Set labeling to be used for small cities.
                labeling.Add(f => f.GetValue <int>("population") <= 2500, new SimpleLabeling("name")
                {
                    FontStyle = FontStyle.Italic,
                    HaloSize  = 1,
                    FontSize  = 10,
                    FontColor = Color.Green,
                    Priority  = 1,
                    Placement = new PointLabelPlacement
                    {
                        VerticalAnchorPoint   = VerticalAnchor.Bottom,
                        HorizontalAnchorPoint = HorizontalAnchor.Center,
                    }
                });
                // Set labeling to be used for all other cities.
                labeling.AddElseRule(new SimpleLabeling("name")
                {
                    HaloSize  = 1,
                    FontSize  = 15,
                    FontColor = Color.Red,
                    Priority  = 2,
                    Placement = new PointLabelPlacement
                    {
                        VerticalAnchorPoint   = VerticalAnchor.Bottom,
                        HorizontalAnchorPoint = HorizontalAnchor.Center,
                    }
                });

                map.Add(VectorLayer.Open(dataDir + "points.geojson", Drivers.GeoJson), symbolizer, labeling);
                map.Padding = 40;
                map.Render(dataDir + "rule_based_labeling_out.svg", Renderers.Svg);
            }
            //ExEnd: RuleBasedLabeling
        }
        public static void ChangeMarkerStyleTriangles()
        {
            //ExStart: ChangeMarkerStyleTriangles
            using (var map = new Map(500, 200))
            {
                var symbol = new SimpleMarker()
                {
                    Size        = 15,
                    FillColor   = Color.DarkMagenta,
                    StrokeStyle = StrokeStyle.None,
                    ShapeType   = MarkerShapeType.Triangle,
                    Rotation    = 90
                };

                map.Add(VectorLayer.Open(dataDir + "points.geojson", Drivers.GeoJson), symbol);
                map.Padding = 20;
                map.Render(dataDir + "points_out.svg", Renderers.Svg);
            }
            //ExEnd: ChangeMarkerStyleTriangles
        }
Example #9
0
 private void updateMarker(SimpleMarker marker)
 {
     marker.FillStyle.FillMode = FillMode.Solid;
     marker.Size = UIConstants.Chart.SERIES_MARKER_SIZE + Curve.LineThickness * Curve.LineThickness;
 }