Class QueryTools
This is a helper class that allows you to execute various queries.
public class QueryTools
- Inheritance
-
QueryTools
- Inherited Members
Remarks
This is a helper class that allows you to execute various queries. It wraps the query functionality of the FeatureSource and provides a simpler and more focused set of APIs.
Constructors
QueryTools()
This is a constructor for the class.
protected QueryTools()
Remarks
This is the default constructor, though it is typically not intended to be used.
QueryTools(FeatureSource)
This is a constructor for the class.
public QueryTools(FeatureSource featureSource)
Parameters
featureSource
FeatureSourceThis parameter is the FeatureSource that will provide the functionality for this class's methods.
Remarks
Each of the calls in this class thunk through to the FeatureSource passed in.
Properties
CanExecuteSqlQuery
This property specifies whether FeatureSource can excute a SQL query or not. If it is false, then it will throw an exception when the following APIs are called: ExecuteScalar, ExecuteNonQuery, ExecuteQuery
public bool CanExecuteSqlQuery { get; }
Property Value
Remarks
The default implementation is false.
Methods
ExecuteNonQuery(string)
Executes a SQL statement against a connection object.
public int ExecuteNonQuery(string sqlStatement)
Parameters
sqlStatement
stringThe sqlStatement to be excuted.
Returns
- int
The number of rows affected.
Remarks
You can use ExecuteNonQuery to perform catalog operations (for example, querying the structure of a database or creating database objects such as tables), or to change the data in a database by executing UPDATE, INSERT, or DELETE statements. Although ExecuteNonQuery does not return any rows, any output parameters or return values mapped to parameters are populated with data. For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command.
ExecuteQuery(string)
Executes the query and returns the result returned by the query.
public DataTable ExecuteQuery(string sqlStatement)
Parameters
sqlStatement
stringThe SQL statement to be excuted.
Returns
- DataTable
The result set in the format of dataTable.
Remarks
Use the ExcuteScalar method to retrieve a single value from the database. This requires less code than use the ExcuteQuery method and then performing the operations necessary to generate the single value using the data.
ExecuteScalar(string)
Executes the query and returns the first column of the first row in the result set returned by the query. All other columns and rows are ignored.
public object ExecuteScalar(string sqlStatement)
Parameters
sqlStatement
stringThe SQL statement to be excuted.
Returns
- object
The first column of the first row in the result set.
Remarks
Use the ExcuteScalar method to retrieve a single value from the database. This requires less code than use the ExcuteQuery method and then performing the operations necessary to generate the single value using the data.
GetAllFeatures(IEnumerable<string>)
This method returns all of the InternalFeatures in the FeatureSource.
public Collection<Feature> GetAllFeatures(IEnumerable<string> returningColumnNames)
Parameters
returningColumnNames
IEnumerable<string>This parameter allows you to select the field names of the column data you wish to return with each Feature.
Returns
- Collection<Feature>
The return value is a collection of all of the InternalFeatures in the FeatureSource.
Remarks
This method returns all of the InternalFeatures in the FeatureSource. It will return
whatever is returned by the GetAllFeaturesCore method, along with any of the additions or
subtractions made if you are in a transaction and that transaction is configured to be
live.
The main purpose of this method is to be the anchor of all of our default virtual
implementations within this class. We as the framework developers wanted to provide you
the user with as much default virtual implementation as possible. To do this, we needed
a way to get access to all of the features. For example, let's say we want to create a default
implementation for finding all of the InternalFeatures in a bounding box. Because this is an
abstract class, we do not know the specifics of the underlying data or how its spatial
indexes work. What we do know is that if we get all of the records, then we can brute-force
the answer. In this way, if you inherited from this class and only implemented this one
method, we can provide default implementations for virtually every other API.
While this is nice for you the developer if you decide to create your own FeatureSource,
it comes with a price: namely, it is very inefficient. In the example we just
discussed (about finding all of the InternalFeatures in a bounding box), we would not want to look
at every record to fulfil this method. Instead, we would want to override the
GetFeaturesInsideBoundingBoxCore and implement specific code that would be faster. For
example, in Oracle Spatial there is a specific SQL statement to perform this operation very
quickly. The same holds true with other specific FeatureSource examples.
Most default implementations in the FeatureSource call the
GetFeaturesInsideBoundingBoxCore, which by default calls the GetAllFeaturesCore. It is
our advice that if you create your own FeatureSource that you ALWAYS override the
GetFeatureInsideBoundingBox. This will ensure that nearly every other API will operate
efficiently. Please see the specific API to determine what method it uses.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
GetAllFeatures(ReturningColumnsType)
This method returns all of the InternalFeatures in the FeatureSource.
public Collection<Feature> GetAllFeatures(ReturningColumnsType returningColumnNamesType)
Parameters
returningColumnNamesType
ReturningColumnsTypeThis parameter allows you to select the field names of the column data you wish to return with each Feature.
Returns
- Collection<Feature>
The return value is a collection of all of the InternalFeatures in the FeatureSource.
Remarks
This method returns all of the InternalFeatures in the FeatureSource. It will return
whatever is returned by the GetAllFeaturesCore method, along with any of the additions or
subtractions made if you are in a transaction and that transaction is configured to be
live.
The main purpose of this method is to be the anchor of all of our default virtual
implementations within this class. We as the framework developers wanted to provide you
the user with as much default virtual implementation as possible. To do this, we needed
a way to get access to all of the features. For example, let's say we want to create a default
implementation for finding all of the InternalFeatures in a bounding box. Because this is an
abstract class, we do not know the specifics of the underlying data or how its spatial
indexes work. What we do know is that if we get all of the records, then we can brute-force
the answer. In this way, if you inherited from this class and only implemented this one
method, we can provide default implementations for virtually every other API.
While this is nice for you the developer if you decide to create your own FeatureSource,
it comes with a price: namely, it is very inefficient. In the example we just
discussed (about finding all of the InternalFeatures in a bounding box), we would not want to look
at every record to fulfil this method. Instead, we would want to override the
GetFeaturesInsideBoundingBoxCore and implement specific code that would be faster. For
example, in Oracle Spatial there is a specific SQL statement to perform this operation very
quickly. The same holds true with other specific FeatureSource examples.
Most default implementations in the FeatureSource call the
GetFeaturesInsideBoundingBoxCore, which by default calls the GetAllFeaturesCore. It is
our advice that if you create your own FeatureSource that you ALWAYS override the
GetFeatureInsideBoundingBox. This will ensure that nearly every other API will operate
efficiently. Please see the specific API to determine what method it uses.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentOutOfRangeException
If you pass a null as the returningColumnNamesType, we will throw an ArgumentNullException.
GetBoundingBoxById(string)
This method returns the bounding box for the Id specified.
public RectangleShape GetBoundingBoxById(string id)
Parameters
id
stringThis parameter is the unique Id of the feature for which you want to find the bounding box.
Returns
- RectangleShape
This method returns the bounding box for the Id specified.
Remarks
This method returns the bounding box for the Id specified.
GetBoundingBoxesByIds(IEnumerable<string>)
This method returns a collection of bounding boxes based on the collection of Ids provided.
public Collection<RectangleShape> GetBoundingBoxesByIds(IEnumerable<string> ids)
Parameters
ids
IEnumerable<string>This parameter is the collection of Ids you want to find.
Returns
- Collection<RectangleShape>
This method returns a collection of bounding boxes based on the collection of Ids provided.
Remarks
This method returns a collection of bounding boxes based on the collection of Ids provided.
GetColumns()
This method returns the collection of columns for this FeatureSource.
public Collection<FeatureSourceColumn> GetColumns()
Returns
- Collection<FeatureSourceColumn>
This method returns the collection of columns for this FeatureSource.
Remarks
This method returns the collection of columns for this FeatureSource.
GetCount()
This method returns the count of all of the InternalFeatures in the FeatureSource.
public long GetCount()
Returns
- long
This method returns the count of all of the InternalFeatures in the FeatureSource.
Remarks
This method returns the count of all of the InternalFeatures in the FeatureSource.
GetFeatureById(string, IEnumerable<string>)
This method returns an InternalFeature based on an Id provided.
public Feature GetFeatureById(string id, IEnumerable<string> returningColumnNames)
Parameters
id
stringThis parameter is the unique Id for the feature you want to find.
returningColumnNames
IEnumerable<string>This parameter is a list of column names you want returned with the Feature.
Returns
- Feature
This method returns an InternalFeature based on an Id provided.
Remarks
This method returns an InternalFeature based on an Id provided.
GetFeatureById(string, ReturningColumnsType)
This method returns an InternalFeature based on an Id provided.
public Feature GetFeatureById(string id, ReturningColumnsType returningColumnNamesType)
Parameters
id
stringThis parameter is the unique Id for the feature you want to find.
returningColumnNamesType
ReturningColumnsTypeThis parameter is a list of column names you want returned with the Feature.
Returns
- Feature
This method returns an InternalFeature based on an Id provided.
Remarks
This method returns an InternalFeature based on an Id provided.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the id, we will throw an ArgumentNullException.
- ArgumentException
If you pass a null as the id, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass a null as the returningColumnNamesType, we will throw an ArgumentNullException.
GetFeaturesByColumnValue(string, string)
Get all of the features by passing a columnName and a specified columValue.
public Collection<Feature> GetFeaturesByColumnValue(string columnName, string columnValue)
Parameters
columnName
stringThe specified columnName to match the columnValue.
columnValue
stringThe specified columnValue to match those returning features.
Returns
- Collection<Feature>
The returnning features matches the columnValue.
GetFeaturesByColumnValue(string, string, IEnumerable<string>)
Get all of the features by passing a columnName and a specified columValue.
public Collection<Feature> GetFeaturesByColumnValue(string columnName, string columnValue, IEnumerable<string> returningColumnNames)
Parameters
columnName
stringThe specified columnName to match the columnValue.
columnValue
stringThe specified columnValue to match those returning features.
returningColumnNames
IEnumerable<string>This parameter specifies the columns contained in the return features.
Returns
- Collection<Feature>
The returnning features matches the columnValue.
GetFeaturesByColumnValue(string, string, ReturningColumnsType)
Get all of the features by passing a columnName and a specified columValue.
public Collection<Feature> GetFeaturesByColumnValue(string columnName, string columnValue, ReturningColumnsType returningColumnType)
Parameters
columnName
stringThe specified columnName to match the columnValue.
columnValue
stringThe specified columnValue to match those returning features.
returningColumnType
ReturningColumnsTypeThis parameter specifies the columns contained in the return features.
Returns
- Collection<Feature>
The returnning features matches the columnValue.
GetFeaturesByIds(IEnumerable<string>, IEnumerable<string>)
This method returns a collection of InternalFeatures based on the collection of Ids provided.
public Collection<Feature> GetFeaturesByIds(IEnumerable<string> ids, IEnumerable<string> returningColumnNames)
Parameters
ids
IEnumerable<string>This parameter is the collection of Ids you want to find.
returningColumnNames
IEnumerable<string>This parameter is a list of column names you want returned with the Features.
Returns
- Collection<Feature>
This method returns a collection of InternalFeatures based on the collection of Ids provided.
Remarks
This method returns a collection of InternalFeatures based on the collection of Ids provided.
GetFeaturesByIds(IEnumerable<string>, ReturningColumnsType)
This method returns a collection of InternalFeatures based on the collection of Ids provided.
public Collection<Feature> GetFeaturesByIds(IEnumerable<string> ids, ReturningColumnsType returningColumnNamesType)
Parameters
ids
IEnumerable<string>This parameter is the collection of Ids you want to find.
returningColumnNamesType
ReturningColumnsTypeThis parameter is a list of column names you want returned with the Features.
Returns
- Collection<Feature>
This method returns a collection of InternalFeatures based on the collection of Ids provided.
Remarks
This method returns a collection of InternalFeatures based on the collection of Ids provided.
GetFeaturesContaining(BaseShape, IEnumerable<string>)
This method returns all of the InternalFeatures that contain the target shape.
public Collection<Feature> GetFeaturesContaining(BaseShape targetShape, IEnumerable<string> returningColumnNames)
Parameters
targetShape
BaseShapeThis parameter specifies the target shape used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the columns contained in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that contain the TargetShape you passed in.
Remarks
This method returns all of the InternalFeatures that contain the specified target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
GetFeaturesContaining(BaseShape, ReturningColumnsType)
This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.
public Collection<Feature> GetFeaturesContaining(BaseShape targetShape, ReturningColumnsType returningColumnNamesType)
Parameters
targetShape
BaseShapeThis parameter specifies the target shape used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the columns contained in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that contain the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
ReturningColumnsType:
NoColumns - This method ensures that the returning features contain no
column values.
AllColumns - This method ensures that the returning features contain all
column values.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesContaining(Feature, IEnumerable<string>)
This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.
public Collection<Feature> GetFeaturesContaining(Feature targetFeature, IEnumerable<string> returningColumnNames)
Parameters
targetFeature
FeatureThis parameter specifies the target feature used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the columns contained in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that contain the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
ReturningColumnsType:
NoColumns - This method ensures that the returning features contain no
column values.
AllColumns - This method ensures that the returning features contain all
column values.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesContaining(Feature, ReturningColumnsType)
This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.
public Collection<Feature> GetFeaturesContaining(Feature targetFeature, ReturningColumnsType returningColumnNamesType)
Parameters
targetFeature
FeatureThis parameter specifies the target feature used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the columns contained in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetFeature.
Remarks
This method returns all of the InternalFeatures that contain the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
ReturningColumnsType:
NoColumns - This method ensures that the returning features contain no
column values.
AllColumns - This method ensures that the returning features contain all
column values.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesCrossing(BaseShape, IEnumerable<string>)
This method returns all of the InternalFeatures that cross the target shape.
public Collection<Feature> GetFeaturesCrossing(BaseShape targetShape, IEnumerable<string> returningColumnNames)
Parameters
targetShape
BaseShapeThis parameter specifies the target shape used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the columns contained in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that cross the TargetShape you passed in.
Remarks
This method returns all of the InternalFeatures that cross the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
Crossing - The Geometries share some but not all interior points, and the
dimension of the intersection is less than that of at least one of the Geometries.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
GetFeaturesCrossing(BaseShape, ReturningColumnsType)
This method returns all of the InternalFeatures that cross the target shape.
public Collection<Feature> GetFeaturesCrossing(BaseShape targetShape, ReturningColumnsType returningColumnNamesType)
Parameters
targetShape
BaseShapeThis parameter specifies the target shape used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the columns contained in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that cross the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
ReturningColumnsType:
NoColumns - This method ensures that the returning features contain no
column values.
AllColumns - This method ensures that the returning features contain all
column values.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesCrossing(Feature, IEnumerable<string>)
This method returns all of the InternalFeatures that cross the target Feature.
public Collection<Feature> GetFeaturesCrossing(Feature targetFeature, IEnumerable<string> returningColumnNames)
Parameters
targetFeature
FeatureThis parameter specifies the target feature used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the columns contained in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the Internalfeatures that cross the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
ReturningColumnsType:
NoColumns - This method ensures that the returning features contain no
column values.
AllColumns - This method ensures that the returning features contain all
column values.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesCrossing(Feature, ReturningColumnsType)
This method returns all of the InternalFeatures that cross the target Feature.
public Collection<Feature> GetFeaturesCrossing(Feature targetFeature, ReturningColumnsType returningColumnNamesType)
Parameters
targetFeature
FeatureThis parameter specifies the target feature used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the columns contained in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the Internalfeatures that cross the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
ReturningColumnsType:
NoColumns - This method ensures that the returning features contain no
column values.
AllColumns - This method ensures that the returning features contain all
column values.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesDisjointed(BaseShape, IEnumerable<string>)
This method returns all of the InternalFeatures that disjoint the target Feature.
public Collection<Feature> GetFeaturesDisjointed(BaseShape targetShape, IEnumerable<string> returningColumnNames)
Parameters
targetShape
BaseShapeThis parameter specifies the target shape used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the columns contained in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that disjoint the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
Disjoint - The Geometries have no point in common.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
GetFeaturesDisjointed(BaseShape, ReturningColumnsType)
This method returns all of the InternalFeatures that disjoint the target Feature.
public Collection<Feature> GetFeaturesDisjointed(BaseShape targetShape, ReturningColumnsType returningColumnNamesType)
Parameters
targetShape
BaseShapeThis parameter specifies the target shape used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the columns contained in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that disjoint the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
Disjoint - The Geometries have no point in common.
ReturningColumnsType:
NoColumns - This method ensures that the returning features contain no
column values.
AllColumns - This method ensures that the returning features contain all
column values.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesDisjointed(Feature, IEnumerable<string>)
This method returns all of the InternalFeatures that disjoint the target Feature.
public Collection<Feature> GetFeaturesDisjointed(Feature targetFeature, IEnumerable<string> returningColumnNames)
Parameters
targetFeature
FeatureThis parameter specifies the target feature used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the columns contained in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that disjoint the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
Disjoint - The Geometries have no point in common.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesDisjointed(Feature, ReturningColumnsType)
This method returns all of the InternalFeatures that disjoint the target Feature.
public Collection<Feature> GetFeaturesDisjointed(Feature targetFeature, ReturningColumnsType returningColumnNamesType)
Parameters
targetFeature
FeatureThis parameter specifies the target feature used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the columns contained in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that disjoint the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
Disjoint - The Geometries have no point in common.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesInsideBoundingBox(RectangleShape, IEnumerable<string>)
This method returns all of the InternalFeatures that are inside of the boundingBox.
public Collection<Feature> GetFeaturesInsideBoundingBox(RectangleShape boundingBox, IEnumerable<string> returningColumnNames)
Parameters
boundingBox
RectangleShapeThis parameter specifies the target boundingBox used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that are inside of the target rectangle shape.
Remarks
This method returns all of the InternalFeatures that are inside of the target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the boundingBox, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
GetFeaturesInsideBoundingBox(RectangleShape, ReturningColumnsType)
This method returns all of the InternalFeatures that are inside of the boundingBox.
public Collection<Feature> GetFeaturesInsideBoundingBox(RectangleShape boundingBox, ReturningColumnsType returningColumnNamesType)
Parameters
boundingBox
RectangleShapeThis parameter specifies the target boundingBox used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that are inside of the target rectangle shape.
Remarks
This method returns all of the InternalFeatures that are inside of the target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the boundingBox, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesIntersecting(BaseShape, IEnumerable<string>)
This method returns all of the InternalFeatures that intersect the target Feature.
public Collection<Feature> GetFeaturesIntersecting(BaseShape targetShape, IEnumerable<string> returningColumnNames)
Parameters
targetShape
BaseShapeThis parameter specifies the target shape used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that intersect the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
Intersecting - The Geometries have at least one point in common (the inverse of Disjoint).
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
GetFeaturesIntersecting(BaseShape, ReturningColumnsType)
This method returns all of the InternalFeatures that intersect the target Feature.
public Collection<Feature> GetFeaturesIntersecting(BaseShape targetShape, ReturningColumnsType returningColumnNamesType)
Parameters
targetShape
BaseShapeThis parameter specifies the target shape used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that intersect the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
Intersecting - The Geometries have at least one point in common (the inverse of Disjoint).
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesIntersecting(Feature, IEnumerable<string>)
This method returns all of the InternalFeatures that intersect the target Feature.
public Collection<Feature> GetFeaturesIntersecting(Feature targetFeature, IEnumerable<string> returningColumnNames)
Parameters
targetFeature
FeatureThis parameter specifies the target shape used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that intersect the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
Intersecting - The Geometries have at least one point in common (the inverse of Disjoint).
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesIntersecting(Feature, ReturningColumnsType)
This method returns all of the InternalFeatures that intersect the target Feature.
public Collection<Feature> GetFeaturesIntersecting(Feature targetFeature, ReturningColumnsType returningColumnNamesType)
Parameters
targetFeature
FeatureThis parameter specifies the target feature used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that intersect the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
Intersecting - The Geometries have at least one point in common (the inverse of Disjoint).
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesNearestTo(BaseShape, GeographyUnit, int, IEnumerable<string>)
This method returns a user defined number of InternalFeatures that are closest to the TargetShape.
public Collection<Feature> GetFeaturesNearestTo(BaseShape targetShape, GeographyUnit unitOfData, int maxItemsToFind, IEnumerable<string> returningColumnNames)
Parameters
targetShape
BaseShapeThis parameter is the shape you want to find close InternalFeatures to.
unitOfData
GeographyUnitThis parameter is the unit of data that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
maxItemsToFind
intThis parameter defines how many close InternalFeatures to find around the TargetShape.
returningColumnNames
IEnumerable<string>This parameter allows you to select the field names of the column data you wish to return with each Feature.
Returns
- Collection<Feature>
This method returns a user defined number of InternalFeatures that are closest to the TargetShape.
Remarks
This method returns a user defined number of InternalFeatures that are closest to the
TargetShape. It is important to note that the TargetShape and the FeatureSource
must use the same unit, such as feet or meters. If they do not, then the results will not be
predictable or correct. If there is a current transaction and it is marked as live, then
the results will include any transaction Feature that applies.
The implementation we provided create a small bounding box around the TargetShape
and then queries the features inside of it. If we reach the number of items to find,
then we measure the returned InternalFeatures to find the nearest. If we do not find enough
records, we scale up the bounding box and try again. As you can see, this is not the
most efficient method. If your underlying data provider exposes a more efficient way,
we recommend you override the Core version of this method and implement it.
The default implementation of GetFeaturesNearestCore uses the
GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you
provide your own implementation for this method that will be more efficient. When you
override the GetFeaturesInsideBoundingBoxCore method, we recommend that you use
any spatial indexes you have at your disposal to make this method as fast as
possible.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a maxItemsToFind that is not greater than 0, it will throw an ArgumentOutOfRangeException.
- ArgumentException
If you pass in a targetShape that is invalid, we will throw an ArgumentException.
GetFeaturesNearestTo(BaseShape, GeographyUnit, int, IEnumerable<string>, double, DistanceUnit)
This method returns a user defined number of InternalFeatures that are closest to the TargetShape.
public Collection<Feature> GetFeaturesNearestTo(BaseShape targetShape, GeographyUnit unitOfData, int maxItemsToFind, IEnumerable<string> returningColumnNames, double searchRadius, DistanceUnit unitOfSearchRadius)
Parameters
targetShape
BaseShapeThis parameter is the shape you want to find InternalFeatures close to.
unitOfData
GeographyUnitThis parameter is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
maxItemsToFind
intThis parameter defines how many close InternalFeatures to find around the TargetShape.
returningColumnNames
IEnumerable<string>This parameter allows you to select the field names of the column data you wish to return with each Feature.
searchRadius
doubleLimit the maximize distance proximately to search closest records.
unitOfSearchRadius
DistanceUnitThe unit of searchRadius parameter.
Returns
- Collection<Feature>
This method returns a user defined number of InternalFeatures that are closest to the TargetShape.
Remarks
This method returns a user defined number of InternalFeatures that are closest to the
TargetShape. It is important to note that the TargetShape and the FeatureSource must use
the same unit, such as feet or meters. If they do not, then the results will not be
predictable or correct. If there is a current transaction and it is marked as live,
then the results will include any transaction Feature that applies.
The implementation we provided creates a small bounding box around the TargetShape
and then queries the features inside of it. If we reach the number of items to find,
then we measure the returned InternalFeatures to find the nearest. If we do not find enough
records, we scale up the bounding box and try again. As you can see, this is not the
most efficient method. If your underlying data provider exposes a more efficient way,
we recommend you override the Core version of this method and implement it.
The default implementation of GetFeaturesNearestCore uses the
GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you
provide your own implementation for this method that will be more efficient.
When you override GetFeaturesInsideBoundingBoxCore method, we recommend that you use
any spatial indexes you have at your disposal to make this method as fast as
possible.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a feature source which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a maxItemsToFind that is not greater than 0, it will throw a ArgumentOutOfRangeException.
- ArgumentException
If you pass in a targetShape that is invalid, we will throw an ArgumentException.
GetFeaturesNearestTo(BaseShape, GeographyUnit, int, ReturningColumnsType)
This method returns a user defined number of InternalFeatures that are closest to the TargetShape.
public Collection<Feature> GetFeaturesNearestTo(BaseShape targetShape, GeographyUnit unitOfData, int maxItemsToFind, ReturningColumnsType returningColumnNamesType)
Parameters
targetShape
BaseShapeThis parameter is the shape you want to find close InternalFeatures to.
unitOfData
GeographyUnitThis parameter is the unit of data that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
maxItemsToFind
intThis parameter defines how many close InternalFeatures to find around the TargetShape.
returningColumnNamesType
ReturningColumnsTypeThis parameter allows you to select the field names of the column data you wish to return with each Feature.
Returns
- Collection<Feature>
This method returns a user defined number of InternalFeatures that are closest to the TargetShape.
Remarks
This method returns a user defined number of InternalFeatures that are closest to the
TargetShape. It is important to note that the TargetShape and the FeatureSource
must use the same unit, such as feet or meters. If they do not, then the results will not be
predictable or correct. If there is a current transaction and it is marked as live, then
the results will include any transaction Feature that applies.
The implementation we provided create a small bounding box around the TargetShape
and then queries the features inside of it. If we reach the number of items to find,
then we measure the returned InternalFeatures to find the nearest. If we do not find enough
records, we scale up the bounding box and try again. As you can see, this is not the
most efficient method. If your underlying data provider exposes a more efficient way,
we recommend you override the Core version of this method and implement it.
The default implementation of GetFeaturesNearestCore uses the
GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you
provide your own implementation for this method that will be more efficient. When you
override the GetFeaturesInsideBoundingBoxCore method, we recommend that you use
any spatial indexes you have at your disposal to make this method as fast as
possible.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a returningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
- ArgumentOutOfRangeException
If you pass in a maxItemsToFind that is not greater than 0, it will throw an ArgumentOutOfRangeException.
- ArgumentException
If you pass in a targetShape that is invalid, we will throw an ArgumentException.
GetFeaturesNearestTo(Feature, GeographyUnit, int, IEnumerable<string>)
This method returns a user defined number of InternalFeatures that are closest to the TargetFeature.
public Collection<Feature> GetFeaturesNearestTo(Feature targetFeature, GeographyUnit unitOfData, int maxItemsToFind, IEnumerable<string> returningColumnNames)
Parameters
targetFeature
FeatureThis parameter is the feature you want to find close InternalFeatures to.
unitOfData
GeographyUnitThis parameter is the unit of data that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
maxItemsToFind
intThis parameter defines how many close InternalFeatures to find around the feature.
returningColumnNames
IEnumerable<string>This parameter allows you to select the field names of the column data you wish to return with each Feature.
Returns
- Collection<Feature>
This method returns a user defined number of InternalFeatures that are closest to the TargetFeature.
Remarks
This method returns a user defined number of InternalFeatures that are closest to the
TargetShape. It is important to note that the TargetShape and the FeatureSource
must use the same unit, such as feet or meters. If they do not, then the results will not be
predictable or correct. If there is a current transaction and it is marked as live, then
the results will include any transaction Feature that applies.
The implementation we provided create a small bounding box around the TargetShape
and then queries the features inside of it. If we reach the number of items to find,
then we measure the returned InternalFeatures to find the nearest. If we do not find enough
records, we scale up the bounding box and try again. As you can see, this is not the
most efficient method. If your underlying data provider exposes a more efficient way,
we recommend you override the Core version of this method and implement it.
The default implementation of GetFeaturesNearestCore uses the
GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you
provide your own implementation for this method that will be more efficient. When you
override the GetFeaturesInsideBoundingBoxCore method, we recommend that you use
any spatial indexes you have at your disposal to make this method as fast as
possible.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a maxItemsToFind that is not greater than 0, it will throw an ArgumentOutOfRangeException.
- ArgumentException
If you pass in a targetShape that is invalid, we will throw an ArgumentException.
GetFeaturesNearestTo(Feature, GeographyUnit, int, IEnumerable<string>, double, DistanceUnit)
This method returns a user defined number of InternalFeatures that are closest to the TargetShape.
public Collection<Feature> GetFeaturesNearestTo(Feature targetFeature, GeographyUnit unitOfData, int maxItemsToFind, IEnumerable<string> returningColumnNames, double searchRadius, DistanceUnit unitOfSearchRadius)
Parameters
targetFeature
FeatureThis parameter is feature you want to find InternalFeatures close to.
unitOfData
GeographyUnitThis parameter is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
maxItemsToFind
intThis parameter defines how many close InternalFeatures to find around the TargetShape.
returningColumnNames
IEnumerable<string>This parameter allows you to select the field names of the column data you wish to return with each Feature.
searchRadius
doubleLimit the maximize distance proximately to search closest records.
unitOfSearchRadius
DistanceUnitThe unit of searchRadius parameter.
Returns
- Collection<Feature>
This method returns a user defined number of InternalFeatures that are closest to the TargetShape.
Remarks
This method returns a user defined number of InternalFeatures that are closest to the
TargetShape. It is important to note that the TargetShape and the FeatureSource must use
the same unit, such as feet or meters. If they do not, then the results will not be
predictable or correct. If there is a current transaction and it is marked as live,
then the results will include any transaction Feature that applies.
The implementation we provided creates a small bounding box around the TargetShape
and then queries the features inside of it. If we reach the number of items to find,
then we measure the returned InternalFeatures to find the nearest. If we do not find enough
records, we scale up the bounding box and try again. As you can see, this is not the
most efficient method. If your underlying data provider exposes a more efficient way,
we recommend you override the Core version of this method and implement it.
The default implementation of GetFeaturesNearestCore uses the
GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you
provide your own implementation for this method that will be more efficient.
When you override GetFeaturesInsideBoundingBoxCore method, we recommend that you use
any spatial indexes you have at your disposal to make this method as fast as
possible.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a feature source which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a maxItemsToFind that is not greater than 0, it will throw a ArgumentOutOfRangeException.
- ArgumentException
If you pass in a targetShape that is invalid, we will throw an ArgumentException.
GetFeaturesNearestTo(Feature, GeographyUnit, int, ReturningColumnsType)
This method returns a user defined number of InternalFeatures that are closest to the TargetFeature.
public Collection<Feature> GetFeaturesNearestTo(Feature targetFeature, GeographyUnit unitOfData, int maxItemsToFind, ReturningColumnsType returningColumnNamesType)
Parameters
targetFeature
FeatureThis parameter is the feature you want to find close InternalFeatures to.
unitOfData
GeographyUnitThis parameter is the unit of data that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
maxItemsToFind
intThis parameter defines how many close InternalFeatures to find around the feature.
returningColumnNamesType
ReturningColumnsTypeThis parameter allows you to select the field names of the column data you wish to return with each Feature.
Returns
- Collection<Feature>
This method returns a user defined number of InternalFeatures that are closest to the TargetFeature.
Remarks
This method returns a user defined number of InternalFeatures that are closest to the
TargetShape. It is important to note that the TargetShape and the FeatureSource
must use the same unit, such as feet or meters. If they do not, then the results will not be
predictable or correct. If there is a current transaction and it is marked as live, then
the results will include any transaction Feature that applies.
The implementation we provided create a small bounding box around the TargetShape
and then queries the features inside of it. If we reach the number of items to find,
then we measure the returned InternalFeatures to find the nearest. If we do not find enough
records, we scale up the bounding box and try again. As you can see, this is not the
most efficient method. If your underlying data provider exposes a more efficient way,
we recommend you override the Core version of this method and implement it.
The default implementation of GetFeaturesNearestCore uses the
GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you
provide your own implementation for this method that will be more efficient. When you
override the GetFeaturesInsideBoundingBoxCore method, we recommend that you use
any spatial indexes you have at your disposal to make this method as fast as
possible.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a maxItemsToFind that is not greater than 0, it will throw an ArgumentOutOfRangeException.
- ArgumentException
If you pass in a targetShape that is invalid, we will throw an ArgumentException.
GetFeaturesOutsideBoundingBox(RectangleShape, IEnumerable<string>)
This method returns all of the InternalFeatures that are outside of the boundingBox.
public Collection<Feature> GetFeaturesOutsideBoundingBox(RectangleShape boundingBox, IEnumerable<string> returningColumnNames)
Parameters
boundingBox
RectangleShapeThis parameter specifies the target boundingBox used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that are outside of the target rectangle shape.
Remarks
This method returns all of the InternalFeatures that are outside of the target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the boundingBox, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
GetFeaturesOutsideBoundingBox(RectangleShape, ReturningColumnsType)
This method returns all of the InternalFeatures that are outside of the boundingBox.
public Collection<Feature> GetFeaturesOutsideBoundingBox(RectangleShape boundingBox, ReturningColumnsType returningColumnNamesType)
Parameters
boundingBox
RectangleShapeThis parameter specifies the target boundingBox used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that are outside of the target rectangle shape.
Remarks
This method returns all of the InternalFeatures that are outside of the target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the boundingBox, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesOverlapping(BaseShape, IEnumerable<string>)
This method returns all of the InternalFeatures that overlap the target Feature.
public Collection<Feature> GetFeaturesOverlapping(BaseShape targetShape, IEnumerable<string> returningColumnNames)
Parameters
targetShape
BaseShapeThis parameter specifies the target shape used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that overlap the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
Overlapping - The Geometries share some but not all points in common, and the intersection has the same dimension as the Geometries themselves.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
GetFeaturesOverlapping(BaseShape, ReturningColumnsType)
This method returns all of the InternalFeatures that overlap the target Feature.
public Collection<Feature> GetFeaturesOverlapping(BaseShape targetShape, ReturningColumnsType returningColumnNamesType)
Parameters
targetShape
BaseShapeThis parameter specifies the target shape used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that overlap the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
Overlapping - The Geometries share some but not all points in common, and the intersection has the same dimension as the Geometries themselves.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesOverlapping(Feature, IEnumerable<string>)
This method returns all of the InternalFeatures that overlap the target Feature.
public Collection<Feature> GetFeaturesOverlapping(Feature targetFeature, IEnumerable<string> returningColumnNames)
Parameters
targetFeature
FeatureThis parameter specifies the target feature used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that overlap the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
Overlapping - The Geometries share some but not all points in common, and the intersection has the same dimension as the Geometries themselves.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
GetFeaturesOverlapping(Feature, ReturningColumnsType)
This method returns all of the InternalFeatures that overlap the target Feature.
public Collection<Feature> GetFeaturesOverlapping(Feature targetFeature, ReturningColumnsType returningColumnNamesType)
Parameters
targetFeature
FeatureThis parameter specifies the target shape used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that overlap the target
shape. If there is a current transaction and it is marked as live, then the results
will include any transaction Feature that applies.
Overlapping - The Geometries share some but not all points in common, and the intersection has the same dimension as the Geometries themselves.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesTopologicalEqual(BaseShape, IEnumerable<string>)
This method returns all of the InternalFeatures that topologicalEqual the target Feature.
public Collection<Feature> GetFeaturesTopologicalEqual(BaseShape targetShape, IEnumerable<string> returningColumnNames)
Parameters
targetShape
BaseShapeThis parameter specifies the target shape used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that topologicalEqual the target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
GetFeaturesTopologicalEqual(BaseShape, ReturningColumnsType)
This method returns all of the InternalFeatures that topologicalEqual the target Feature.
public Collection<Feature> GetFeaturesTopologicalEqual(BaseShape targetShape, ReturningColumnsType returningColumnNamesType)
Parameters
targetShape
BaseShapeThis parameter specifies the target shape used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that topologicalEqual the target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesTopologicalEqual(Feature, IEnumerable<string>)
This method returns all of the InternalFeatures that topologicalEqual the target Feature.
public Collection<Feature> GetFeaturesTopologicalEqual(Feature targetFeature, IEnumerable<string> returningColumnNames)
Parameters
targetFeature
FeatureThis parameter specifies the target shape used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that topologicalEqual the target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
GetFeaturesTopologicalEqual(Feature, ReturningColumnsType)
This method returns all of the InternalFeatures that topologicalEqual the target Feature.
public Collection<Feature> GetFeaturesTopologicalEqual(Feature targetFeature, ReturningColumnsType returningColumnNamesType)
Parameters
targetFeature
FeatureThis parameter specifies the target shape used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that topologicalEqual the target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesTouching(BaseShape, IEnumerable<string>)
This method returns all of the InternalFeatures that touch the target Feature.
public Collection<Feature> GetFeaturesTouching(BaseShape targetShape, IEnumerable<string> returningColumnNames)
Parameters
targetShape
BaseShapeThis parameter specifies the target shape used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that touch the target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
GetFeaturesTouching(BaseShape, ReturningColumnsType)
This method returns all of the InternalFeatures that touch the target Feature.
public Collection<Feature> GetFeaturesTouching(BaseShape targetShape, ReturningColumnsType returningColumnNamesType)
Parameters
targetShape
BaseShapeThis parameter specifies the target shape used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that touch the target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesTouching(Feature, IEnumerable<string>)
This method returns all of the InternalFeatures that touch the target Feature.
public Collection<Feature> GetFeaturesTouching(Feature targetFeature, IEnumerable<string> returningColumnNames)
Parameters
targetFeature
FeatureThis parameter specifies the target feature used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that touch the target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
GetFeaturesTouching(Feature, ReturningColumnsType)
This method returns all of the InternalFeatures that touch the target Feature.
public Collection<Feature> GetFeaturesTouching(Feature targetFeature, ReturningColumnsType returningColumnNamesType)
Parameters
targetFeature
FeatureThis parameter specifies the target feature used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that touch the target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesWithin(BaseShape, IEnumerable<string>)
This method returns all of the InternalFeatures that are within the target Feature.
public Collection<Feature> GetFeaturesWithin(BaseShape targetShape, IEnumerable<string> returningColumnNames)
Parameters
targetShape
BaseShapeThis parameter specifies the target shape used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that are within the target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
GetFeaturesWithin(BaseShape, ReturningColumnsType)
This method returns all of the InternalFeatures that are within the target Feature.
public Collection<Feature> GetFeaturesWithin(BaseShape targetShape, ReturningColumnsType returningColumnNamesType)
Parameters
targetShape
BaseShapeThis parameter specifies the target shape used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that are within the target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesWithin(Feature, IEnumerable<string>)
This method returns all of the InternalFeatures that are within the target Feature.
public Collection<Feature> GetFeaturesWithin(Feature targetFeature, IEnumerable<string> returningColumnNames)
Parameters
targetFeature
FeatureThis parameter specifies the target feature used in the spatial query.
returningColumnNames
IEnumerable<string>This parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that are within the target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
GetFeaturesWithin(Feature, ReturningColumnsType)
This method returns all of the InternalFeatures that are within the target Feature.
public Collection<Feature> GetFeaturesWithin(Feature targetFeature, ReturningColumnsType returningColumnNamesType)
Parameters
targetFeature
FeatureThis parameter specifies the target feature used in the spatial query.
returningColumnNamesType
ReturningColumnsTypeThis parameter specifies the column values in the return features.
Returns
- Collection<Feature>
The return value is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.
Remarks
This method returns all of the InternalFeatures that are within the target shape. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentOutOfRangeException
If you pass in a ReturningColumnsType that is not defined in the enumeration, it will throw a ArgumentOutOfRangeException.
GetFeaturesWithinDistanceOf(BaseShape, GeographyUnit, DistanceUnit, double, IEnumerable<string>)
This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.
public Collection<Feature> GetFeaturesWithinDistanceOf(BaseShape targetShape, GeographyUnit unitOfData, DistanceUnit distanceUnit, double distance, IEnumerable<string> returningColumnNames)
Parameters
targetShape
BaseShapeThe shape you wish to find InternalFeatures within a distance of.
unitOfData
GeographyUnitThis parameter is the unit of data that the FeatureSource and TargetShape are in.
distanceUnit
DistanceUnitThis parameter specifies the unit of the distance parameter, such as feet, miles, kilometers, etc.
distance
doubleThis parameter specifies the distance in which to find InternalFeatures around the TargetShape.
returningColumnNames
IEnumerable<string>This parameter allows you to select the field names of the column data you wish to return with each Feature.
Returns
- Collection<Feature>
This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.
Remarks
This method returns a collection of InternalFeatures that are within a certain
distance of the TargetShape. It is important to note that the TargetShape and the
FeatureSource must use the same unit, such as feet or meters. If they do not, then the
results will not be predictable or correct. If there is a current transaction and
it is marked as live, then the results will include any transaction Feature that
applies.
The implementation we provided creates a bounding box around the TargetShape using
the distance supplied and then queries the features inside of it. This may not be the
most efficient method for this operation. If your underlying data provider exposes a
more efficient way, we recommend you override the Core version of this method and
implement it.
The default implementation of GetFeaturesWithinDistanceOfCore uses the
GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you
provide your own implementation for this method that will be more efficient. When you
override the GetFeaturesInsideBoundingBoxCore method, we recommend that you use
any spatial indexes you have at your disposal to make this method as fast as
possible.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a unitOfData that is not defined, it will throw a ArgumentOutOfRangeException.
- ArgumentOutOfRangeException
If you pass in a distanceUnit that is not defined, it will throw a ArgumentOutOfRangeException.
- ArgumentException
If you pass in a targetShape that is invalid, we will throw an ArgumentException.
GetFeaturesWithinDistanceOf(BaseShape, GeographyUnit, DistanceUnit, double, ReturningColumnsType)
This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.
public Collection<Feature> GetFeaturesWithinDistanceOf(BaseShape targetShape, GeographyUnit unitOfData, DistanceUnit distanceUnit, double distance, ReturningColumnsType returningColumnNamesType)
Parameters
targetShape
BaseShapeThe shape you wish to find InternalFeatures within a distance of.
unitOfData
GeographyUnitThis parameter is the unit of data that the FeatureSource and TargetShape are in.
distanceUnit
DistanceUnitThis parameter specifies the unit of the distance parameter, such as feet, miles, kilometers, etc.
distance
doubleThis parameter specifies the distance in which to find InternalFeatures around the TargetShape.
returningColumnNamesType
ReturningColumnsTypeThis parameter allows you to select the field names of the column data you wish to return with each Feature.
Returns
- Collection<Feature>
This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.
Remarks
This method returns a collection of InternalFeatures that are within a certain
distance of the TargetShape. It is important to note that the TargetShape and the
FeatureSource must use the same unit, such as feet or meters. If they do not, then the
results will not be predictable or correct. If there is a current transaction and
it is marked as live, then the results will include any transaction Feature that
applies.
The implementation we provided creates a bounding box around the TargetShape using
the distance supplied and then queries the features inside of it. This may not be the
most efficient method for this operation. If your underlying data provider exposes a
more efficient way, we recommend you override the Core version of this method and
implement it.
The default implementation of GetFeaturesWithinDistanceOfCore uses the
GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you
provide your own implementation for this method that will be more efficient. When you
override the GetFeaturesInsideBoundingBoxCore method, we recommend that you use
any spatial indexes you have at your disposal to make this method as fast as
possible.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNamesType, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a unitOfData that is not defined, it will throw a ArgumentOutOfRangeException.
- ArgumentOutOfRangeException
If you pass in a distanceUnit that is not defined, it will throw a ArgumentOutOfRangeException.
- ArgumentException
If you pass in a targetShape that is invalid, we will throw an ArgumentException.
GetFeaturesWithinDistanceOf(Feature, GeographyUnit, DistanceUnit, double, IEnumerable<string>)
This method returns a collection of InternalFeatures that are within a certain distance of the TargetFeature.
public Collection<Feature> GetFeaturesWithinDistanceOf(Feature targetFeature, GeographyUnit unitOfData, DistanceUnit distanceUnit, double distance, IEnumerable<string> returningColumnNames)
Parameters
targetFeature
FeatureThe feature you wish to find InternalFeatures within a distance of.
unitOfData
GeographyUnitThis parameter is the unit of data that the FeatureSource and TargetShape are in.
distanceUnit
DistanceUnitThis parameter specifies the unit of the distance parameter, such as feet, miles, kilometers, etc.
distance
doubleThis parameter specifies the distance in which to find InternalFeatures around the TargetShape.
returningColumnNames
IEnumerable<string>This parameter allows you to select the field names of the column data you wish to return with each Feature.
Returns
- Collection<Feature>
This method returns a collection of InternalFeatures that are within a certain distance of the TargetFeature.
Remarks
This method returns a collection of InternalFeatures that are within a certain
distance of the TargetShape. It is important to note that the TargetShape and the
FeatureSource must use the same unit, such as feet or meters. If they do not, then the
results will not be predictable or correct. If there is a current transaction and
it is marked as live, then the results will include any transaction Feature that
applies.
The implementation we provided creates a bounding box around the TargetShape using
the distance supplied and then queries the features inside of it. This may not be the
most efficient method for this operation. If your underlying data provider exposes a
more efficient way, we recommend you override the Core version of this method and
implement it.
The default implementation of GetFeaturesWithinDistanceOfCore uses the
GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you
provide your own implementation for this method that will be more efficient. When you
override the GetFeaturesInsideBoundingBoxCore method, we recommend that you use
any spatial indexes you have at your disposal to make this method as fast as
possible.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNames, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a unitOfData that is not defined, it will throw a ArgumentOutOfRangeException.
- ArgumentOutOfRangeException
If you pass in a distanceUnit that is not defined, it will throw a ArgumentOutOfRangeException.
- ArgumentException
If you pass in a targetShape that is invalid, we will throw an ArgumentException.
GetFeaturesWithinDistanceOf(Feature, GeographyUnit, DistanceUnit, double, ReturningColumnsType)
This method returns a collection of InternalFeatures that are within a certain distance of the TargetFeature.
public Collection<Feature> GetFeaturesWithinDistanceOf(Feature targetFeature, GeographyUnit unitOfData, DistanceUnit distanceUnit, double distance, ReturningColumnsType returningColumnNamesType)
Parameters
targetFeature
FeatureThe feature you wish to find InternalFeatures within a distance of.
unitOfData
GeographyUnitThis parameter is the unit of data that the FeatureSource and TargetShape are in.
distanceUnit
DistanceUnitThis parameter specifies the unit of the distance parameter, such as feet, miles, kilometers, etc..
distance
doubleThis parameter specifies the distance in which to find InternalFeatures around the TargetShape.
returningColumnNamesType
ReturningColumnsTypeThis parameter allows you to select the field names of the column data you wish to return with each Feature.
Returns
- Collection<Feature>
This method returns a collection of InternalFeatures that are within a certain distance of the TargetFeature.
Remarks
This method returns a collection of InternalFeatures that are within a certain
distance of the TargetShape. It is important to note that the TargetShape and the
FeatureSource must use the same unit, such as feet or meters. If they do not, then the
results will not be predictable or correct. If there is a current transaction and
it is marked as live, then the results will include any transaction Feature that
applies.
The implementation we provided creates a bounding box around the TargetShape using
the distance supplied and then queries the features inside of it. This may not be the
most efficient method for this operation. If your underlying data provider exposes a
more efficient way, we recommend you override the Core version of this method and
implement it.
The default implementation of GetFeaturesWithinDistanceOfCore uses the
GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you
provide your own implementation for this method that will be more efficient. When you
override the GetFeaturesInsideBoundingBoxCore method, we recommend that you use
any spatial indexes you have at your disposal to make this method as fast as
possible.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a FeatureSource which has not been opened, it will throw an InvalidOperationException.
- ArgumentNullException
If you pass a null as the targetShape, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the returningColumnNamesType, we will throw an ArgumentNullException.
- ArgumentOutOfRangeException
If you pass in a unitOfData that is not defined, it will throw a ArgumentOutOfRangeException.
- ArgumentOutOfRangeException
If you pass in a distanceUnit that is not defined, it will throw a ArgumentOutOfRangeException.
- ArgumentException
If you pass in a targetShape that is invalid, we will throw an ArgumentException.
GetFirstFeaturesWellKnownType()
This method returns the well known type that represents the first feature from FeatureSource.
public WellKnownType GetFirstFeaturesWellKnownType()
Returns
- WellKnownType
This method returns the well known type that represents the first feature from FeatureSource.
Remarks
The default implementation of GetCountCore uses the GetAllRFeaturesCore method to get WellKnownType of the first feature from all features. We strongly recommend that you provide your own implementation for this method that will be more efficient.
Exceptions
- InvalidOperationException
In the event you attempt to call this method on a feature source which has not been opened, it will throw an InvalidOperationException.