阅读:1106回复:0
vb+ae:请教属性信息显示问题
<P>Set pCursor = FindFeatures(pPt, p_SelectLayer, g_Map)<BR> MsgBox ("l")<BR> If Not pCursor Is Nothing Then Set pfeat = pCursor.NextFeature<BR> MsgBox ("s")<BR> <FONT color=#ee1169> If Not pfeat Is Nothing Then</FONT><BR> MsgBox ("d")<BR> With frmAttributes<BR> .List1.Clear<BR> .List1.AddItem "层名 : " ; p_SelectLayer.Name<BR> For i = 0 To pfeat.Fields.FieldCount - 1<BR> If pfeat.Fields.Field(i).Type <> esriFieldTypeGeometry And pfeat.Fields.Field(i).Type <> esriFieldTypeBlob Then<BR> .List1.AddItem pfeat.Fields.Field(i).Name ; " : " ; pfeat.value(i)<BR> End If<BR> Next<BR> .Show vbModal, Me<BR> End With<BR> End If</P>
<P>Public Function FindFeatures(pGeometry As IGeometry, pfl As IFeatureLayer, pMap As IMap, Optional seltype As esriSpatialRelEnum, Optional snap As Boolean = True) As IFeatureCursor<BR> Dim pSpatialFilter As ISpatialFilter<BR> Dim pFeatureCursor As IFeatureCursor<BR> Dim pOperater As ITopologicalOperator<BR> Dim pGeom As IGeometry<BR> Dim pFeatureClass As IFeatureClass<BR> Set pFeatureClass = pfl.FeatureClass<BR> On Error GoTo ErrorHandler<BR> If pGeometry.GeometryType = esriGeometryPoint Or pGeometry.GeometryType = esriGeometryPolyline Then<BR> Set pOperater = pGeometry<BR> Set pGeom = pOperater.Buffer(1)<BR> <BR> Else<BR> Set pGeom = pGeometry<BR> End If<BR> Set pSpatialFilter = New SpatialFilter<BR> Set pSpatialFilter.Geometry = pGeom<BR> Set pSpatialFilter.OutputSpatialReference(pFeatureClass.ShapeFieldName) = pMap.SpatialReference<BR> pSpatialFilter.GeometryField = pFeatureClass.ShapeFieldName<BR> pSpatialFilter.SpatialRel = esriSpatialRelIntersects<BR> If seltype <> 0 Then pSpatialFilter.SpatialRel = seltype</P> <P><BR> Set pFeatureCursor = pfl.Search(pSpatialFilter, False)<BR> If Not pFeatureCursor Is Nothing Then<BR> Set FindFeatures = pFeatureCursor<BR> End If<BR> Exit Function</P> <P><BR> 求教各位:</P> <P>代码执行到红色部分就执行不下去了,我想可能是pfeat 的缘故,不知错在哪里?愿指教.</P> |
|