mirror of
https://github.com/ClemensFischer/XAML-Map-Control.git
synced 2025-12-06 07:12:04 +01:00
Updated MapGraticule
This commit is contained in:
parent
8e8d414a46
commit
ee136831e6
|
|
@ -107,7 +107,7 @@ namespace MapControl
|
||||||
labelFormat, hemisphere, seconds / 3600, seconds / 60 % 60, seconds % 60);
|
labelFormat, hemisphere, seconds / 3600, seconds / 60 % 60, seconds % 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddLabel(ICollection<Label> labels, Location location, Point position, double? rotation = null)
|
private void AddLabel(List<Label> labels, Location location, Point position, double? rotation = null)
|
||||||
{
|
{
|
||||||
if (position.X >= 0d && position.X <= ParentMap.ActualWidth &&
|
if (position.X >= 0d && position.X <= ParentMap.ActualWidth &&
|
||||||
position.Y >= 0d && position.Y <= ParentMap.ActualHeight)
|
position.Y >= 0d && position.Y <= ParentMap.ActualHeight)
|
||||||
|
|
@ -135,7 +135,7 @@ namespace MapControl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private ICollection<Label> DrawGraticule(PathFigureCollection figures)
|
private List<Label> DrawGraticule(PathFigureCollection figures)
|
||||||
{
|
{
|
||||||
var labels = new List<Label>();
|
var labels = new List<Label>();
|
||||||
|
|
||||||
|
|
@ -155,7 +155,7 @@ namespace MapControl
|
||||||
return labels;
|
return labels;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DrawCylindricalGraticule(PathFigureCollection figures, ICollection<Label> labels)
|
private void DrawCylindricalGraticule(PathFigureCollection figures, List<Label> labels)
|
||||||
{
|
{
|
||||||
var boundingBox = ParentMap.ViewRectToBoundingBox(new Rect(0, 0, ParentMap.ActualWidth, ParentMap.ActualHeight));
|
var boundingBox = ParentMap.ViewRectToBoundingBox(new Rect(0, 0, ParentMap.ActualWidth, ParentMap.ActualHeight));
|
||||||
var latLabelStart = Math.Ceiling(boundingBox.South / lineDistance) * lineDistance;
|
var latLabelStart = Math.Ceiling(boundingBox.South / lineDistance) * lineDistance;
|
||||||
|
|
@ -195,7 +195,7 @@ namespace MapControl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DrawGraticule(PathFigureCollection figures, ICollection<Label> labels)
|
private void DrawGraticule(PathFigureCollection figures, List<Label> labels)
|
||||||
{
|
{
|
||||||
var minLat = 0d;
|
var minLat = 0d;
|
||||||
var maxLat = 0d;
|
var maxLat = 0d;
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,6 @@ namespace MapControl
|
||||||
public static readonly DependencyProperty FontSizeProperty =
|
public static readonly DependencyProperty FontSizeProperty =
|
||||||
DependencyPropertyHelper.Register<MapGraticule, double>(nameof(FontSize), 12d);
|
DependencyPropertyHelper.Register<MapGraticule, double>(nameof(FontSize), 12d);
|
||||||
|
|
||||||
private readonly Path path = new Path { Data = new PathGeometry() };
|
|
||||||
|
|
||||||
public Brush Foreground
|
public Brush Foreground
|
||||||
{
|
{
|
||||||
get => (Brush)GetValue(ForegroundProperty);
|
get => (Brush)GetValue(ForegroundProperty);
|
||||||
|
|
@ -61,10 +59,12 @@ namespace MapControl
|
||||||
|
|
||||||
protected override void OnViewportChanged(ViewportChangedEventArgs e)
|
protected override void OnViewportChanged(ViewportChangedEventArgs e)
|
||||||
{
|
{
|
||||||
var labels = DrawGraticule(((PathGeometry)path.Data).Figures);
|
Path path;
|
||||||
|
|
||||||
if (Children.Count == 0)
|
if (Children.Count == 0)
|
||||||
{
|
{
|
||||||
|
path = new Path { Data = new PathGeometry() };
|
||||||
|
|
||||||
path.SetBinding(Shape.StrokeProperty,
|
path.SetBinding(Shape.StrokeProperty,
|
||||||
new Binding { Source = this, Path = new PropertyPath(nameof(Foreground)) });
|
new Binding { Source = this, Path = new PropertyPath(nameof(Foreground)) });
|
||||||
|
|
||||||
|
|
@ -73,7 +73,12 @@ namespace MapControl
|
||||||
|
|
||||||
Children.Add(path);
|
Children.Add(path);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
path = (Path)Children[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
var labels = DrawGraticule(((PathGeometry)path.Data).Figures);
|
||||||
var childrenCount = 1;
|
var childrenCount = 1;
|
||||||
|
|
||||||
foreach (var label in labels)
|
foreach (var label in labels)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue