33 lines
925 B
C#
33 lines
925 B
C#
|
using System.Text.Json.Serialization;
|
||
|
using OSMDatastructure.Graph;
|
||
|
|
||
|
namespace RenderPath;
|
||
|
|
||
|
public class Bounds
|
||
|
{
|
||
|
[JsonInclude]public float minLat, maxLat, minLon, maxLon;
|
||
|
|
||
|
[JsonConstructor]
|
||
|
public Bounds(float minLat, float minLon, float maxLat, float maxLon)
|
||
|
{
|
||
|
this.minLon = minLon;
|
||
|
this.maxLat = maxLat;
|
||
|
this.maxLon = maxLon;
|
||
|
this.minLat = minLat;
|
||
|
}
|
||
|
|
||
|
public static Bounds FromCoords(float lat1, float lon1, float lat2, float lon2)
|
||
|
{
|
||
|
float minLat = lat1 < lat2 ? lat1 : lat2;
|
||
|
float minLon = lon1 < lon2 ? lon1 : lon2;
|
||
|
float maxLat = lat1 > lat2 ? lat1 : lat2;
|
||
|
float maxLon = lon1 > lon2 ? lon1 : lon2;
|
||
|
|
||
|
return new Bounds(minLat, minLon, maxLat, maxLon);
|
||
|
}
|
||
|
|
||
|
public static Bounds FromCoords(Coordinates c1, Coordinates c2)
|
||
|
{
|
||
|
return FromCoords(c1.latitude, c1.longitude, c2.latitude, c2.longitude);
|
||
|
}
|
||
|
}
|