using Degrees = System.Double;
using System.Diagnostics;
public static void Main()
var pt = new GeoPoint(0, 0);
for (var i = 0; i < 10; ++i)
public GeoPoint(Degrees latitude, Degrees longitude)
private Degrees _latitude;
private Degrees _longitude;
_latitude = Math.Max(Math.Min(_latitude, 90), -90);
while (_longitude <= -180)
Debug.Assert(_latitude >= -90 && _latitude <= 90);
Debug.Assert(_longitude > -180 && _longitude <= 180);
public override string ToString() => string.Format($"{_latitude}, {_longitude}");
public void Move(Degrees latitudeChange, Degrees longitudeChange)
_latitude += latitudeChange;
_longitude += longitudeChange;