private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)
        {
            IPoint pPoint = new PointClass();
            pPoint.PutCoords(e.mapX, e.mapY);
            pFeedBack = new NewEnvelopeFeedbackClass();
            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);
        }
        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)
        {
            ISimpleLineSymbol pSimpleLineSymbol = new SimpleLineSymbolClass();
            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;
            IElement pElement;
            pElement = new RectangleElementClass();
            pElement.Geometry = pGeometry;//同画圆不同,这里直接引用的pGeometry
            IFillShapeElement pFillShapeElement;
            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;
        }

ArcGis实现画矩形(RectangleFeedBack)的更多相关文章

  1. arcgis api for js入门开发系列三地图工具栏(含源代码)

    上一篇实现了demo的地图加载展示,在上篇实现的基础上,新增了地图工具栏以及通用地图控件功能,比如地图框选缩放.地图漫游.清空.量算工具.地图导航控件.地图比例尺控件.地图鹰眼图等等,总共分为5个部分 ...

  2. arcgis api 3.x for js 入门开发系列三地图工具栏(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  3. Arcgis Javascript API 开发笔记

    JS API3.4的要求 à(1)  IE9或以上版本 否则dijit1.8.3不匹配 1.如何发布ArcgisJavascript API应用 0.准备工作: (1).有web应用: (2).有js ...

  4. ArcGIS api for javascript——图形-选择一个范围内的点

    描述 本例展示了如何使用图形显示查询结果,如何使用draw toolbar在地图上选择图形和如何修改图形符号为“高亮”. 在地图上画一个矩形区域,加亮矩形范围内的城市.这个应用统计高亮的城市个数并列出 ...

  5. ArcGIS 10.0紧凑型切片读写方法

    首先介绍一下ArcGIS10.0的缓存机制: 切片方案 切片方案包括缓存的比例级别.切片尺寸和切片原点.这些属性定义缓存边界的存在位置,在某些客户端中叠加缓存时匹配这些属性十分重要.图像格式和抗锯齿等 ...

  6. arcgis api for js入门开发系列八聚合效果(含源代码)

    上一篇实现了demo的图层控制模块,本篇新增聚合效果,截图如下(源代码见文章底部): 聚合效果实现的思路如下: 1.map.html引用聚合包,项目已经包含进来了的聚合文件夹: <script ...

  7. arcgis api for js入门开发系列七图层控制(含源代码)

    上一篇实现了demo的地图分屏对比模块,本篇新增图层控制模块,截图如下(源代码见文章底部): 图层控制模块实现的思路如下: 1.在地图配置文件map.config.js里面配置图层目录树节点信息,作为 ...

  8. arcgis api for js入门开发系列六地图分屏对比(含源代码)

    上一篇实现了demo的地图标绘模块,本篇新增地图地图分屏对比模块,截图如下(源代码见文章底部): 对效果图的简单介绍一下,在demo只采用了两分屏对比,感兴趣的话,可以在两分屏的基础上拓展,修改css ...

  9. arcgis api for js入门开发系列五地图态势标绘(含源代码)

    上一篇实现了demo的地图查询功能,本篇新增地图态势标绘模块,截图如下: 本篇核心的在于调用API的Draw工具:https://developers.arcgis.com/javascript/3/ ...

随机推荐

  1. php if 的实现

    简单分析下php中的分支背后的实现 <?php ){ echo "a"; }else{ echo "b"; } 1.语法分析 unticked_state ...

  2. (转)python学习笔记4--数字类型与操作符

    原文:https://blog.csdn.net/lemonwyc/article/details/37558269 1. 同时赋值(Simultaneous Assignments) python支 ...

  3. 搭建互联网架构学习--006--duboo准备之zk集群部署安装

    dubbo集群部署安装依赖于zookeeper,所以先安装zookeeper集群. 1.准备三台机器做集群 2.配置 配置java环境  ,2,修改操作系统的/etc/hosts文件,添加IP与主机名 ...

  4. 如何使用Android Studio提高App质量

    Android Studio作为现在谷歌主推的Android开发功能,除了提供了大量的功能帮助快速开发Android代码之外,在代码质量控制方面也提供了很多工具,这些工具都放在Analyze菜单下, ...

  5. C#中null值属于什么变量类型

    今天学习发现有段代码的输出结果有些理解不了,如图1,输出的结果全部为 false: 图1 后来和同事讨论研究了一下才明白,原来是这样:↓ class Program { static void Mai ...

  6. wordcloud+jieba

    Wordcloud各参数含义 font_path : string #字体路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path = '黑体.ttf' width : int (de ...

  7. 4-nginx-反向代理到tomcat及负载均衡

    反向代理相比于正向代理, 比如使用搬瓦工时, 就是位于客户端的正想代理, 而反向代理则是服务器端的代理, 主要用于实现请求分发, 负载均衡等功能 正向代理推荐一个: 搬瓦工, 比较好用.. 反向代理主 ...

  8. layer相关使用

    父子页面传参数 转自:https://blog.csdn.net/babyxue/article/details/76854106 1.父页面打开子页面并向子页面传参数 function setCho ...

  9. mybatis 小结

    1.  根据后台list 在SQL中使用到In的时候 <if test="sbidList != null and sbidList.size() > 0"> A ...

  10. TFS Negotiate方式登录的IIS配置

    使用vsts-agent连接到tfs(tfs2017)配置代理客户端,可以通过PAT.Negotiate.Integrated.Alternate四种方式登录.(参考) 默认情况下,采用Negotia ...