Reuse polyline PathFigureCollection

This commit is contained in:
ClemensFischer 2023-12-13 14:55:49 +01:00
parent 6b386827ff
commit 71f17420b5
6 changed files with 15 additions and 17 deletions

View file

@ -139,35 +139,27 @@ namespace MapControl
return longitudeOffset;
}
protected PathFigureCollection GetPolylineFigures(IEnumerable<Location> locations, bool closed)
protected void AddPolylinePoints(PathFigureCollection pathFigures, IEnumerable<Location> locations, bool closed)
{
var pathFigures = new PathFigureCollection();
if (parentMap != null && locations != null)
{
var longitudeOffset = GetLongitudeOffset(Location ?? locations.FirstOrDefault());
AddPolylineLocations(pathFigures, locations, longitudeOffset, closed);
AddPolylinePoints(pathFigures, locations, longitudeOffset, closed);
}
return pathFigures;
}
protected PathFigureCollection GetMultiPolygonFigures(IEnumerable<IEnumerable<Location>> polygons)
protected void AddMultiPolygonPoints(PathFigureCollection pathFigures, IEnumerable<IEnumerable<Location>> polygons)
{
var pathFigures = new PathFigureCollection();
if (parentMap != null && polygons != null)
{
var longitudeOffset = GetLongitudeOffset(Location);
foreach (var polygon in polygons)
{
AddPolylineLocations(pathFigures, polygon, longitudeOffset, true);
AddPolylinePoints(pathFigures, polygon, longitudeOffset, true);
}
}
return pathFigures;
}
#endregion

View file

@ -54,7 +54,9 @@ namespace MapControl
protected override void UpdateData()
{
((PathGeometry)Data).Figures = GetPolylineFigures(Locations, true);
var figures = ((PathGeometry)Data).Figures;
figures.Clear();
AddPolylinePoints(figures, Locations, true);
}
}
}

View file

@ -54,7 +54,9 @@ namespace MapControl
protected override void UpdateData()
{
((PathGeometry)Data).Figures = GetPolylineFigures(Locations, false);
var figures = ((PathGeometry)Data).Figures;
figures.Clear();
AddPolylinePoints(figures, Locations, false);
}
}
}