首页 / 浏览问题 / 组件GIS / 问题详情
面对象的建立
66EXP 2017年09月26日
“先获取面数据集的记录集DatasetVector.GetRecordset,再获取记录集当前记录的几何对象Recordset.GetGeometry”

获取面对象的语句实例能写一下吗?参考参考

1个回答

您好,你的面对象不是存在数据集里面了吗,先获取到这个数据集(假定获取得到的面数据集为DatasetRegion),示范代码如下:

DatasetVector datasetvector=DatasetRegion as DatasetVector;

Recordset recordset=DatasetVector.GetRecordset(false,CursorType.static) ;

GeoRegion region=recordset.GetGeometry() as GeoRegion;
5,985EXP 2017年09月26日

 private void toolStripButton1_Click(object sender, EventArgs e)
        {
            //建立面对象
            //获取数据源中名为 KuanChengqu 的矢量数据集
            DatasetVector datasetregion = m_workspace.Datasources[0].Datasets["KuanChengqu"] as DatasetVector;
            Recordset recordset = DatasetVector.GetRecordset(false, CursorType.Static);
            GeoRegion region = recordset.GetGeometry() as GeoRegion;
            //连接数据库 从数据库去点坐标
            b = Convert.ToInt32(new OracleHelper().ReturnDataReader2("select count(*) from TABLE5"));
            OracleHelper oh = new OracleHelper();
            try
            {

                for (int a = 1; a <= b; a++)
                {
                    double[] bb = oh.ReturnDataReader1("select * from TABLE5 where ID=" + a);
                    x = bb[0];
                    y = bb[1];
                    Point2D point = new Point2D(x, y);
                    GeoPoint m_point = new GeoPoint(point);
                    //调用方法比较点对象是否在面对象内
                   c= Geometrist.CanContain(GeoRegion,Geopoint);
                }              
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
         }

我写了一个按钮,熊数据库里取的点逐一进行比较、看是否点在面内,如果在,就输出“有人” 错误处在红色部分

我加过你们一个名字叫 超图支持中心 的QQ  你要不方便 可以QQ联系
DatasetVector datasetregion = m_workspace.Datasources[0].Datasets["KuanChengqu"] as DatasetVector;
            Recordset recordset = datasetregion.GetRecordset(false, CursorType.Static);
帅哥,你再给我说说如何调用Geometrist.CanContain(GeoRegion,Geopoint)这个函数吗?
功能已经实现,谢谢啦
...