获取IMap上绘制的Element的区域范围
2014-07-18 17:32
381 查看
运行环境:开发环境:Windows7旗舰版64bit、VisualStudio2008 With SP1、ArcEngine10.0、NetFrameWork4.0、IIS7和C#开发语言。
问题描述:之前CS端的断面分析功能,是将断面图绘制在IMap之上,然后再AxMapControl进行展现,现在要将其移植到WebService中,自然没有控件进行展现,于是采用了直接将在IMap中绘制的要素导出为图片的方式进行,但是在导出图片的过程中,往往导出的区域并不是自己绘制要素所在的区域,因此要先获取自己绘制要素的区域范围。
下面是获取绘制的要素公共外接矩形方法,只要在绘制完成后获取此公共外接矩形,然后将该区域进行导出为图片即可。
[/code]
最后获取的env就是所需要的公共外接矩形。
注意:在此过程中对于文本要素的Envelop是当做点进行处理的,因此如果存在文本要素出现在外围,需要根据实际情况进行位置的简单调整即可。或者也可以获取这些文本的外接矩形进行计算,这样会更准确一些。
问题描述:之前CS端的断面分析功能,是将断面图绘制在IMap之上,然后再AxMapControl进行展现,现在要将其移植到WebService中,自然没有控件进行展现,于是采用了直接将在IMap中绘制的要素导出为图片的方式进行,但是在导出图片的过程中,往往导出的区域并不是自己绘制要素所在的区域,因此要先获取自己绘制要素的区域范围。
下面是获取绘制的要素公共外接矩形方法,只要在绘制完成后获取此公共外接矩形,然后将该区域进行导出为图片即可。
[code] //获取绘制要素的整体范围
IEnumElement pEnumElem;
IGraphicsContainer graphicsContainer = pMap as IGraphicsContainer;
IGraphicsContainerSelect pGraphicsContainerSelect = pMap as IGraphicsContainerSelect;
pGraphicsContainerSelect.SelectAllElements();
pEnumElem = pGraphicsContainerSelect.SelectedElements;
IElement ele = pEnumElem.Next();
IEnvelope env = new EnvelopeClass();
while (ele != null)
{
IGeometry geo = ele.Geometry;
ele = pEnumElem.Next();
env.Union(geo.Envelope);
}
pActiveView.Extent = env;
pGraphicsContainerSelect.UnselectAllElements();
[/code]
最后获取的env就是所需要的公共外接矩形。
注意:在此过程中对于文本要素的Envelop是当做点进行处理的,因此如果存在文本要素出现在外围,需要根据实际情况进行位置的简单调整即可。或者也可以获取这些文本的外接矩形进行计算,这样会更准确一些。
相关文章推荐
- GDI中获取字符串精确绘制范围的两种做法比较
- Android项目技术总结:获取状态栏和标题栏并计算长宽来限制绘制浮动窗口活动范围
- 百度地图画出区域并获取区域坐标范围
- Window Mobile 精确获取文本绘制区域大小
- 百度地图画出区域并获取区域坐标范围 收藏版
- js获取页面的可视宽高度,占位宽高度,获取元素左上角相对页面左上角的位置,元素左上角相对可是区域的位置,元素是否存在于页面可视范围内
- Android项目技术总结:获取状态栏和标题栏并计算长宽来限制绘制浮动窗口活动范围
- 腾讯地图画出区域获取该区域的范围坐标
- ArcEngine开发:IElement.Geometry 值不在预期范围内 + 元素绘制代码
- 百度地图画出区域并获取区域坐标范围
- 百度地图画出区域并获取区域坐标范围
- Windows程序设计零基础自学_3_Windows程序的显示和更新_之获取设备内容句柄_非WM_PAINT消息期间绘制显示区域
- c++ 金山库绘制文本区域的获取。
- 通过区域坐标获取sqlserver中的geometry 的区域范围内的坐标
- 百度api商圈范围图修改获取坐标数据、点是否在区域范围判断、js解析创建excel
- 百度地图画出区域并获取区域坐标范围
- Android项目技术总结:获取状态栏和标题栏并计算长宽来限制绘制浮动窗口活动范围
- 通过区域坐标获取sqlserver中的geometry 的区域范围内的坐标
- GDI中获取字符串精确绘制范围的两种做法比较
- GDI中获取字符串精确绘制范围