万里云
路人甲
路人甲
  • 注册日期2005-01-14
  • 发帖数114
  • QQ
  • 铜币414枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1798回复:4

[求助]如何操作含有z值的SDE图层的Feature?

楼主#
更多 发布于:2005-11-15 14:55
<P>在编辑SDE数据的时候,例如移动。如果图层含有z值,更新的时候出现了如下错误:</P>
<P>大家帮忙看看代码哪里有问题?</P>
<P>'更新编辑以后的图形<BR>Private Sub UpDataFeature(pFeature As IFeature, pGeometry As IGeometry, pMap As IMap, pCurrentlayer As IFeatureLayer)<BR>    Dim pDataset As IDataset<BR>    Dim pWorkspaceEdit As IWorkspaceEdit<BR>    Dim pActiveview As IActiveView<BR>    Dim pTopological As ITopologicalOperator<BR>    <BR>On Error GoTo UpdataFeature_err<BR>    Set pDataset = pFeature.Class<BR>    Set pWorkspaceEdit = pDataset.Workspace<BR>    If pWorkspaceEdit.IsBeingEdited Then           <BR>        Dim pZAware  As IZAware<BR>        Set pZAware = pGeometry<BR>        pZAware.DropZs<BR>        pZAware.ZAware = False</P>
<P>        Set pTopological = pGeometry<BR>        pTopological.Simplify<BR>        pWorkspaceEdit.StartEditOperation<BR>        pGeometry.Project pFeature.Shape.SpatialReference<BR>        <FONT color=#f70909>Set pFeature.Shape = pGeometry</FONT></P>
<P><FONT color=#f70909>运行到这里出现错误</FONT></P>
<P><v:shapetype>   <v:shapetype><FONT color=#f73809> 实时错误:The Parameter is the Wrong kind of geometry.</FONT></v:shapetype></v:shapetype><BR>        pFeature.Store<BR>        pWorkspaceEdit.StopEditOperation<BR>        '选中编辑以后的对象<BR>        pMap.SelectFeature pCurrentlayer, pFeature<BR>        Set pActiveview = pMap<BR>        pActiveview.Refresh<BR>    Else<BR>        MsgBox "请开始编辑!", , "UpDataFeature"<BR>    End If<BR>    <BR>    Set pDataset = Nothing<BR>    Set pWorkspaceEdit = Nothing<BR>    Set pActiveview = Nothing<BR>    Set pTopological = Nothing<BR>Exit Sub<BR>UpdataFeature_err:<BR>    MsgBox Err.Description, , "UpDataFeature"<BR>End Sub</P>
喜欢0 评分0
女口果人尔能看日月白这段言舌,那言兑日月人尔白勺目艮目青有严重白勺散光 
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2005-11-16 12:01
<P>检查下你的<FONT color=#f70909>pGeometry</FONT><FONT color=#000000>的获取语句,移动的话你可以看看ILineMovePointFeedback等接口来实现</FONT></P>
<P>  m_pPolylineMvPtFeed定义为 ILineMovePointFeedback,下面代码只是mouseup事件里的,只能参考:)</P>
<P>         Set pPolylineResult = m_pPolylineMvPtFeed.Stop<BR>            ' 作有效性检查<BR>            If Not pPolylineResult Is Nothing Then<BR>                '更新元素<BR>                m_pHitElem.Geometry = pPolylineResult<BR>              <BR>                '获取选中的地物<BR>                Set ff_t_FeatureCursor = GetSelectedFeatures<BR>                If ff_t_FeatureCursor Is Nothing Then Exit Sub<BR>                <BR>                Set ff_t_pFeature = ff_t_FeatureCursor.NextFeature<BR>                <BR>                '得到当前的工作空间<BR>                Set ff_t_WorkspaceEdit = GetWorkspaceEdit<BR>            <BR>                ff_t_WorkspaceEdit.StartEditOperation<BR>                <BR>                Set ff_t_pFeature.Shape = pPolylineResult<BR>                <BR>                ff_t_pFeature.Store<BR>                <BR>                '停止编辑<BR>                ff_t_WorkspaceEdit.StopEditOperation</P>
举报 回复(0) 喜欢(0)     评分
万里云
路人甲
路人甲
  • 注册日期2005-01-14
  • 发帖数114
  • QQ
  • 铜币414枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-11-17 14:13
<P>谢谢总统的指点</P>
<P>我还是有点不太明白:</P>
<P>m_pHitElem.Geometry = pPolylineResult</P>
<P>与Set ff_t_pFeature.Shape = pPolylineResult<BR>为什么需要设置这两步?</P>
<P>m_pHitElem与ff_t_pFeature是否是同一个feature?<BR></P>
女口果人尔能看日月白这段言舌,那言兑日月人尔白勺目艮目青有严重白勺散光 
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
3楼#
发布于:2005-11-17 14:22
<P>'定义选中的元素<BR>Private m_pHitElem As IElement</P>
举报 回复(0) 喜欢(0)     评分
万里云
路人甲
路人甲
  • 注册日期2005-01-14
  • 发帖数114
  • QQ
  • 铜币414枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2005-11-17 14:33
<P>o</P>
<P>我是直接选择的feature,没用到ielement这个接口</P>
<P>3ks</P>
女口果人尔能看日月白这段言舌,那言兑日月人尔白勺目艮目青有严重白勺散光 
举报 回复(0) 喜欢(0)     评分
游客

返回顶部