예제 #1
0
 internal void Update(ICollection <StacItem> items)
 {
     Spatial = new StacSpatialExtent(items.Select(i => i.GetBoundingBoxFromGeometryExtent()[0])
                                     .Concat(new double[] { this.Spatial.BoundingBoxes[0][0] })
                                     .Min(),
                                     items.Select(i => i.GetBoundingBoxFromGeometryExtent()[1])
                                     .Concat(new double[] { this.Spatial.BoundingBoxes[0][1] })
                                     .Min(),
                                     items.Select(i => i.GetBoundingBoxFromGeometryExtent()[2])
                                     .Concat(new double[] { this.Spatial.BoundingBoxes[0][2] })
                                     .Max(),
                                     items.Select(i => i.GetBoundingBoxFromGeometryExtent()[3])
                                     .Concat(new double[] { this.Spatial.BoundingBoxes[0][3] })
                                     .Max());
     Temporal = new StacTemporalExtent(items.Select(i => i.DateTime.Start)
                                       .Concat(new DateTime[] { this.Temporal.Interval[0][0].GetValueOrDefault() })
                                       .Min(),
                                       items.Select(i => i.DateTime.End)
                                       .Concat(new DateTime[] { this.Temporal.Interval[0][1].GetValueOrDefault() })
                                       .Max());
 }
예제 #2
0
 /// <summary>
 /// Intialize a new Stac Temporal Extent from an exisiting one (clone)
 /// </summary>
 /// <param name="temporal"></param>
 public StacTemporalExtent(StacTemporalExtent temporal)
 {
     this.Interval = (System.DateTime?[][])temporal.Interval.Clone();
 }
예제 #3
0
 public StacExtent(StacSpatialExtent spatial, StacTemporalExtent temporal)
 {
     this.Spatial  = spatial;
     this.Temporal = temporal;
 }