Map service QueryFeatureCount2 method

Queries and returns the count of the features that meet the query filter selection criteria for the specified layer description.

QueryFeatureCount2(string MapName, LayerDescription LayerDescription, QueryFilter QueryFilter)




The name of the map (data frame) that contains the layer associated with the LayerDescription parameter.


The LayerDescription object of the layer to query.


An attribute or spatial query that defines the selection criteria for the layer associated with the LayerDescription parameter.

Return Value

An integer value indicating the number of features that meet the selection criteria. A SOAP exception will be thrown when the SQL expression in the query filter is invalid.


Definitions applied to the LayerDescription input parameter will filter the returned feature count.



MapService_MapServer mapservice = new MapService_MapServer();

mapservice.Url = "http://localhost:6080/arcgis/services/MapService/MapServer";

string mapname = mapservice.GetDefaultMapName();

MapServerInfo mapinfo = mapservice.GetServerInfo(mapname);

MapDescription mapdesc = mapinfo.DefaultMapDescription;

MapLayerInfo[] maplayerinfos = mapinfo.MapLayerInfos;

int layerid = 0;

string geometryfieldname = string.Empty;

foreach (MapLayerInfo layerinfo in maplayerinfos)


      if (layerinfo.Name == "countries")


            layerid = layerinfo.LayerID;

            Field[] fields = layerinfo.Fields.FieldArray;

            foreach (Field field in fields)


                  if (field.Type == esriFieldType.esriFieldTypeGeometry)


                        geometryfieldname = field.Name;






LayerDescription[] layerdescs = mapdesc.LayerDescriptions;

LayerDescription activelayerdesc = null;

foreach (LayerDescription layerdesc in layerdescs)


      if (layerdesc.LayerID == layerid)


            activelayerdesc = layerdesc;




activelayerdesc.DefinitionExpression = "POP_CNTRY > 50000000";

EnvelopeN envelope = new EnvelopeN();

envelope.XMin = 0.0;

envelope.YMin = 0.0;

envelope.XMax = 180.0;

envelope.YMax = 90.0;

SpatialFilter spatialfilter = new SpatialFilter();

spatialfilter.FilterGeometry = envelope;

spatialfilter.GeometryFieldName = geometryfieldname;

spatialfilter.SpatialRel= esriSpatialRelEnum.esriSpatialRelIntersects;

int featurecount = mapservice.QueryFeatureCount2(mapname, activelayerdesc, spatialfilter);


Dim mapservice As MapService_MapServer = New MapService_MapServer()

mapservice.Url = "http://localhost:6080/arcgis/services/MapService/MapServer"


Dim mapname As String = mapservice.GetDefaultMapName()

Dim mapinfo As MapServerInfo = mapservice.GetServerInfo(mapname)

Dim mapdesc As MapDescription = mapinfo.DefaultMapDescription


Dim maplayerinfos() As MapLayerInfo = mapinfo.MapLayerInfos

Dim layerid As Integer = 0

Dim geomeTryfieldname As String = String.Empty

Dim layerinfo As MapLayerInfo


For Each layerinfo In maplayerinfos

      If layerinfo.Name = "countries" Then

            layerid = layerinfo.LayerID

            Dim fields() As Field = layerinfo.Fields.FieldArray

            Dim field As Field

            For Each field In fields

                  If field.Type = esriFieldType.esriFieldTypeGeometry Then

                        geomeTryfieldname = field.Name

                        Exit For

                  End If


      End If



Dim layerdescs() As LayerDescription = mapdesc.LayerDescriptions

Dim activelayerdesc As LayerDescription = Nothing

Dim layerdesc As LayerDescription


For Each layerdesc In layerdescs

      If layerdesc.LayerID = layerid Then

            activelayerdesc = layerdesc

            Exit For

      End If



activelayerdesc.DefinitionExpression = "POP_CNTRY > 50000000"


Dim envelope As EnvelopeN = New EnvelopeN()

envelope.XMin = 0.0

envelope.YMin = 0.0

envelope.XMax = 180.0

envelope.YMax = 90.0


Dim spatialfilter As SpatialFilter = New SpatialFilter()

spatialfilter.FilterGeometry = envelope

spatialfilter.GeometryFieldName = geomeTryfieldname

spatialfilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects


Dim featurecount As Integer = mapservice.QueryFeatureCount2(mapname, activelayerdesc, spatialfilter)