首页 / 浏览问题 / 组件GIS / 问题详情
建立缓冲区程序报错
4EXP 2020年12月11日

使用产品:iobjects 10i
数据类型: 建立缓冲区程序报错
问题详细描述:按照示例代码建立缓冲区时,在执行建立缓冲区步骤时报错。
代码如下: //设置缓冲区
                DatasetVector aa = m_datasource.Datasets["权界限"] as DatasetVector;
                GetConvertPrjCoordSysSHP(aa);
                if (m_datasource.Datasets.Contains("权界限缓冲区"))
                {
                    m_datasource.Datasets.Delete("权界限缓冲区");
                }
                DatasetVectorInfo m_DatasetVectorInfo = new DatasetVectorInfo();
                m_DatasetVectorInfo.Type = DatasetType.Region;
                m_DatasetVectorInfo.Name = "权界限缓冲区";
                DatasetVector m_buffer = m_datasource.Datasets.Create(m_DatasetVectorInfo);
                GetConvertPrjCoordSysSHP(m_buffer);
                BufferAnalystParameter m_BufferAnalystParameter = new BufferAnalystParameter();
                m_BufferAnalystParameter.RadiusUnit = BufferRadiusUnit.Meter;
                m_BufferAnalystParameter.EndType = BufferEndType.Round;
                m_BufferAnalystParameter.LeftDistance = 30.0;   //30米缓冲区
                BufferAnalyst.CreateBuffer(aa, m_buffer, m_BufferAnalystParameter, true, true);(报错行)

报错:

“System.AccessViolationException”类型的未经处理的异常在 SuperMap.Analyst.SpatialAnalyst.dll 中发生 

其他信息: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

1个回答

打个断点跟踪看一下aa,和m_buffer两个数据集是否有空或者什么其他异常
4,620EXP 2020年12月14日
这个错误有时候有,有时候又没有,是一个大功能里的错误,但都是报内存错误
...