I'd think that in the code fragment below, point2 should equal point1. This is not the case though.
var point1 = new PointLatLng(0, 0);
var rect = new RectLatLng(point1.Lat - 1, point1.Lng - 1, 2, 2);
var point2 = rect.LocationMiddle;
Possible fix: in the LocationMiddle property, change the first argument to .Offset() to half the negated HeightLat property.
Comments: Nevermind this! I'm completely wrong!
var point1 = new PointLatLng(0, 0);
var rect = new RectLatLng(point1.Lat - 1, point1.Lng - 1, 2, 2);
var point2 = rect.LocationMiddle;
Possible fix: in the LocationMiddle property, change the first argument to .Offset() to half the negated HeightLat property.
Comments: Nevermind this! I'm completely wrong!