Beispiel #1
0
        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);
        }