static void TestFloor() { const int delta = 10; //CW(((int)(179 / delta)) * delta); //CW(((int)(-179 / delta)) * delta); double a = -185; double b = 175; //CW(a.NormalizeLongitude() ); //CW(b.NormalizeLongitude() ); var v = MathTool.FloorLatLon(a, delta) - delta; CW(v); var w = MathTool.FloorLatLon(b, delta) - delta; CW(w); //var v = MathTool.FloorLatLon(a, delta); //CW(v); //var w = MathTool.FloorLatLon(b, delta); //CW(w); CW(v.NormalizeLongitude()); CW(w.NormalizeLongitude()); }
public static Boundary GetBoundaryExtended(JsonGetMarkersReceive input) { var deltas = GetDelta(GmcSettings.Get.Gridx, GmcSettings.Get.Gridy, input.Zoomlevel); var deltaX = deltas[0]; var deltaY = deltas[1]; // Grid with extended outer grid-area non-visible var a = MathTool.FloorLatLon(input.Viewport.Minx, deltaX) - deltaX * GmcSettings.Get.OuterGridExtend; var b = MathTool.FloorLatLon(input.Viewport.Miny, deltaY) - deltaY * GmcSettings.Get.OuterGridExtend; var a2 = MathTool.FloorLatLon(input.Viewport.Maxx, deltaX) + deltaX * (1 + GmcSettings.Get.OuterGridExtend); var b2 = MathTool.FloorLatLon(input.Viewport.Maxy, deltaY) + deltaY * (1 + GmcSettings.Get.OuterGridExtend); // Latitude is special with Google Maps, they don't wrap around, then do constrain b = MathTool.ConstrainLatitude(b); b2 = MathTool.ConstrainLatitude(b2); var grid = new Boundary { Minx = a, Miny = b, Maxx = a2, Maxy = b2 }; grid.Normalize(); return(grid); }
public static Boundary GetBoundaryExtended(MarkersInput input) { var deltas = GetDelta(GmcConfiguration.Get.GridX, GmcConfiguration.Get.GridY, input.Zoomlevel); var deltaX = deltas[0]; var deltaY = deltas[1]; // Grid with extended outer grid-area non-visible var a = MathTool.FloorLatLon(input.Viewport.MinX, deltaX) - deltaX * GmcConfiguration.Get.OuterGridExtend; var b = MathTool.FloorLatLon(input.Viewport.MinY, deltaY) - deltaY * GmcConfiguration.Get.OuterGridExtend; var a2 = MathTool.FloorLatLon(input.Viewport.MaxX, deltaX) + deltaX * (1 + GmcConfiguration.Get.OuterGridExtend); var b2 = MathTool.FloorLatLon(input.Viewport.MaxY, deltaY) + deltaY * (1 + GmcConfiguration.Get.OuterGridExtend); // Latitude is special with Google Maps, they don't wrap around, then do constrain b = MathTool.ConstrainLatitude(b); b2 = MathTool.ConstrainLatitude(b2); var grid = new Boundary { MinX = a, MinY = b, MaxX = a2, MaxY = b2 }; grid.Normalize(); return(grid); }