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

    (3)ISurfaceOp.ContourList 根据一系列高程点生成等高线图层:  

           private void button1_Click(object sender, EventArgs e)
            {

                //得到Raster
                ILayer tLayer = this.axMapControl1.get_Layer(0);
                IRasterLayer tRasterLayer = (IRasterLayer)tLayer;
                //定义高程点数组
                double[] tDouble = new double[] { 100, 120, 150, 200 };

                IFeatureClass tFeatureClass = null;
                IGeoDataset tGeodataset = null;
                //使用接口
                ISurfaceOp tSurfaceop = new RasterSurfaceOpClass();
                object obj = tDouble;

                tGeodataset = tSurfaceop.ContourList((IGeoDataset)tRasterLayer.Raster, 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();
                    }
                }
            }

    (4)ISurfaceOp.ContoursAsPolylines根据一系列点生成多根等高线

            //定义点坐标集合
            IPointCollection _PointCollect = new MultipointClass();
            private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)
            {
                //通过鼠标获取点击的点坐标集合
                IPoint tPoint = new PointClass();
                tPoint.X = e.mapX;
                tPoint.Y = e.mapY;
                object obj = Type.Missing;
                _PointCollect.AddPoint(tPoint, ref obj, ref obj);
            }

            private void button1_Click(object sender, EventArgs e)
            {
                //得到Raster
                ILayer tLayer = this.axMapControl1.get_Layer(0);
                IRasterLayer tRasterLayer = (IRasterLayer)tLayer;
               
                ISurfaceOp tSurfaceop = new RasterSurfaceOpClass();
                //定义返回的线集合
                IGeometryCollection tGeometryCollection;
                //定义返回的高程点集合
                IPointCollection tEveColl;
                tSurfaceop.ContoursAsPolylines((IGeoDataset)tRasterLayer.Raster, _PointCollect, out tGeometryCollection, out tEveColl);//tSurfaceop.Contour((IGeoDataset)tRasterLayer.Raster, 10, ref obj);
                if (tGeometryCollection!=null && tGeometryCollection.GeometryCount > 0)
                {
                    //把生成的等高线画到Map上
                    for (int i = 0; i < tGeometryCollection.GeometryCount; i++)
                    {
                        IGeometry tGeometry = tGeometryCollection.get_Geometry(i);
                        ILineElement tLineElement = new LineElementClass();
                        IElement tElement = (IElement)tLineElement;
                        tElement.Geometry = tGeometry;
                        this.axMapControl1.ActiveView.GraphicsContainer.AddElement(tElement, 0);
                    }
                }
                //刷新Map
                this.axMapControl1.Refresh();
            }

  • 相关阅读:
    hdu 3666 差分约束系统
    hdu 1198农田灌溉
    常微分方程(阿諾爾德) Page 45 相空間,相流,運動,相曲線 註記
    高等微積分(高木貞治) 1.4節 例2
    常微分方程(阿諾爾德) Page 45 相空間,相流,運動,相曲線 註記
    解析函數論 Page 29 命題(2) 函數模的有界性
    高等微積分(高木貞治) 1.4節 例2
    解析函數論 Page 29 命題(1) 有界閉集上的一致連續性
    解析函數論 Page 29 命題(3) 模的下界的可達性
    解析函數論 Page 29 命題(2) 函數模的有界性
  • 原文地址:https://www.cnblogs.com/cglNet/p/1970100.html
Copyright © 2011-2022 走看看