阅读:1660回复:2
[求助]FeatureClass更新的速度问题?
<P>现在需要对featureclass中的记录中某个字段进行更改,比如说乘上1000。但是处理16000条feature,在我的p43。0 1G上需要用40秒,不能满足用户需要,请问大家有没有什么什么好的建议,可以提高速度?</P>
<P>现在我的代码:</P> <P>IFeatureCursor cursor = pOutFClass.IFeatureClass_update(null, false);<BR>IFeature feature = cursor.nextFeature();<BR>while (feature != null) {</P> <P><BR>//GCIdx是要修改的字段的index<BR>d = Double.parseDouble(feature.getValue(GCIdx).toString())/100000;<BR>feature.setValue(scoreIdx, value);<BR>cursor.updateFeature(feature);<BR>feature = cursor.nextFeature();</P> <P> }</P> |
|
|
1楼#
发布于:2006-05-18 20:57
楼上的是插入的例子嘛,ifeaturebuffer怎么用来做更新?请GIS明示~^_^~
|
|
|
2楼#
发布于:2006-05-18 20:06
<P>使用ifeaturebuffer接口来更新,可以加快更新数据速度</P>
<P>帮助例子如下</P> <H1>IFeatureBuffer Example</H1><CODE><PRE>Public Sub FeatureBufferCode() Dim pWorFact As IWorkspaceFactory Dim pWor As IWorkspace Dim pFeatWor As IFeatureWorkspace Dim pWorEdit As IWorkspaceEdit Dim pFC As IFeatureClass Dim pFeatureBuffer As IFeatureBuffer Dim pFeatureCursor As IFeatureCursor Dim pFeature As IFeature Dim pPolyline As IPolyline Dim pt As IPoint Dim q As Long, i As Long Set pWorFact = New AccessWorkspaceFactory Set pWor = pWorFact.OpenFromFile("D:\Testing\Data\GDB1.mdb", 0) Set pFeatWor = pWor Set pWorEdit = pWor Set pFC = pFeatWor.OpenFeatureClass("casing") pWorEdit.StartEditing True pWorEdit.StartEditOperation Set pFeatureBuffer = pFC.CreateFeatureBuffer Set pFeatureCursor = pFC.Insert(True) Set pFeature = pFeatureBuffer Set pPolyline = New Polyline 'Create 100 features using FeatureBuffer and insert into a feature cursor For i = 0 To 99 'Create the polyline geometry to assign to the new feature Set pt = New Point pt.X = 2213300 + i pt.Y = 396500 + i pPolyline.FromPoint = pt Set pt = New Point pt.X = 2213300 + i pt.Y = 396500 + i pPolyline.ToPoint = pt 'Set the feature's shape Set pFeature.Shape = pPolyline 'Insert the feature into the feature cursor q = pFeatureCursor.InsertFeature(pFeatureBuffer) Next i 'Flush the feature cursor to the database pFeatureCursor.Flush pWorEdit.StopEditOperation pWorEdit.StopEditing True End Sub</PRE></CODE> |
|
|