zoukankan      html  css  js  c++  java
  • ISurfaceOp 接口生成等高线(一)

    (1)ISurfaceOp.Contour 根据DEM生成等高线图层:

           private void button1_Click(object sender, EventArgs e)
            {
                //得到Raster
                ILayer tLayer=this.axMapControl1.get_Layer(0);
                IRasterLayer tRasterLayer=(IRasterLayer)tLayer;

                IFeatureClass tFeatureClass=null;
                IGeoDataset tGeodataset=null;
                //使用接口 参数(Raster,等高线间距,基值)
                ISurfaceOp tSurfaceop = new RasterSurfaceOpClass();
                object obj = 0;
                tGeodataset=tSurfaceop.Contour((IGeoDataset)tRasterLayer.Raster, 10, ref obj);
                //判断是否生成等高线层,如果生成,加载到Map中
                if (tGeodataset != null)
                {
                    tFeatureClass = (IFeatureClass)tGeodataset;
                    if (tFeatureClass != null)
                    {
                        IFeatureLayer tFeatureLayer = new FeatureLayerClass();
                        tFeatureLayer.FeatureClass = tFeatureClass;
                        this.axMapControl1.AddLayer((ILayer)tFeatureLayer);
                        this.axMapControl1.Refresh();
                    }
                }
            }

    (2) ISurfaceOp.ContourAsPolyline 根据已知点,返回穿过改点的等高线和改点的高程

           private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)
            {
                //通过鼠标获取点击的点坐标
                IPoint tPoint = new PointClass();
                tPoint.X = e.mapX;
                tPoint.Y = e.mapY;
                //得到Raster
                ILayer tLayer = this.axMapControl1.get_Layer(0);
                IRasterLayer tRasterLayer = (IRasterLayer)tLayer;
               

                ISurfaceOp tSurfaceop = new RasterSurfaceOpClass();

                //定义返回的线
                IPolyline tPolygline = new PolylineClass();
                //定义返回的高程点
                double tEve = 0;
                tSurfaceop.ContourAsPolyline((IGeoDataset)tRasterLayer.Raster, tPoint, out tPolygline, out tEve);//tSurfaceop.Contour((IGeoDataset)tRasterLayer.Raster, 10, ref obj);

                //把生成的等高线画到Map上
                ILineElement tLineElement = new LineElementClass();
                IElement tElement = (IElement)tLineElement;
                tElement.Geometry = tPolygline;
                this.axMapControl1.ActiveView.GraphicsContainer.AddElement(tElement, 0);
                //刷新Map
                this.axMapControl1.Refresh();
            }

  • 相关阅读:
    Ext.Net学习笔记02:Ext.Net用法概览
    Ext.Net学习笔记01:在ASP.NET WebForm中使用Ext.Net
    【转】好的用户界面-界面设计的一些技巧
    发布mvc报错:403.14-Forbidden Web 服务器被配置为不列出此目录的内容
    抢票季:吐槽12306 & 分享抢票经验
    2.5星|《解谜茑屋》:疑似企业公关稿,对话体,信息含量较低
    樊登推荐过的书15本,好书2本半
    一些黑猩猩会使用草药治病,疗效还不错:3.5星|邓巴《人类的算法》
    莫奈塞尚的知名度,主要归功于富豪画家卡耶博特的遗赠:4星|《引爆流行》
    4星|《猎药师》:五千年以来药物研发简史,作者是前一线科学家
  • 原文地址:https://www.cnblogs.com/cglNet/p/1970061.html
Copyright © 2011-2022 走看看