<?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 rowCount of FeatureCursor and SpatialFilter in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/rowcount-of-featurecursor-and-spatialfilter/m-p/752642#M19976</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;ArcGIS Server - ArcObjects Java 9.3.1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to get the number of rows in the IFeatureCursor, after appying a ISpatialFilter to a IFeatureClass&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Can I get the row count without the need for rowcountFeatureLayer, then assigning it the ifeatLayer? I feel like this is an uneeded step, but I can't seem to figure out an easier way.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
private FeatureLayer rowcountFeatureLayer;
private MapServer ms;
 
... a bunch of other stuff...
 
public void checkLayer(IFeature ifeat, IFeatureLayer ifeatLayer, IFeatureClass ifeatClass, IFeatureCursor ifeatCursor, ISpatialFilter ispatFilter, String mapName, int layerID) {
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ifeatLayer = (IFeatureLayer) ms.getLayer(mapName, layerID);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ifeatClass = ifeatLayer.getFeatureClass();
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Create a SpatialFilter from the server context, and set its geometry and spatial relation.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ispatFilter = (SpatialFilter) context.createObject(SpatialFilter.getClsid());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ispatFilter.setGeometryByRef(parcelPolygon);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ispatFilter.setGeometryField(ifeatClass.getShapeFieldName());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ispatFilter.setSpatialRel(spatialRelation);
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Apply the spatial filter to the FeatureClass and assign that to a FeatureCursor object
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ifeatCursor = ifeatClass.search(ispatFilter, true);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int fieldCount = ifeatCursor.getFields().getFieldCount();
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Create a Feature from the server context
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ifeat = (Feature) context.createObject(Feature.getClsid());
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Determine how many rows in this FeatureLayer were returned by the spatial filter.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowcountFeatureLayer = (FeatureLayer)ifeatLayer;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int rowcount = rowcountFeatureLayer.rowCount(ispatFilter);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Row Count: " + rowcount);
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ifeat = ifeatCursor.nextFeature();
 
... other stuff
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 15 Jul 2010 20:33:47 GMT</pubDate>
    <dc:creator>LeoDonahue</dc:creator>
    <dc:date>2010-07-15T20:33:47Z</dc:date>
    <item>
      <title>rowCount of FeatureCursor and SpatialFilter</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/rowcount-of-featurecursor-and-spatialfilter/m-p/752642#M19976</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;ArcGIS Server - ArcObjects Java 9.3.1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to get the number of rows in the IFeatureCursor, after appying a ISpatialFilter to a IFeatureClass&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Can I get the row count without the need for rowcountFeatureLayer, then assigning it the ifeatLayer? I feel like this is an uneeded step, but I can't seem to figure out an easier way.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
private FeatureLayer rowcountFeatureLayer;
private MapServer ms;
 
... a bunch of other stuff...
 
public void checkLayer(IFeature ifeat, IFeatureLayer ifeatLayer, IFeatureClass ifeatClass, IFeatureCursor ifeatCursor, ISpatialFilter ispatFilter, String mapName, int layerID) {
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ifeatLayer = (IFeatureLayer) ms.getLayer(mapName, layerID);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ifeatClass = ifeatLayer.getFeatureClass();
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Create a SpatialFilter from the server context, and set its geometry and spatial relation.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ispatFilter = (SpatialFilter) context.createObject(SpatialFilter.getClsid());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ispatFilter.setGeometryByRef(parcelPolygon);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ispatFilter.setGeometryField(ifeatClass.getShapeFieldName());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ispatFilter.setSpatialRel(spatialRelation);
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Apply the spatial filter to the FeatureClass and assign that to a FeatureCursor object
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ifeatCursor = ifeatClass.search(ispatFilter, true);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int fieldCount = ifeatCursor.getFields().getFieldCount();
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Create a Feature from the server context
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ifeat = (Feature) context.createObject(Feature.getClsid());
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Determine how many rows in this FeatureLayer were returned by the spatial filter.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowcountFeatureLayer = (FeatureLayer)ifeatLayer;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int rowcount = rowcountFeatureLayer.rowCount(ispatFilter);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Row Count: " + rowcount);
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ifeat = ifeatCursor.nextFeature();
 
... other stuff
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Jul 2010 20:33:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/rowcount-of-featurecursor-and-spatialfilter/m-p/752642#M19976</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2010-07-15T20:33:47Z</dc:date>
    </item>
    <item>
      <title>Re: rowCount of FeatureCursor and SpatialFilter</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/rowcount-of-featurecursor-and-spatialfilter/m-p/752643#M19977</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Why not apply .SelectFeatures on an IFeatureSelection with your ISpatialFilter as a parameter?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;(Here is a snip from one of my procedures that is NOT complete but might help):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;Dim inLyr As IFeatureLayer
Dim FeatSel As IFeatureSelection = inLyr

Dim pSpatialFilter As ISpatialFilter
Dim pField As String = "Shape"

Dim pFCursor As IFeatureCursor
PolySel.SelectionSet.Search(Nothing, False, pFCursor)

pFCursor = Nothing
PolySel.SelectionSet.Search(Nothing, False, pFCursor)
pPoly = pFCursor.NextFeature

pSpatialFilter = New SpatialFilter
&amp;nbsp;&amp;nbsp; With pSpatialFilter
&amp;nbsp;&amp;nbsp;&amp;nbsp; .Geometry = pPoly.ShapeCopy
&amp;nbsp;&amp;nbsp;&amp;nbsp; .OutputSpatialReference(SearchLayer.FeatureClass.ShapeFieldName) = pPoly.Shape.SpatialReference
&amp;nbsp;&amp;nbsp;&amp;nbsp; .GeometryField = SearchLayer.FeatureClass.ShapeFieldName
&amp;nbsp;&amp;nbsp;&amp;nbsp; .SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects
&amp;nbsp;&amp;nbsp; End With

&lt;STRONG&gt;'perform the selection on the layers
FeatSel.SelectFeatures(pSpatialFilter, esriSelectionResultEnum.esriSelectionResultNew, False)&lt;/STRONG&gt;
Dim ct As Integer = FeatSel.SelectionSet.Count&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 07:57:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/rowcount-of-featurecursor-and-spatialfilter/m-p/752643#M19977</guid>
      <dc:creator>JamesCrandall</dc:creator>
      <dc:date>2021-12-12T07:57:05Z</dc:date>
    </item>
    <item>
      <title>Re: rowCount of FeatureCursor and SpatialFilter</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/rowcount-of-featurecursor-and-spatialfilter/m-p/752644#M19978</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Why not apply .SelectFeatures on an IFeatureSelection with your ISpatialFilter as a parameter?&lt;BR /&gt; &lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
Dim inLyr As IFeatureLayer
Dim FeatSel As IFeatureSelection = inLyr
 
&lt;STRONG&gt;'perform the selection on the layers&lt;/STRONG&gt;
&lt;STRONG&gt;FeatSel.SelectFeatures(pSpatialFilter, esriSelectionResultEnum.esriSelectionResultNew, False)&lt;/STRONG&gt;
Dim ct As Integer = FeatSel.SelectionSet.Count&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks James for your code example,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Where I am calling rowCount on a FeatureLayer, you are calling selectFeatures on IFeatureSelection. Either way, we are both using a second object to get the count.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In your case, you assign inLyr (which is an IFeatureLayer) to a FeatureSelection and call count from ISelectionSet. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In my case, I assign an IFeatureLayer to a FeatureLayer (rowcountFeatureLayer) and then get the rowCount() from FeatureLayer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I guess what we have is good enough, since rowcountFeatureLayer is my first concrete class variable, everything else has been an Interface in my code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Since I'm not manipulating any tables, getting the rowCount on a FeatureLayer based on a IQueryFilter is ok, I guess?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 07:57:08 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/rowcount-of-featurecursor-and-spatialfilter/m-p/752644#M19978</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2021-12-12T07:57:08Z</dc:date>
    </item>
  </channel>
</rss>

