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"); }
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"); }
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); }
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()); }
private void GoToMoscow() { vBboxd bMoscow = new vBboxd(4169026.83, 7453277.59, 4206486.94, 7495036.48); maplibControl1.Maplib.Extent = bMoscow; }