中国地图
GIS探索者
地图网
GIS论坛
网站首页| GIS论坛 |新闻动态 | 技术专栏 | GIS书籍 | 资源下载 | 求职招聘 | 研究生考试 | GIS博客 | GIS空间站
欢迎光临GIS空间站!   网站地图
  专栏导航:| ArcGIS | MapInfo | TopMap | 地理信息 | 遥感 | GPS | 测绘 | WebGIS | LBS | 前沿 | 数据库 | 开发 | 行业应用
  推荐栏目:| AO开发 | 业界动态 | GIS资源 | 招聘信息 | 求职简历 | 共享软件 | 电子书籍 | 研究生考题 | 电子期刊 | GIS论文
您现在的位置: GIS空间站 >> 技术专栏 >> ArcGIS >> 文章正文

在MO中向图层添加记录的性能提高

作者:zdq    文章来源:GIS空间站 httpzdq.gissky.net    点击数:    更新时间:2006-7-1
TopMap活动

经常看到有朋友说, MO添加记录咋那么慢呢,其实MO里面有一个参数的设置,能对添加记录的性能有很大的影响。这个参数就是Recordset对象的AutoFlush属性,先看看MO帮助中的描述把:

The property only applies to Recordsets of MapLayers based on shapefiles. Setting AutoFlush to False will result in performance improvements for "batch" type operations such as creating new shapefiles. For updates to be reliably seen as they occur, AutoFlush should be set to True. Setting AutoFlush to True will flush the file, as will StopEditing or releasing the Recordset object.

然后用下面的代码测试一下效果:

  Dim dc As New DataConnection, lyr As New MapLayer, tb As New TableDesc, rs As Recordset
  Dim W As Double, H As Double, pt As New Point, t As Date
  dc.Database = "E:\"
  If Not dc.Connect Then Exit Sub
  Set lyr.GeoDataset = dc.AddGeoDataset("TestSpeed", moShapeTypePoint, tb)
  If Not lyr.Valid Then Exit Sub
  Map1.Layers.Add lyr
  Set rs = lyr.Records
  Randomize
  H = Map1.Extent.Height
  W = Map1.Extent.Width
  '关键代码行, 注释后添加的效率就会非常低
  rs.AutoFlush = False
  t = Now
  For i = 1 To 1000
    pt.Set Rnd * W, Rnd * H
    rs.AddNew
    rs.Fields("Shape").Value = pt
    rs.Update
    Text1.Text = "当前位置:" & i
    DoEvents
  Next
  rs.StopEditing
  Map1.Refresh
  Text2.Text = "总计耗时(秒): " & DateDiff("s", t, Now)

就会发现添加1000条记录的时候,如果autoflush为false,那么不到1秒就可以完成,否则需要80秒左右。如果添加1000条记录,效果就更加明显了。

看来在成批添加数据的时候,还是考虑一下这个东东吧。

文章录入:gissky    责任编辑:gissky  发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
■■相 关 图 书:
■■相 关 文 章:
  • ArcGIS以工作流的方式处理GIS到CAD格式的数据转换

  • ArcGIS 9.2中时态GIS的应用

  • 易康-eCogntion最新版本培训资料

  • eCognition软件如何提取建筑物

  • 基于面向对象分类与基于像素分类对比

  • eCognition 在生态遥感监测中的应用

  • ArcGIS Server9.3用户新体验

  • 上一篇文章:

  • 下一篇文章:
  •  
    GIS博客精华
    热点文章
    热门资源
     
    关于我们 | 联系我们 | 广告服务 | 友情链接 | 申请链接 | 合作联盟 | 诚聘英才
      GIS空间站(GISSky.Net)版权所有 站长:兔八哥