首页 / 浏览问题 / 组件GIS / 问题详情
Objects .NET创建缓冲区问题
10EXP 2022年12月27日
使用.net 10i进行开发时,用到了BufferAnalyst类创建缓冲区,但在运行时报错未将对象引用设置到对象的实例,但是BufferAnalyst不是静态类吗,无法实例化呀。

代码如下:

        private void menuCreateBuffer_Click(object sender, EventArgs e)
        {
            Datasources datasources = workspace1.Datasources;
            Datasource datasource = datasources[0];
            Datasets datasets = datasource.Datasets;
            Dataset dataset = datasets["waterways"];
            DatasetVector sourceDataset = dataset as DatasetVector;
            DatasetVector resultDataset = null;

            BufferAnalystParameter bufferAnalystParam = new BufferAnalystParameter();
            bufferAnalystParam.EndType = BufferEndType.Flat;
            bufferAnalystParam.LeftDistance = 50;
            bufferAnalystParam.RightDistance = 50;
            BufferAnalyst.CreateBuffer(sourceDataset, resultDataset, bufferAnalystParam, false, true);
            mapControl1.Map.Layers.Add(resultDataset, true);
        }

1个回答

您好,根据您截图的代码可以看到,您传入的用于存储结果的数据集为null,所以会抛“ 未将对象引用设置到对象的实例 ”。建议您在使用 iObjects .NET 组件接口的时候可以仔细阅读一下接口的使用说明,像 BufferAnalyst.CreateBuffer 接口有明确的说传入的 resultDataset 需要已经实例化的对象。

希望可以帮到您。

2,253EXP 2022年12月27日
谢谢谢谢
...