第一范文网 - 专业文章范例文档资料分享平台

ArcEngine 测量 docx

来源:用户分享 时间:2025/6/4 13:53:34 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

/// Occurs when this tool is created ///

/// public override void OnCreate(object hook) { try {

m_hookHelper = new HookHelperClass(); m_hookHelper.Hook = hook;

if (m_hookHelper.ActiveView == null) {

m_hookHelper = null; } } catch {

m_hookHelper = null; }

if (m_hookHelper == null) base.m_enabled = false; else

base.m_enabled = true;

// TODO: Add other initialization code }

void Init() {

//初始化

m_Elements = new GroupElementClass(); m_TraceElement = new GroupElementClass();

m_VertexElement = new GroupElementClass(); m_LabelElement = new GroupElementClass();

//初始化,并添加到GraphicsContainer

IGraphicsContainer g = m_hookHelper.ActiveView as IGraphicsContainer;

g.AddElement(m_Elements as IElement, 0); g.AddElement(m_TraceElement as IElement, 0); g.AddElement(m_VertexElement as IElement, 0); g.AddElement(m_LabelElement as IElement, 0);

//添加到m_Elements中

g.MoveElementToGroup(m_VertexElement as IElement, m_Elements);

g.MoveElementToGroup(m_LabelElement as IElement, m_Elements);

g.MoveElementToGroup(m_TraceElement as IElement, m_Elements); }

///

/// Occurs when this tool is clicked ///

public override void OnClick() {

Init(); }

void msgInfo_FromClosing(object sender, FormClosingEventArgs e) {

DeleteAllElements(); _MsgInfo = null;

//throw new Exception(\lemented.\ }

public override void OnMouseDown(int Button, int Shift, int X, int Y) {

if (Button == 2) return;

IPoint pt = m_hookHelper.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);

IGraphicsContainer g = m_hookHelper.ActiveView.GraphicsContainer;

IEnvelope pEnvBounds = null;

//获取上一次轨迹线的范围,以便确定刷新范围 try {

if (m_TraceLine != null) {

m_TraceLine.QueryEnvelope(pEnvBounds);

pEnvBounds.Expand(4, 4, true); //矩形框向四周扩大4倍(大于2倍就行),目的是为了保证有充足的刷新区域 } else

pEnvBounds = m_hookHelper.ActiveView.Extent; } catch {

pEnvBounds = m_hookHelper.ActiveView.Extent; }

#region 启动画线

if (m_NewLineFeedback == null) {

//移除element RemoveElements(); //刷新

m_hookHelper.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null); Application.DoEvents();

m_NewLineFeedback = new NewLineFeedbackClass(); m_NewLineFeedback.Display = m_hookHelper.ActiveView.ScreenDisplay;

//必须先得到symbol,后设置symbol

ISimpleLineSymbol simpleLineSymbol = m_NewLineFeedback.Symbol as ISimpleLineSymbol;

simpleLineSymbol.Style = esriSimpleLineStyle.esriSLSDot;

simpleLineSymbol.Width = 1;

simpleLineSymbol.Color = TransColorToAEColor(Color.Blue);

m_NewLineFeedback.Start(pt); } else {

m_NewLineFeedback.AddPoint(pt); }

if (m_ptColl == null) {

搜索更多关于: ArcEngine 测量 docx 的文档
ArcEngine 测量 docx.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c67xbo6wf2025ui718i2q_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top