Программная привязка рисунка
Добавлено: 02 авг 2012, 08:28
Уважаемые Гуру!
Если рисунок небольшой (экспериментировал с рисунком ~ 57 кб - в приложении), то его можно положить на карту просто как Element:
Все инструменты по работе с элементом - растяжение перетаскивание работают удовлетворительно.
Но если использовать рисунок весом 7 mb, то работать с ней как с Element невозможно - все очень медленно и во вторых от растра остаются какие-то штрихи и отдельные точки.
С другой стороны, если такого размера рисунок добавлять на карту с помощью "Add data" в arcmap - то работать с таким растром можно. Единственное он ложится не совсем ясно куда - физически у меня в левый нижний угол. Если сделать Zoom to layer и далее Zoom to Raster Resolution , то получаю, в принципе удовлетворительный механизм для своих нужд - получаю слой на который наносятся значки и далее экспортируется в презентацию.
Вопрос: Как программно сделать Add Data такого большого рисунка и в заданные координаты?
Если рисунок небольшой (экспериментировал с рисунком ~ 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 такого большого рисунка и в заданные координаты?