首页 / 浏览问题 / 组件GIS / 问题详情
批量增加点对象地图崩溃了
25EXP 2018年05月31日
使用产品:SMO_DotNET_712 操作系统:win10 x64
数据类型:  文件型
问题详细描述:

我有一批点对象,想要加到一个数据集中去,当前的数量是1358个,主要代码如下:

lsfgdDatasetVector = lsfgdLayer as DatasetVector;
            Recordset lsfgdRecordset = lsfgdDatasetVector.GetRecordset(true, CursorType.Dynamic);
            Recordset.BatchEditor editor = lsfgdRecordset.Batch;
            editor.MaxRecordCount = 900;
            editor.Begin();
            try
            {
                foreach (DataRow dr in resultDt.Rows)
                {
                    GeoPoint geoPoint = new GeoPoint(DbObjectConverter.ToDouble(dr["JD"]), DbObjectConverter.ToDouble(dr["WD"]));
                    Dictionary<String, Object> dicValues = new Dictionary<String, Object>(StringComparer.OrdinalIgnoreCase);
                    dicValues.Add("GYDWDM", DbObjectConverter.ToString(dr["GYDWDM"]));
                    dicValues.Add("LXBM", DbObjectConverter.ToString(dr["LXBM"]));
                    dicValues.Add("WZZH", DbObjectConverter.ToDouble(dr["WZZH"]));
                    lsfgdRecordset.AddNew(geoPoint, dicValues);
       
                }
            }
            catch (Exception ex)
            {
                editor.Cancel();
                throw ex;
            }
            finally
            {
                editor.Update();
                lsfgdRecordset.Close();
                lsfgdRecordset.Dispose();
            }

当我将每次批量更新的数量设置为500,或者50等比较少的数字的时候,

我的地图就崩溃了,

其它别的一个图层的数据就坏了。

但是我肯定是没有打开那个图层进行修改的。

如果设置比较大的数值。比如1000,900的,就没有事,执行多少次都不会出问题。准确的说是818条就没有问题,817条就一定会崩溃。

1个回答

我们测试一下看能否重现。
3,352EXP 2018年05月31日
...