public virtual void RegenerateRouteShape(MapControl map) { this.map = map; if (map != null && Route.Count > 1) { var localPath = new List <System.Windows.Point>(); var offset = Map.FromLatLngToLocal(Route[0]); foreach (var i in Route) { 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.CreateRoutePath(localPath); if (this.Shape != null && this.Shape is Path) { (this.Shape as Path).Data = shape.Data; } else { this.Shape = shape; } } }