首页 / 浏览问题 / 组件GIS / 问题详情
在iobject.net下进行水文分析出现未将对象引用到实例
15EXP 2021年04月27日

仿照的是示例程序中的水文分析,其中将

private void Initialize()
        {
            try
            {
                WorkspaceConnectionInfo info = new WorkspaceConnectionInfo(@"..\..\SampleData\SurfaceAnalyst\SurfaceAnalyst.smwu");
                info.Type = WorkspaceType.SMWU;
                m_workspace.Open(info);
                m_datasource = m_workspace.Datasources["SurfaceAnalyst"];
                // 添加DEM栅格数据到当前地图上
                // Add DEM to the map
                AddDEM();
                m_mapControl.MouseMove += new MouseEventHandler(m_mapControl_MouseMove);
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message);
            }
        }

与这段代码中的打开程序直接打开工作空间不同

我自己的方式是添加DEM变为自己通过添加工作空间,双击数据集添加到地图中的方式打开DEM数据,使用的也是示例数据集

1个回答

您好,根据您截图的报错信息,您的m_datasource为空值,

您可以调试代码,看看是您的数据源为何为空。

该步m_datasource = m_workspace.Datasources["SurfaceAnalyst"];,

通过工作空间open时返回值,判断上一步工作空间是否打开失败?该步代码数据源名称错误?m_datasource变量此步赋值成功,但未传到您FillSink方法中?对该数据源的IsOpened属性判断数据源是否打开成功?(失败一般是因为被其他线程占用)等等。

调试出您数据源m_datasource为空的原因。

希望可以帮助到您!。
于丁
1
10,758EXP 2021年04月27日
...