Exemple #1
0
        protected override void Shape(T item, bool flip)
        {
            var fill = Aesthetic.Fill;

            if (Aesthetics.Fill != null)
            {
                fill = Aesthetics.Fill.Map(item);
                if (string.IsNullOrEmpty(fill))
                {
                    return;
                }
            }

            var latitudes  = Selectors.Latitude(item);
            var longitudes = Selectors.Longitude(item);

            var xmin = double.MaxValue;
            var xmax = double.MinValue;

            var ymin = double.MaxValue;
            var ymax = double.MinValue;

            var poly = new Polygon
            {
                Aesthetic = new Elements.Rectangle
                {
                    Fill  = fill,
                    Alpha = Aesthetic.Alpha,
                    Color = Aesthetic.Color,
                    Width = Aesthetic.Width
                }
            };

            for (var i = 0; i < latitudes.Length; i++)
            {
                var x = latitudes[i];
                var y = longitudes[i];

                if (x < xmin)
                {
                    xmin = x;
                }

                if (x > xmax)
                {
                    xmax = x;
                }

                if (y < ymin)
                {
                    ymin = y;
                }

                if (y > ymax)
                {
                    ymax = y;
                }

                poly.Points.Add((x, y));
            }

            Layer.Add(poly);

            Positions.X.Position.Shape(xmin, xmax);
            Positions.Y.Position.Shape(ymin, ymax);
        }