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); }