Страница 1 из 1

Программная привязка рисунка

Добавлено: 02 авг 2012, 08:28
Tereha
Уважаемые Гуру!
Если рисунок небольшой (экспериментировал с рисунком ~ 57 кб - в приложении), то его можно положить на карту просто как Element:

Код: Выделить всё

        public void createPictureElement(double x, double y)
        {
            ESRI.ArcGIS.Carto.IPictureElement pPictureElement;
            pPictureElement = new ESRI.ArcGIS.Carto.PngPictureElementClass();
            pPictureElement.ImportPictureFromFile(@"D:\Тойвола.png");//Тойвола.png
            ESRI.ArcGIS.Geometry.IEnvelope pEnv = new ESRI.ArcGIS.Geometry.EnvelopeClass();
            pEnv.PutCoords(x, y, x +3373, y + 1868); // Тойвола
            ESRI.ArcGIS.Carto.IElement pElement;
            pElement = pPictureElement as ESRI.ArcGIS.Carto.IElement;
            pElement.Geometry = pEnv;
            ESRI.ArcGIS.Carto.IGraphicsContainer pGraphicContainer;
            pGraphicContainer = axMapControl1.Map as IGraphicsContainer;
            pGraphicContainer.AddElement(pElement, 0);
            ESRI.ArcGIS.Carto.IActiveView pActiveView;
            pActiveView = pGraphicContainer as ESRI.ArcGIS.Carto.IActiveView;
            pActiveView.PartialRefresh(ESRI.ArcGIS.Carto.esriViewDrawPhase.esriViewGraphics, pElement, pEnv);
        }
Все инструменты по работе с элементом - растяжение перетаскивание работают удовлетворительно.
Но если использовать рисунок весом 7 mb, то работать с ней как с Element невозможно - все очень медленно и во вторых от растра остаются какие-то штрихи и отдельные точки.
С другой стороны, если такого размера рисунок добавлять на карту с помощью "Add data" в arcmap - то работать с таким растром можно. Единственное он ложится не совсем ясно куда - физически у меня в левый нижний угол. Если сделать Zoom to layer и далее Zoom to Raster Resolution , то получаю, в принципе удовлетворительный механизм для своих нужд - получаю слой на который наносятся значки и далее экспортируется в презентацию.
Вопрос: Как программно сделать Add Data такого большого рисунка и в заданные координаты?