Beispiel #1
0
 private void AddExternalRastrLayer()
 {
     vBboxd box = new vBboxd(new double[]
     {
         -2.003750834E7,
         -2.003750834E7,
         2.003750834E7,
         2.003750834E7
     });
     string name        = "cosmosshort";
     var    imageLoaded = maplibControl1.Maplib.Map.AddImageLayerTMS("http://vec02.maps.yandex.net/tiles?l=map&v=4.3.3&x=$(x)&y=$(y)&z=$(z)&lang=ru_RU",
                                                                     name, name, 0, 18, ref box, _projMap, 256, "cache", _projMap);
     //bool res = Map.BindScale("cosmosshort");
 }
Beispiel #2
0
 private void AddExternalRastrLayer()
 {
     string projMercator = "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs";
     //string projMap = "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs ";
     vBboxd box = new vBboxd(new double[]
     {
         -2.003750834E7,
         -2.003750834E7,
         2.003750834E7,
         2.003750834E7
     });
     string name        = "cosmosshort";
     var    imageLoaded = maplibControl1.Maplib.Map.AddImageLayerTMS("http://vec02.maps.yandex.net/tiles?l=map&v=4.3.3&x=$(x)&y=$(y)&z=$(z)&lang=ru_RU",
                                                                     name, name, 0, 20, ref box, projMercator, 256, "cache", _projMap);
     //bool res = maplibControl1.Maplib.BindScale("cosmosshort");
 }
Beispiel #3
0
        private byte[] GetMapImage()
        {
            return(null);

            uint   h = 750, w = 1050;
            double k = (double)w / (double)h;

            double s    = 0;
            var    bbox = CalcBbox(LayerOdh, LayerZone);

            double dx = (bbox.b.x - bbox.a.x);
            double dy = (bbox.b.y - bbox.a.y);
            double km = dx / dy;

            double ddx = 0;
            double ddy = 0;

            if (k > km)
            {
                ddx = ((dy * k) - dx) / 2;
            }
            else
            {
                ddy = (((dx * h) / w) - dy) / 2;
            }

            vBboxd bbox2 = new vBboxd(bbox.a.x - ddx, bbox.a.y - ddy, bbox.b.x + ddx, bbox.b.y + ddy);

            double dx2 = (bbox2.b.x - bbox2.a.x);
            double dy2 = (bbox2.b.y - bbox2.a.y);
            double km2 = dy2 / dx2;

            MapControl.SetApplicationParameter("TilesLoadingSynchronous", "1");
            bool result = MapControl.SaveImageByExtent(bbox2, ref s, ref h, ref w, "temp.bmp", true);

            MapControl.SetApplicationParameter("TilesLoadingSynchronous", "0");

            var file = System.IO.File.ReadAllBytes("temp.bmp");

            try
            {
                System.IO.File.Delete("temp.bmp");
            }
            catch { }
            return(file);
        }
Beispiel #4
0
        private vBboxd CalcBbox(VectorLayer layer_odh, VectorLayer layer_zone)
        {
            vBboxd b_odh = new vBboxd();
            vBboxd b_zone = new vBboxd();
            double dx = 0, dy = 0;

            if (layer_odh.Objects.Count > 0 && layer_zone.Objects.Count == 0)
            {
                b_odh = layer_odh.Bbox;
                dx    = (b_odh.b.x - b_odh.a.x) * 0.1;
                dy    = (b_odh.b.y - b_odh.a.y) * 0.1;

                vBboxd result = new vBboxd(b_odh.a.x - dx, b_odh.a.y - dy, b_odh.b.x + dx, b_odh.b.y + dy);
                return(result);
            }

            if (layer_odh.Objects.Count == 0 && layer_zone.Objects.Count > 0)
            {
                b_zone = layer_zone.Bbox;
                dx     = (b_zone.b.x - b_zone.a.x) * 0.1;
                dy     = (b_zone.b.y - b_zone.a.y) * 0.1;

                vBboxd result = new vBboxd(b_zone.a.x - dx, b_zone.a.y - dy, b_zone.b.x + dx, b_zone.b.y + dy);
                return(result);
            }

            if (layer_odh.Objects.Count > 0 && layer_zone.Objects.Count > 0)
            {
                b_odh  = layer_odh.Bbox;
                b_zone = layer_zone.Bbox;
                double max_x = b_odh.b.x, max_y = b_odh.b.y, min_x = b_odh.a.x, min_y = b_odh.a.y;

                if (max_x < b_odh.a.x)
                {
                    max_x = b_odh.a.x;
                }
                if (max_x < b_zone.a.x)
                {
                    max_x = b_zone.a.x;
                }
                if (max_x < b_zone.b.x)
                {
                    max_x = b_zone.b.x;
                }

                if (max_y < b_odh.a.y)
                {
                    max_y = b_odh.a.y;
                }
                if (max_y < b_zone.a.y)
                {
                    max_y = b_zone.a.y;
                }
                if (max_y < b_zone.b.y)
                {
                    max_y = b_zone.b.y;
                }

                if (min_x > b_odh.b.x)
                {
                    min_x = b_odh.b.x;
                }
                if (min_x > b_zone.a.x)
                {
                    min_x = b_zone.a.x;
                }
                if (min_x > b_zone.b.x)
                {
                    min_x = b_zone.b.x;
                }

                if (min_y > b_odh.b.y)
                {
                    min_y = b_odh.b.y;
                }
                if (min_y > b_zone.a.y)
                {
                    min_y = b_zone.a.y;
                }
                if (min_y > b_zone.b.y)
                {
                    min_y = b_zone.b.y;
                }

                dx = (max_x - min_x) * 0.1;
                dy = (max_y - min_y) * 0.1;

                vBboxd result = new vBboxd(min_x - dx, min_y - dy, max_x + dx, max_y + dy);
                return(result);
            }
            return(new vBboxd());
        }
Beispiel #5
0
        private void GoToMoscow()
        {
            vBboxd bMoscow = new vBboxd(4169026.83, 7453277.59, 4206486.94, 7495036.48);

            maplibControl1.Maplib.Extent = bMoscow;
        }