ArcGis实现画矩形(RectangleFeedBack)
private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)
{
IPoint pPoint = new PointClass();
pPoint.PutCoords(e.mapX, e.mapY);
{
IPoint pPoint = new PointClass();
pPoint.PutCoords(e.mapX, e.mapY);
pFeedBack = new NewEnvelopeFeedbackClass();
pFeedBack.Display = axMapControl1.ActiveView.ScreenDisplay;
pFeedBack.Start(pPoint);
}
pFeedBack.Display = axMapControl1.ActiveView.ScreenDisplay;
pFeedBack.Start(pPoint);
}
private void axMapControl1_OnMouseMove(object sender, IMapControlEvents2_OnMouseMoveEvent e)
{
IPoint pPoint = new PointClass();
pPoint.PutCoords(e.mapX, e.mapY);
pFeedBack.MoveTo(pPoint);
}
{
IPoint pPoint = new PointClass();
pPoint.PutCoords(e.mapX, e.mapY);
pFeedBack.MoveTo(pPoint);
}
private void axMapControl1_OnMouseUp(object sender, IMapControlEvents2_OnMouseUpEvent e)
{
IGeometry pGeometry;
pGeometry = pFeedBack.Stop();
pFeedBack = null;
IActiveView pActiveView = axMapControl1.ActiveView;
AddRectangle(pGeometry, pActiveView);
}
private void AddRectangle(IGeometry pGeometry, IActiveView pActiveView)
{
{
IGeometry pGeometry;
pGeometry = pFeedBack.Stop();
pFeedBack = null;
IActiveView pActiveView = axMapControl1.ActiveView;
AddRectangle(pGeometry, pActiveView);
}
private void AddRectangle(IGeometry pGeometry, IActiveView pActiveView)
{
ISimpleLineSymbol pSimpleLineSymbol = new SimpleLineSymbolClass();
pSimpleLineSymbol.Color = GetRGBColor(255, 215, 0);
pSimpleLineSymbol.Style = esriSimpleLineStyle.esriSLSDash;
pSimpleLineSymbol.Width = 2;
pSimpleLineSymbol.Color = GetRGBColor(255, 215, 0);
pSimpleLineSymbol.Style = esriSimpleLineStyle.esriSLSDash;
pSimpleLineSymbol.Width = 2;
ISimpleFillSymbol pSimpleFillSymbol = new SimpleFillSymbolClass();
pSimpleFillSymbol.Color = GetRGBColor(0, 80, 30);
pSimpleFillSymbol.Outline = pSimpleLineSymbol;
pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSSolid;
pSimpleFillSymbol.Color = GetRGBColor(0, 80, 30);
pSimpleFillSymbol.Outline = pSimpleLineSymbol;
pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSSolid;
IElement pElement;
pElement = new RectangleElementClass();
pElement.Geometry = pGeometry;//同画圆不同,这里直接引用的pGeometry
pElement = new RectangleElementClass();
pElement.Geometry = pGeometry;//同画圆不同,这里直接引用的pGeometry
IFillShapeElement pFillShapeElement;
pFillShapeElement = pElement as IFillShapeElement;
pFillShapeElement.Symbol = pSimpleFillSymbol;
pFillShapeElement = pElement as IFillShapeElement;
pFillShapeElement.Symbol = pSimpleFillSymbol;
IGraphicsContainer pGraphicsContainer = axMapControl1.ActiveView as IGraphicsContainer;
pGraphicsContainer.AddElement((IElement)pFillShapeElement, 0);
axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
}
private IRgbColor GetRGBColor(int red, int green, int blue)
{
IRgbColor rGBColor = new RgbColorClass();
rGBColor.Red = red;
rGBColor.Green = green;
rGBColor.Blue = blue;
return rGBColor;
}
pGraphicsContainer.AddElement((IElement)pFillShapeElement, 0);
axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
}
private IRgbColor GetRGBColor(int red, int green, int blue)
{
IRgbColor rGBColor = new RgbColorClass();
rGBColor.Red = red;
rGBColor.Green = green;
rGBColor.Blue = blue;
return rGBColor;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2012-09-18 公共卫生研究院派员参加“GIS数据处理与建模”高级培训班