Customer Service | Training | Contact Us
You are here: Home > User Forums > arcgis desktop discussion forums > Thread Replies

ArcGIS Desktop Discussion Forums

ArcGIS Desktop - ArcObjects Visual Basic for Application (VBA) forum

create layer from buffer polygon   Kiran Kumar Batchu Mar 28, 2003
Re: create layer from buffer polygon   kyle martin Mar 28, 2003
Re: create layer from buffer polygon   Kiran Kumar Batchu Mar 28, 2003
Report Inappropriate Content • Top • Print • Reply    
Subject create layer from buffer polygon 
Author Kiran Kumar Batchu 
Date Mar 28, 2003 
Message Hello,

I am trying to create a buffer polygon around a polygon feature in one layer and then use this buffer to select points in another layer which fall within this buffer polygon. I could create a graphic of the buffer polygon but need to convert this buffer polygon into a layer. How do i convert a buffer polygon that is a graphic to a feature layer? Can anyone help me with some code or references?

Thanks
kiran 
   
Report Inappropriate Content • Top • Print • Reply    
Subject Re: create layer from buffer polygon 
Author kyle martin 
Date Mar 28, 2003 
Message The following VBA sample will use the selected polygon feature in the first layer to buffer its polygon. It then selects the points in the second layer that is within the buffered polygon. Hope this helps

Kyle Martin
mosaicsgis
www.mosaicsgis.com 
 
Public Sub SelectFeaturesfromPolyBuffer()
    Dim pMxDoc As IMxDocument
    Set pMxDoc = ThisDocument
    
    Dim pFFromLayer As IFeatureLayer, pFToLayer As IFeatureLayer
    
    If pMxDoc.FocusMap.LayerCount < 2 Then Exit Sub 'must be at least two layers
    
    'first two must be feature layers
    If Not TypeOf pMxDoc.FocusMap.Layer(0) Is IFeatureLayer Then Exit Sub
    If Not TypeOf pMxDoc.FocusMap.Layer(1) Is IFeatureLayer Then Exit Sub
    
    Set pFFromLayer = pMxDoc.FocusMap.Layer(0)
    Set pFToLayer = pMxDoc.FocusMap.Layer(1)
    
    If pFFromLayer.FeatureClass.ShapeType <> esriGeometryPolygon Then Exit Sub 'must be polys
    If pFToLayer.FeatureClass.ShapeType <> esriGeometryPoint Then Exit Sub 'must be points
    
    Dim pFSel As IFeatureSelection
    Set pFSel = pFFromLayer
    
    If pFSel.SelectionSet.Count = 0 Then Exit Sub 'get a selected polygon
    
    Dim pFCur As IFeatureCursor
    pFSel.SelectionSet.Search Nothing, True, pFCur
    Dim pFeature As IFeature
    Set pFeature = pFCur.NextFeature
    If pFeature Is Nothing Then Exit Sub
    
    Dim pPolygon As IPolygon
    Set pPolygon = pFeature.ShapeCopy
    
    Dim pTopo As ITopologicalOperator
    Set pTopo = pPolygon
    
    Dim pBufPoly As IPolygon
    Set pBufPoly = pTopo.Buffer(20)  'set this to your buffer distance
    
    Dim pFilter As ISpatialFilter
    Set pFilter = New SpatialFilter
    
    pFilter.SpatialRel = esriSpatialRelContains
    Set pFilter.Geometry = pBufPoly
    
    'now select those features in the to layer that are completely within
    'the buffer polygon
    
    Set pFSel = pFToLayer
    
    pFSel.SelectFeatures pFilter, esriSelectionResultNew, False
    
    pMxDoc.ActiveView.Refresh
    
End Sub
 
   
Report Inappropriate Content • Top • Print • Reply    
Subject Re: create layer from buffer polygon 
Author Kiran Kumar Batchu 
Date Mar 28, 2003 
Message Thanks Kyle,

Thats what I was looking for. I really appreciate it.

Kiran