获取IMap上绘制的Element的区域范围
运行环境:开发环境:Windows7旗舰版64bit、VisualStudio2008 With SP1、ArcEngine10.0、NetFrameWork4.0、IIS7和C#开发语言。
问题描述:之前CS端的断面分析功能,是将断面图绘制在IMap之上,然后再AxMapControl进行展现,现在要将其移植到WebService中,自然没有控件进行展现,于是采用了直接将在IMap中绘制的要素导出为图片的方式进行,但是在导出图片的过程中,往往导出的区域并不是自己绘制要素所在的区域,因此要先获取自己绘制要素的区域范围。
下面是获取绘制的要素公共外接矩形方法,只要在绘制完成后获取此公共外接矩形,然后将该区域进行导出为图片即可。
1: //获取绘制要素的整体范围
2: IEnumElement pEnumElem;
3: IGraphicsContainer graphicsContainer = pMap as IGraphicsContainer;
4: IGraphicsContainerSelect pGraphicsContainerSelect = pMap as IGraphicsContainerSelect;
5: pGraphicsContainerSelect.SelectAllElements();
6: pEnumElem = pGraphicsContainerSelect.SelectedElements;
7: IElement ele = pEnumElem.Next();
8: IEnvelope env = new EnvelopeClass();
9: while (ele != null)
10: {
11: IGeometry geo = ele.Geometry;
12: ele = pEnumElem.Next();
13: env.Union(geo.Envelope);
14: }
15: pActiveView.Extent = env;
16: pGraphicsContainerSelect.UnselectAllElements();
最后获取的env就是所需要的公共外接矩形。
注意:在此过程中对于文本要素的Envelop是当做点进行处理的,因此如果存在文本要素出现在外围,需要根据实际情况进行位置的简单调整即可。或者也可以获取这些文本的外接矩形进行计算,这样会更准确一些。
获取IMap上绘制的Element的区域范围的更多相关文章
- 记录开发基于百度地图API实现在地图上绘制轨迹并拾取轨迹对应经纬度的工具说明
前言: 最近一直在做数据可视化方面的工作,其中平面可视化没什么难度,毕竟已经有很多成熟的可供使用的框架,比如百度的echart.js,highcharts.js等.还有就是3D可视化了,整体来说难度也 ...
- 自定义界面上绘制Text,可通过拖动控制文字大小及其位置
项目地址 最近项目上有个需求,需要在一块区域中显示文字,这块区域可以拖动,也可以通过拖拽右下角来改变大小,里面的文字大小要根据区域的大小进行自适应.刚开始觉得这个需求不难,只需要一个TextView就 ...
- 在谷歌地图上绘制行政区域轮廓【结合高德地图的API】
实现思路: 1.利用高德地图行政区域API获得坐标列表 2.将坐标列表绘制在谷歌地图上[因为高德地图和国内的谷歌地图都是采用GCJ02坐标系,所有误差很小,可以不进行坐标误差转换] 注意点: 1.用百 ...
- 使用WebBrowser控件时在网页元素上绘制文本或其他自定义内容
原文:使用WebBrowser控件时在网页元素上绘制文本或其他自定义内容 第一次在CNBlogs上发Post是提出一个有关使用WebBrowser控件时对SELECT网页元素操作的疑惑,这个问题至今也 ...
- iOS开发之在地图上绘制出你运行的轨迹
首先我们看下如何在地图上绘制曲线.在Map Kit中提供了一个叫MKPolyline的类,我们可以利用它来绘制曲线,先看个简单的例子. 使用下面代码从一个文件中读取出经纬度,然后创建一个路径:MKPo ...
- 在<canvas>上绘制img(drawImage())时需要注意的事
<canvas>标签相当于是一个画布,css决定画布的样式(这块画布的背景颜色.大小等),脚本(一般使用JavaScript)就是画笔,我们可以在这个画布上绘制线条.形状.文字.图片等. ...
- 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内。以及两点间的测距功能
权声明:本文为博主原创文章,未经博主允许不得转载. 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内.以及两点间的测距功能. 绘制多边形(蓝色) ...
- 软件项目技术点(7)——在canvas上绘制自定义图形
AxeSlide软件项目梳理 canvas绘图系列知识点整理 图形种类 目前我们软件可以绘制出来的形状有如下这几种,作为开发者我们一直想支持用户可以拖拽的类似word里面图形库,但目前还没有找到比 ...
- vue+element-ui中的图片获取与上传
vue+element-ui中的图片获取与上传 工作上接触了一下图片的处理,图片的格式是文件流, 记录如下. 请求图片 请求图片的时候,带上{ responseType: 'blob' }, 否则图片 ...
随机推荐
- 一些不错的学习资料(node)
Node.js的api中文文档 http://expressjs.jser.us/ 关于Node.js的一系列不错的学习文章 http://blog.fens.me/ express框架的使用 htt ...
- map和list遍历基础
本文属原创,转载请注明出处:http://www.cnblogs.com/robinjava77/p/5456085.html (Robin) Map import java.util.HashMap ...
- sql: 去除数据库表中tab、空格、回车符等特殊字符的解决方法
去除tab.空格.回车符等使用replace语句 按照ASCII码, SELECT char(64) 例如64 对应 @,则select REPLACE('abc@qq.com',char(64),' ...
- NK3C框架(MyBatis、Durid)连接SQL Server
NK3C框架连接SQL Server修改配置如下: 1.添加POM引用 <sqlserver.driver.version>4.0</sqlserver.driver.version ...
- Android IOS WebRTC 音视频开发总结(八十五)-- 使用WebRTC广播网络摄像头视频(下)
本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...
- AWS多个EIP的解决方案
前言 前段时间,公司部署在AWS上的一台EC2突然访问不了了,后来经过检测发现是被GWF给墙了,可能是我们经常拿这台服务器来FQ导致的,幸好这台服务器的客户都是在香港的,被墙了对客户没有什么影响,但是 ...
- linux获取本机ip
int get_ip ( in_addr_t addrs[], int asize ) { int MAXINTERFACES=16; int i = 0; ...
- Linux和windows之间通过scp复制文件
Windows是不支持ssh协议的 需要安装WinSSHD 安装以及设置过程如下: BvSshServer(原名winsshd)官方下载页在这里:https://www.bitvise.com/dow ...
- 【Shell脚本】怎样表示一个for循环
[Shell脚本]怎样表示一个for循环 在此说一下我常用的两个结构: 1. for i in $(seq 1 100); do echo $i done 2. for (( i = ...
- Spring+Mybatis多数据源配置
一.配置文件 properties ds1.driverClassName=com.mysql.jdbc.Driver ds1.url=jdbc:mysql://192.168.200.130:330 ...