AE 
By  yumao  2007-7-17 20:52:00   

Dim pPoint1 As IPoint
        Dim pPoint2 As IPoint
        Dim pEnv As IEnvelope
        pPoint1 = New Point
        pPoint2 = New Point
        pMap = AxMapControl1.Map
        pActiveView = pMap
        pEnv = New Envelope
        pEnv = pActiveView.Extent.Envelope
        pPoint1.PutCoords(635359.486, 3089969.118)  'һͼϽǵ
        pPoint2.PutCoords(635359.486, 3089599.435)  'һͼ½ǵ
        'õһͼϽ½ǵһֱߣȻɻ
        Dim pPolyline As IGeometryCollection
        pPolyline = New Polyline
        Dim pPath As ISegmentCollection
        pPath = New ESRI.ArcGIS.Geometry.Path
        Dim pLine As ILine
        pLine = New Line
        pLine.PutCoords(pPoint1, pPoint2)
        pPath.AddSegment(pLine)
        pPolyline.AddGeometry(pPath)
        '´ǽɫ
        Dim pFillSym As ISimpleFillSymbol
        pFillSym = New SimpleFillSymbol
        Dim pColor As IRgbColor
        pColor = New RgbColor
        pColor.Red = 0
        pColor.Green = 255
        pColor.Blue = 0
        pFillSym.Color = pColor
        'pFillSym.Outline = 2
        pFillSym.Style = esriSimpleFillStyle.esriSFSSolid
        pScrD = pActiveView.ScreenDisplay
        '
        Dim pGeometry As IGeometry
        pGeometry = pPolyline
        Dim length As Double
        Dim pTopo As ITopologicalOperator
        pTopo = pGeometry
        Dim pBuffer As IGeometry
        length = ConvertPixelsTomapUnits(pMap, 4)
        pBuffer = pTopo.Buffer(length)
        pGeometry = pBuffer.Envelope
        'ʾ
        With pScrD
            .StartDrawing(pScrD.hDC, 1)
            .SetSymbol(pFillSym)
            .DrawPolygon(pBuffer)
            .FinishDrawing()
        End With
        'һͼûѯҳûཻĵȸ
        Dim pSFilter As ISpatialFilter
        Dim pQFilter As IQueryFilter
        pSFilter = New SpatialFilter
        pQFilter = New QueryFilter
        pSFilter.Geometry = pGeometry
        pFeatureLyr1 = pMap.Layer(0)  'һȸͼ
        pFeatureCls = pFeatureLyr1.FeatureClass
        Select Case pFeatureCls.ShapeType
            Case esriGeometryType.esriGeometryPolyline
                pSFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelCrosses
            Case esriGeometryType.esriGeometryPolygon
                pSFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects
        End Select
        pSFilter.GeometryField = pFeatureCls.ShapeFieldName
        pQFilter = pSFilter
        Dim pACursor As IFeatureCursor
        Dim pBCursor As IFeatureCursor
        pACursor = pFeatureLyr1.Search(pQFilter, False)
        Dim pFeature As IFeature

        'pFeatureCls = Nothing
        'pFeatureCursor = Nothing
        'pFeature = Nothing
        pFeatureLyr2 = pMap.Layer(1)  'ڶȸͼڵһͼұ
        pFeatureCls = pFeatureLyr2.FeatureClass
        Select Case pFeatureCls.ShapeType
            Case esriGeometryType.esriGeometryPolyline
                pSFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelCrosses
            Case esriGeometryType.esriGeometryPolygon
                pSFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects
        End Select
        pSFilter.GeometryField = pFeatureCls.ShapeFieldName
        pQFilter = pSFilter
        pBCursor = pFeatureLyr2.Search(pQFilter, False)
        pMap.ClearSelection()
        pFeature = pBCursor.NextFeature
        While Not pFeature Is Nothing
            pMap.SelectFeature(pFeatureLyr2, pFeature)
            pFeature = pBCursor.NextFeature
        End While
 
 
