/// <summary> /// regenerates shape of polygon /// </summary> public virtual void RegenerateShape(GMapControl map) { if(map != null) { this.Map = map; if(Points.Count > 1) { Position = Points[0]; var localPath = new List<System.Windows.Point>(Points.Count); var offset = Map.FromLatLngToLocal(Points[0]); foreach(var i in Points) { var p = Map.FromLatLngToLocal(i); localPath.Add(new System.Windows.Point(p.X - offset.X, p.Y - offset.Y)); } var shape = map.CreatePolygonPath(localPath); if(this.Shape is Path) { (this.Shape as Path).Data = shape.Data; } else { this.Shape = shape; } } else { this.Shape = null; } } }
/// <summary> /// regenerates shape of polygon /// </summary> public virtual void RegeneratePolygonShape(GMapControl map) { this.map = map; if(map != null && Polygon.Count > 1) { var localPath = new List<System.Windows.Point>(); var offset = Map.FromLatLngToLocal(Polygon[0]); foreach(var i in Polygon) { var p = Map.FromLatLngToLocal(new PointLatLng(i.Lat, i.Lng)); localPath.Add(new System.Windows.Point(p.X - offset.X, p.Y - offset.Y)); } var shape = map.CreatePolygonPath(localPath); if(this.Shape != null && this.Shape is Path) { (this.Shape as Path).Data = shape.Data; } else { this.Shape = shape; } } }