Map Service QueryFeatureData method

Queries and returns a record set of features (geometry and attributes) that meet the query filter selection criteria for the specified layer id.

 

QueryFeatureData(string MapName, int LayerID, QueryFilter QueryFilter)

 

Parameter

Description

MapName

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

LayerID

The layer id of the layer to query.

QueryFilter

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

 

Return Value

 

A RecordSet that contains an array of fields and records. All fields will be returned. In addition, an FID field is included and defines a unique integer id for each feature. A SOAP exception will be thrown when the SQL expression in the query filter is invalid.

 

Remarks

 

To determine which SQL query parameters can be used with a layer, use the GetSQLSyntaxInfo method.

 

The query filter will override any layer definition queries defined in the map service or defined via the LayerDescription.DefintionExpression property. To apply both query filters, the layer definition query expression and the new query filter will need to be combined for use with this method.

 

The number of records returned from a call to this method may be restricted by the map service. The default maximum value for the number of results returned is 500. If 600 records are matched, only the first 500 results will be returned. The maximum number of results cannot be changed via the ArcGIS Server SOAP API. The map service itself must be configured to return more results, if necessary. Note that the QueryFeatureCount and QueryFeatureIDs methods are not restricted by this limitation. As a result, you can determine the count and the feature ids of features that meet the query filter criteria. To iterate through blocks of results, use the QueryFilter.WhereClause to define a constraint based on a set of feature ids. For example, define a query filter with the where clause "CITYNAME = 'Washington'". Call the QueryFeatureIDs method to return a set of feature ids that match the query filter. The feature id is a unique integer id for each feature. They are stored in the FID field for each feature layer and maintained by the map service. Before calling this method to return a record set, select a block of feature ids to constrain the existing query filter. For example, append the clause "AND FID IN (213, 228)" so only the features that have feature ids in this collection will be returned. In this manner you can iterate through any size result set, as long as the block size is less than the maximum number of records a map service can return. In this example, the block size is two (two feature ids are included).
 

Examples

C#

VB.NET

Java