Note: The page was created before Map Suite 10. Map Suite 10.0 organized many classes into new namespaces and assemblies as well as had a few minor breaks in compatibility. The majority of previously built code should work without modification assuming the new namespaces are added. For guidance on upgrading your existing code, please check out MapSuite 10 Upgrade Guide.
This is a helper class that allows you to execute various queries.
Inheritance Hierarchy
Members Summary
Public Constructors
QueryTools(FeatureSource)
Parameters
Protected Constructors
QueryTools()
Parameters
Public Methods
ExecuteQuery(String)
Return Value
Parameters
GetFeaturesByColumnValue(String,String,ReturningColumnsType)
Return Value
Parameters
GetFeaturesByColumnValue(String,String,IEnumerable<String>)
Return Value
Parameters
GetFeaturesByColumnValue(String,String)
Return Value
Parameters
GetFeaturesContaining(BaseShape,IEnumerable<String>)
Return Value
Parameters
GetFeaturesContaining(BaseShape,ReturningColumnsType)
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.
Return Value
Parameters
GetFeaturesContaining(Feature,IEnumerable<String>)
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.
Return Value
Parameters
GetFeaturesContaining(Feature,ReturningColumnsType)
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.
Return Value
Parameters
GetFeaturesCrossing(BaseShape,IEnumerable<String>)
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.
Return Value
Parameters
GetFeaturesCrossing(BaseShape,ReturningColumnsType)
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.
Return Value
Parameters
GetFeaturesCrossing(Feature,IEnumerable<String>)
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.
Return Value
Parameters
GetFeaturesCrossing(Feature,ReturningColumnsType)
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.
Return Value
Parameters
GetFeaturesDisjointed(BaseShape,IEnumerable<String>)
Return Value
Parameters
GetFeaturesDisjointed(BaseShape,ReturningColumnsType)
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.
Return Value
Parameters
GetFeaturesDisjointed(Feature,IEnumerable<String>)
Return Value
Parameters
GetFeaturesDisjointed(Feature,ReturningColumnsType)
Return Value
Parameters
GetFeaturesIntersecting(BaseShape,IEnumerable<String>)
Return Value
Parameters
GetFeaturesIntersecting(BaseShape,ReturningColumnsType)
Return Value
Parameters
GetFeaturesIntersecting(Feature,IEnumerable<String>)
Return Value
Parameters
GetFeaturesIntersecting(Feature,ReturningColumnsType)
Return Value
Parameters
GetFeaturesOverlapping(BaseShape,IEnumerable<String>)
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.
Return Value
Parameters
GetFeaturesOverlapping(BaseShape,ReturningColumnsType)
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.
Return Value
Parameters
GetFeaturesOverlapping(Feature,IEnumerable<String>)
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.
Return Value
Parameters
GetFeaturesOverlapping(Feature,ReturningColumnsType)
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.
Return Value
Parameters
GetFeaturesTopologicalEqual(BaseShape,IEnumerable<String>)
Return Value
Parameters
GetFeaturesTopologicalEqual(BaseShape,ReturningColumnsType)
Return Value
Parameters
GetFeaturesTopologicalEqual(Feature,IEnumerable<String>)
Return Value
Parameters
GetFeaturesTopologicalEqual(Feature,ReturningColumnsType)
Return Value
Parameters
GetFeaturesTouching(BaseShape,IEnumerable<String>)
Return Value
Parameters
GetFeaturesTouching(BaseShape,ReturningColumnsType)
Return Value
Parameters
GetFeaturesTouching(Feature,IEnumerable<String>)
Return Value
Parameters
GetFeaturesTouching(Feature,ReturningColumnsType)
Return Value
Parameters
GetFeaturesWithin(BaseShape,IEnumerable<String>)
Return Value
Parameters
GetFeaturesWithin(BaseShape,ReturningColumnsType)
Return Value
Parameters
GetFeaturesWithin(Feature,IEnumerable<String>)
Return Value
Parameters
GetFeaturesWithin(Feature,ReturningColumnsType)
Return Value
Parameters
GetFeaturesOutsideBoundingBox(RectangleShape,IEnumerable<String>)
Return Value
Parameters
GetFeaturesOutsideBoundingBox(RectangleShape,ReturningColumnsType)
Return Value
Parameters
GetFeaturesInsideBoundingBox(RectangleShape,IEnumerable<String>)
Return Value
Parameters
GetFeaturesInsideBoundingBox(RectangleShape,ReturningColumnsType)
Return Value
Parameters
GetFeaturesNearestTo(BaseShape,GeographyUnit,Int32,IEnumerable<String>)
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.
Return Value
Parameters
unitOfData
-
Description:This parameter is the unit of data that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
GetFeaturesNearestTo(BaseShape,GeographyUnit,Int32,ReturningColumnsType)
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.
Return Value
Parameters
unitOfData
-
Description:This parameter is the unit of data that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
GetFeaturesNearestTo(Feature,GeographyUnit,Int32,IEnumerable<String>)
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.
Return Value
Parameters
unitOfData
-
Description:This parameter is the unit of data that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
GetFeaturesNearestTo(Feature,GeographyUnit,Int32,ReturningColumnsType)
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.
Return Value
Parameters
unitOfData
-
Description:This parameter is the unit of data that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
GetFeaturesNearestTo(Feature,GeographyUnit,Int32,IEnumerable<String>,Double,DistanceUnit)
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.
Return Value
Parameters
unitOfData
-
Description:This parameter is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
GetFeaturesNearestTo(BaseShape,GeographyUnit,Int32,IEnumerable<String>,Double,DistanceUnit)
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.
Return Value
Parameters
unitOfData
-
Description:This parameter is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
GetFeaturesWithinDistanceOf(BaseShape,GeographyUnit,DistanceUnit,Double,IEnumerable<String>)
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.
Return Value
Parameters
distanceUnit
-
Description:This parameter specifies the unit of the distance parameter, such as feet, miles, kilometers, etc.
GetFeaturesWithinDistanceOf(BaseShape,GeographyUnit,DistanceUnit,Double,ReturningColumnsType)
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.
Return Value
Parameters
distanceUnit
-
Description:This parameter specifies the unit of the distance parameter, such as feet, miles, kilometers, etc.
GetFeaturesWithinDistanceOf(Feature,GeographyUnit,DistanceUnit,Double,IEnumerable<String>)
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.
Return Value
Parameters
distanceUnit
-
Description:This parameter specifies the unit of the distance parameter, such as feet, miles, kilometers, etc.
GetFeaturesWithinDistanceOf(Feature,GeographyUnit,DistanceUnit,Double,ReturningColumnsType)
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.
Return Value
Parameters
distanceUnit
-
Description:This parameter specifies the unit of the distance parameter, such as feet, miles, kilometers, etc..
GetFeatureById(String,IEnumerable<String>)
Return Value
Parameters
GetFeatureById(String,ReturningColumnsType)
Return Value
Parameters
GetFeaturesByIds(IEnumerable<String>,IEnumerable<String>)
Return Value
Parameters
GetFeaturesByIds(IEnumerable<String>,ReturningColumnsType)
Return Value
Parameters
GetBoundingBoxById(String)
Return Value
Parameters
GetBoundingBoxesByIds(IEnumerable<String>)
Return Value
Parameters
GetColumns()
Return Value
Parameters
GetCount()
Return Value
Parameters
GetAllFeatures(IEnumerable<String>)
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.
Return Value
Parameters
GetAllFeatures(ReturningColumnsType)
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.
Return Value
Parameters
ExecuteNonQuery(String)
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.
Return Value
Parameters
ExecuteScalar(String)
Return Value
Parameters
ToString()
Return Value
Type:String
Description:N/A
Parameters
Equals(Object)
Return Value
Type:Boolean
Description:N/A
Parameters
obj
Type:Object
Description:N/A
GetHashCode()
Return Value
Type:Int32
Description:N/A
Parameters
GetType()
Return Value
Type:Type
Description:N/A
Parameters
Protected Methods
Finalize()
Return Value
Type:Void
Description:N/A
Parameters
MemberwiseClone()
Return Value
Type:Object
Description:N/A
Parameters
Public 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
Return Value
Protected Properties
Public Events