<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Need efficient means to find overlapping features ObjectID's in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/need-efficient-means-to-find-overlapping-features/m-p/397057#M10600</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;I think you want to implement ISpatialFilter and set the .SpatialRel to esriSpatialRelIntersects&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://resources.esri.com/help/9.3/arcgisserver/apis/arcobjects/esrigeodatabase/ispatialfilter.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;http://resources.esri.com/help/9.3/arcgisserver/apis/arcobjects/esrigeodatabase/ispatialfilter.htm&lt;/A&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You're correct.&amp;nbsp; I tried it, it's awesome.&amp;nbsp; Here's the meat of the code i used...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt; 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim parcelFeat_ As IFeature = Nothing
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parcelFeat_ = ParcelLayer.esriIFeatureLayer.FeatureClass.GetFeature(239319)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim spatialFilter_ As ISpatialFilter = New SpatialFilter
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; With spatialFilter_
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .SpatialRel = esriSpatialRelEnum.esriSpatialRelOverlaps
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .GeometryField = "SHAPE"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Geometry = parcelFeat_.Shape
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End With

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim wetOverlapFeat_ As IFeature = Nothing
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim wetOverlappingFeatsCursor_ As IFeatureCursor = wetLandsFeatureClass.Search(spatialFilter_, False)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wetOverlapFeat_ = wetOverlappingFeatsCursor_.NextFeature
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Do Until wetOverlapFeat_ Is Nothing
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.Print("Overlapping Feature Found: {0}", wetOverlapFeat_.OID)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wetOverlapFeat_ = wetOverlappingFeatsCursor_.NextFeature
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 18:09:30 GMT</pubDate>
    <dc:creator>ESRICustomer</dc:creator>
    <dc:date>2021-12-11T18:09:30Z</dc:date>
    <item>
      <title>Need efficient means to find overlapping features ObjectID's</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/need-efficient-means-to-find-overlapping-features/m-p/397055#M10598</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;My environment...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[INDENT]ArcObjects 9.3.X[/INDENT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[INDENT]Visual Studio 2008[/INDENT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[INDENT]VB.NET[/INDENT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Please refer to the attached image to follow along with my question.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've been looking at the &lt;/SPAN&gt;&lt;STRONG&gt;IRelationalOperator&lt;/STRONG&gt;&lt;SPAN&gt; and &lt;/SPAN&gt;&lt;STRONG&gt;ITopologicalOperator&lt;/STRONG&gt;&lt;SPAN&gt; and these do not seem to provide the means to do what I'm after with the efficiency I was hoping for.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Given a particular feature (ParcelXYZ), it would seem reasonable to me to be able to take that parcel and get a very direct and quick determination of the overlapping polygons from the wetlands area layer (shown in yellow). &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;From what I can determine, it appears the only way to do this is to iterate over every single feature in the wetlands area layer (shown in yellow), asking each feature if it overlaps ParcelXYZ.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To me, the quicker and more efficient means that I'm hoping exists would be the exact opposite of that process.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Ideally, you would start with ParcelXYZ, and then simply ask "give me all the feature ObjectID's from the wetlands layer (shown in yellow) that overlap this particular parcel" &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Perhaps internally, this hypothetical ESRI method would restrict the searched area to the parcel's shape, and then is able to quickly determine what features overlap it without having to iterate the entire set of features in the wetlands area layer (shown in yellow)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Imagine a method something like this...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[INDENT]OverlappingFeaturesObjectIDs = ParcelXYZ.OverlappingFeatures(Wetlands)[/INDENT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;Is there a way to do this similarly to what I describe here, or am I stuck with iterating over every feature in the wetlands area?&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Feb 28 2011 10:05 A.M. PST&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[INDENT]After some more searching it seems that the ISpatialFilter interface holds some promise.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I can restrict the features being examined to those that share a spatial relationship with my parcel polygon.[/INDENT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 Feb 2011 15:27:18 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/need-efficient-means-to-find-overlapping-features/m-p/397055#M10598</guid>
      <dc:creator>ESRICustomer</dc:creator>
      <dc:date>2011-02-28T15:27:18Z</dc:date>
    </item>
    <item>
      <title>Re: Need efficient means to find overlapping features ObjectID's</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/need-efficient-means-to-find-overlapping-features/m-p/397056#M10599</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I think you want to implement ISpatialFilter and set the .SpatialRel to esriSpatialRelIntersects&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://resources.esri.com/help/9.3/arcgisserver/apis/arcobjects/esrigeodatabase/ispatialfilter.htm"&gt;http://resources.esri.com/help/9.3/arcgisserver/apis/arcobjects/esrigeodatabase/ispatialfilter.htm&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 Feb 2011 16:01:24 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/need-efficient-means-to-find-overlapping-features/m-p/397056#M10599</guid>
      <dc:creator>JamesCrandall</dc:creator>
      <dc:date>2011-02-28T16:01:24Z</dc:date>
    </item>
    <item>
      <title>Re: Need efficient means to find overlapping features ObjectID's</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/need-efficient-means-to-find-overlapping-features/m-p/397057#M10600</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;I think you want to implement ISpatialFilter and set the .SpatialRel to esriSpatialRelIntersects&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://resources.esri.com/help/9.3/arcgisserver/apis/arcobjects/esrigeodatabase/ispatialfilter.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;http://resources.esri.com/help/9.3/arcgisserver/apis/arcobjects/esrigeodatabase/ispatialfilter.htm&lt;/A&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You're correct.&amp;nbsp; I tried it, it's awesome.&amp;nbsp; Here's the meat of the code i used...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt; 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim parcelFeat_ As IFeature = Nothing
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parcelFeat_ = ParcelLayer.esriIFeatureLayer.FeatureClass.GetFeature(239319)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim spatialFilter_ As ISpatialFilter = New SpatialFilter
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; With spatialFilter_
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .SpatialRel = esriSpatialRelEnum.esriSpatialRelOverlaps
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .GeometryField = "SHAPE"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Geometry = parcelFeat_.Shape
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End With

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim wetOverlapFeat_ As IFeature = Nothing
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim wetOverlappingFeatsCursor_ As IFeatureCursor = wetLandsFeatureClass.Search(spatialFilter_, False)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wetOverlapFeat_ = wetOverlappingFeatsCursor_.NextFeature
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Do Until wetOverlapFeat_ Is Nothing
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.Print("Overlapping Feature Found: {0}", wetOverlapFeat_.OID)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wetOverlapFeat_ = wetOverlappingFeatsCursor_.NextFeature
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 18:09:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/need-efficient-means-to-find-overlapping-features/m-p/397057#M10600</guid>
      <dc:creator>ESRICustomer</dc:creator>
      <dc:date>2021-12-11T18:09:30Z</dc:date>
    </item>
  </channel>
</rss>

