/// <summary> /// Bound in den Metadaten neu ermitteln /// </summary> public void RebuildMetadataBounds() { GpxBounds bounds = new GpxBounds(); foreach (GpxWaypoint wp in Waypoints) { bounds.Union(wp); } foreach (GpxTrack track in Tracks) { foreach (GpxTrackSegment segment in track.Segments) { foreach (GpxTrackPoint pt in segment.Points) { bounds.Union(pt); } } } foreach (GpxRoute route in Routes) { foreach (GpxRoutePoint pt in route.Points) { bounds.Union(pt); } } Metadata.Bounds = bounds; }
public GpxBounds(GpxBounds b) : base() { MinLat = b.MinLat; MaxLat = b.MaxLat; MinLon = b.MinLon; MaxLon = b.MaxLon; }
/// <summary> /// vereinigt, wenn möglich, die beiden Bereiche /// </summary> /// <param name="bounds"></param> /// <returns></returns> public bool Union(GpxBounds bounds) { if (!IsValid()) { MinLat = bounds.MinLat; MaxLat = bounds.MaxLat; MinLon = bounds.MinLon; MaxLon = bounds.MaxLon; } else { if (bounds.IsValid()) { UnionLatLon(ref MinLon, ref MaxLon, bounds.MinLon, bounds.MaxLon, 180); UnionLatLon(ref MinLat, ref MaxLat, bounds.MinLat, bounds.MaxLat, 360); return(true); } } return(false); }
protected override void Init() { Time = NOTVALID_TIME; Bounds = new GpxBounds(); }