User Tools

Site Tools


thinkgeo.mapsuite.core.querytools

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
thinkgeo.mapsuite.core.querytools [2015/09/18 05:49]
admin
thinkgeo.mapsuite.core.querytools [2017/03/16 21:59] (current)
Line 1: Line 1:
 ====== ThinkGeo.MapSuite.Core.QueryTools ====== ====== ThinkGeo.MapSuite.Core.QueryTools ======
 +
 +{{section>​upgrade_map_suite_to_10.0}}
 +
 This is a helper class that allows you to execute various queries. This is a helper class that allows you to execute various queries.
 ===== Inheritance Hierarchy ===== ===== Inheritance Hierarchy =====
Line 8: Line 11:
 ** {{wiki:​PublicMethod.gif|}} QueryTools(FeatureSource) ** ** {{wiki:​PublicMethod.gif|}} QueryTools(FeatureSource) **
  
-This is a constructor for the class.+  * //This is a constructor for the class.//
 == Remarks == == Remarks ==
-Each of the calls in this class thunk through to the FeatureSource passed in.+  * //Each of the calls in this class thunk through to the FeatureSource passed in.//
 == Parameters == == Parameters ==
   * //​featureSource//​   * //​featureSource//​
Line 20: Line 23:
 ** {{wiki:​ProtectedMethod.gif|}} QueryTools() ** ** {{wiki:​ProtectedMethod.gif|}} QueryTools() **
  
-This is a constructor for the class.+  * //This is a constructor for the class.//
 == Remarks == == Remarks ==
-This is the default constructor,​ though it is typically not intended to be used.+  * //This is the default constructor,​ though it is typically not intended to be used.//
 == Parameters == == Parameters ==
 <div newline></​div>​ <div newline></​div>​
Line 28: Line 31:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesByColumnValue(String,​String,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesByColumnValue(String,​String,​ReturningColumnsType) **
  
-Get all of the features by passing a columnName and a specified columValue.+  * //Get all of the features by passing a columnName and a specified columValue.//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 52: Line 55:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesByColumnValue(String,​String,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesByColumnValue(String,​String,​IEnumerable<​String>​) **
  
-Get all of the features by passing a columnName and a specified columValue.+  * //Get all of the features by passing a columnName and a specified columValue.//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 76: Line 79:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesByColumnValue(String,​String) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesByColumnValue(String,​String) **
  
-Get all of the features by passing a columnName and a specified columValue.+  * //Get all of the features by passing a columnName and a specified columValue.//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 96: Line 99:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesContaining(BaseShape,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesContaining(BaseShape,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that contain the target shape.+  * //This method returns all of the InternalFeatures that contain the target shape.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 116: Line 119:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesContaining(BaseShape,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesContaining(BaseShape,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.+  * //This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 136: Line 139:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesContaining(Feature,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesContaining(Feature,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.+  * //This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 156: Line 159:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesContaining(Feature,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesContaining(Feature,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.+  * //This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 176: Line 179:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesCrossing(BaseShape,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesCrossing(BaseShape,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that cross the target shape.+  * //This method returns all of the InternalFeatures that cross the target shape.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 196: Line 199:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesCrossing(BaseShape,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesCrossing(BaseShape,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures that cross the target shape.+  * //This method returns all of the InternalFeatures that cross the target shape.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 216: Line 219:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesCrossing(Feature,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesCrossing(Feature,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that cross the target Feature.+  * //This method returns all of the InternalFeatures that cross the target Feature.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 236: Line 239:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesCrossing(Feature,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesCrossing(Feature,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures that cross the target Feature.+  * //This method returns all of the InternalFeatures that cross the target Feature.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 256: Line 259:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesDisjointed(BaseShape,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesDisjointed(BaseShape,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that disjoint the target Feature.+  * //This method returns all of the InternalFeatures that disjoint the target Feature.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 276: Line 279:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesDisjointed(BaseShape,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesDisjointed(BaseShape,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures that disjoint the target Feature.+  * //This method returns all of the InternalFeatures that disjoint the target Feature.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 296: Line 299:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesDisjointed(Feature,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesDisjointed(Feature,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that disjoint the target Feature.+  * //This method returns all of the InternalFeatures that disjoint the target Feature.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 316: Line 319:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesDisjointed(Feature,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesDisjointed(Feature,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures that disjoint the target Feature.+  * //This method returns all of the InternalFeatures that disjoint the target Feature.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 336: Line 339:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesIntersecting(BaseShape,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesIntersecting(BaseShape,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that intersect the target Feature.+  * //This method returns all of the InternalFeatures that intersect the target Feature.//
 == Remarks == == 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).+  * //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).//
  
 == Return Value == == Return Value ==
Line 356: Line 359:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesIntersecting(BaseShape,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesIntersecting(BaseShape,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures that intersect the target Feature.+  * //This method returns all of the InternalFeatures that intersect the target Feature.//
 == Remarks == == 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).+  * //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).//
  
 == Return Value == == Return Value ==
Line 376: Line 379:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesIntersecting(Feature,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesIntersecting(Feature,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that intersect the target Feature.+  * //This method returns all of the InternalFeatures that intersect the target Feature.//
 == Remarks == == 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).+  * //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).//
  
 == Return Value == == Return Value ==
Line 396: Line 399:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesIntersecting(Feature,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesIntersecting(Feature,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures that intersect the target Feature.+  * //This method returns all of the InternalFeatures that intersect the target Feature.//
 == Remarks == == 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).+  * //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).//
  
 == Return Value == == Return Value ==
Line 416: Line 419:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesOverlapping(BaseShape,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesOverlapping(BaseShape,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that overlap the target Feature.+  * //This method returns all of the InternalFeatures that overlap the target Feature.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 436: Line 439:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesOverlapping(BaseShape,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesOverlapping(BaseShape,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures that overlap the target Feature.+  * //This method returns all of the InternalFeatures that overlap the target Feature.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 456: Line 459:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesOverlapping(Feature,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesOverlapping(Feature,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that overlap the target Feature.+  * //This method returns all of the InternalFeatures that overlap the target Feature.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 476: Line 479:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesOverlapping(Feature,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesOverlapping(Feature,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures that overlap the target Feature.+  * //This method returns all of the InternalFeatures that overlap the target Feature.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 496: Line 499:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesTopologicalEqual(BaseShape,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesTopologicalEqual(BaseShape,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that topologicalEqual the target Feature.+  * //This method returns all of the InternalFeatures that topologicalEqual the target Feature.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 516: Line 519:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesTopologicalEqual(BaseShape,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesTopologicalEqual(BaseShape,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures that topologicalEqual the target Feature.+  * //This method returns all of the InternalFeatures that topologicalEqual the target Feature.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 536: Line 539:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesTopologicalEqual(Feature,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesTopologicalEqual(Feature,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that topologicalEqual the target Feature.+  * //This method returns all of the InternalFeatures that topologicalEqual the target Feature.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 556: Line 559:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesTopologicalEqual(Feature,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesTopologicalEqual(Feature,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures that topologicalEqual the target Feature.+  * //This method returns all of the InternalFeatures that topologicalEqual the target Feature.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 576: Line 579:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesTouching(BaseShape,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesTouching(BaseShape,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that touch the target Feature.+  * //This method returns all of the InternalFeatures that touch the target Feature.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 596: Line 599:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesTouching(BaseShape,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesTouching(BaseShape,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures that touch the target Feature.+  * //This method returns all of the InternalFeatures that touch the target Feature.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 616: Line 619:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesTouching(Feature,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesTouching(Feature,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that touch the target Feature.+  * //This method returns all of the InternalFeatures that touch the target Feature.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 636: Line 639:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesTouching(Feature,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesTouching(Feature,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures that touch the target Feature.+  * //This method returns all of the InternalFeatures that touch the target Feature.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 656: Line 659:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithin(BaseShape,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithin(BaseShape,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that are within the target Feature.+  * //This method returns all of the InternalFeatures that are within the target Feature.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 676: Line 679:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithin(BaseShape,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithin(BaseShape,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures that are within the target Feature.+  * //This method returns all of the InternalFeatures that are within the target Feature.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 696: Line 699:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithin(Feature,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithin(Feature,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that are within the target Feature.+  * //This method returns all of the InternalFeatures that are within the target Feature.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 716: Line 719:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithin(Feature,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithin(Feature,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures that are within the target Feature.+  * //This method returns all of the InternalFeatures that are within the target Feature.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 736: Line 739:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesOutsideBoundingBox(RectangleShape,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesOutsideBoundingBox(RectangleShape,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that are outside of the boundingBox.+  * //This method returns all of the InternalFeatures that are outside of the boundingBox.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 756: Line 759:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesOutsideBoundingBox(RectangleShape,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesOutsideBoundingBox(RectangleShape,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures that are outside of the boundingBox.+  * //This method returns all of the InternalFeatures that are outside of the boundingBox.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 776: Line 779:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesInsideBoundingBox(RectangleShape,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesInsideBoundingBox(RectangleShape,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures that are inside of the boundingBox.+  * //This method returns all of the InternalFeatures that are inside of the boundingBox.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 796: Line 799:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesInsideBoundingBox(RectangleShape,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesInsideBoundingBox(RectangleShape,​ReturningColumnsType) **
  
-This method returns all of the InternalFeatures that are inside of the boundingBox.+  * //This method returns all of the InternalFeatures that are inside of the boundingBox.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 816: Line 819:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(BaseShape,​GeographyUnit,​Int32,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(BaseShape,​GeographyUnit,​Int32,​IEnumerable<​String>​) **
  
-This method returns a user defined number of InternalFeatures that are closest to the TargetShape.+  * //This method returns a user defined number of InternalFeatures that are closest to the TargetShape.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 844: Line 847:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(BaseShape,​GeographyUnit,​Int32,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(BaseShape,​GeographyUnit,​Int32,​ReturningColumnsType) **
  
-This method returns a user defined number of InternalFeatures that are closest to the TargetShape.+  * //This method returns a user defined number of InternalFeatures that are closest to the TargetShape.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 872: Line 875:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(Feature,​GeographyUnit,​Int32,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(Feature,​GeographyUnit,​Int32,​IEnumerable<​String>​) **
  
-This method returns a user defined number of InternalFeatures that are closest to the TargetFeature.+  * //This method returns a user defined number of InternalFeatures that are closest to the TargetFeature.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 900: Line 903:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(Feature,​GeographyUnit,​Int32,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(Feature,​GeographyUnit,​Int32,​ReturningColumnsType) **
  
-This method returns a user defined number of InternalFeatures that are closest to the TargetFeature.+  * //This method returns a user defined number of InternalFeatures that are closest to the TargetFeature.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 928: Line 931:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(Feature,​GeographyUnit,​Int32,​IEnumerable<​String>,​Double,​DistanceUnit) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(Feature,​GeographyUnit,​Int32,​IEnumerable<​String>,​Double,​DistanceUnit) **
  
-This method returns a user defined number of InternalFeatures that are closest to the TargetShape.+  * //This method returns a user defined number of InternalFeatures that are closest to the TargetShape.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 964: Line 967:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(BaseShape,​GeographyUnit,​Int32,​IEnumerable<​String>,​Double,​DistanceUnit) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(BaseShape,​GeographyUnit,​Int32,​IEnumerable<​String>,​Double,​DistanceUnit) **
  
-This method returns a user defined number of InternalFeatures that are closest to the TargetShape.+  * //This method returns a user defined number of InternalFeatures that are closest to the TargetShape.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 1000: Line 1003:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithinDistanceOf(BaseShape,​GeographyUnit,​DistanceUnit,​Double,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithinDistanceOf(BaseShape,​GeographyUnit,​DistanceUnit,​Double,​IEnumerable<​String>​) **
  
-This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.+  * //This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 1032: Line 1035:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithinDistanceOf(BaseShape,​GeographyUnit,​DistanceUnit,​Double,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithinDistanceOf(BaseShape,​GeographyUnit,​DistanceUnit,​Double,​ReturningColumnsType) **
  
-This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.+  * //This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 1064: Line 1067:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithinDistanceOf(Feature,​GeographyUnit,​DistanceUnit,​Double,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithinDistanceOf(Feature,​GeographyUnit,​DistanceUnit,​Double,​IEnumerable<​String>​) **
  
-This method returns a collection of InternalFeatures that are within a certain distance of the TargetFeature.+  * //This method returns a collection of InternalFeatures that are within a certain distance of the TargetFeature.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 1096: Line 1099:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithinDistanceOf(Feature,​GeographyUnit,​DistanceUnit,​Double,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithinDistanceOf(Feature,​GeographyUnit,​DistanceUnit,​Double,​ReturningColumnsType) **
  
-This method returns a collection of InternalFeatures that are within a certain distance of the TargetFeature.+  * //This method returns a collection of InternalFeatures that are within a certain distance of the TargetFeature.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 1128: Line 1131:
 ** {{wiki:​PublicMethod.gif|}} GetFeatureById(String,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeatureById(String,​IEnumerable<​String>​) **
  
-This method returns an InternalFeature based on an Id provided.+  * //This method returns an InternalFeature based on an Id provided.//
 == Remarks == == Remarks ==
-This method returns an InternalFeature based on an Id provided.+  * //This method returns an InternalFeature based on an Id provided.//
  
 == Return Value == == Return Value ==
Line 1148: Line 1151:
 ** {{wiki:​PublicMethod.gif|}} GetFeatureById(String,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeatureById(String,​ReturningColumnsType) **
  
-This method returns an InternalFeature based on an Id provided.+  * //This method returns an InternalFeature based on an Id provided.//
 == Remarks == == Remarks ==
-This method returns an InternalFeature based on an Id provided.+  * //This method returns an InternalFeature based on an Id provided.//
  
 == Return Value == == Return Value ==
Line 1168: Line 1171:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesByIds(IEnumerable<​String>,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesByIds(IEnumerable<​String>,​IEnumerable<​String>​) **
  
-This method returns a collection of InternalFeatures based on the collection of Ids provided.+  * //This method returns a collection of InternalFeatures based on the collection of Ids provided.//
 == Remarks == == Remarks ==
-This method returns a collection of InternalFeatures based on the collection of Ids provided.+  * //This method returns a collection of InternalFeatures based on the collection of Ids provided.//
  
 == Return Value == == Return Value ==
Line 1188: Line 1191:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesByIds(IEnumerable<​String>,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesByIds(IEnumerable<​String>,​ReturningColumnsType) **
  
-This method returns a collection of InternalFeatures based on the collection of Ids provided.+  * //This method returns a collection of InternalFeatures based on the collection of Ids provided.//
 == Remarks == == Remarks ==
-This method returns a collection of InternalFeatures based on the collection of Ids provided.+  * //This method returns a collection of InternalFeatures based on the collection of Ids provided.//
  
 == Return Value == == Return Value ==
Line 1208: Line 1211:
 ** {{wiki:​PublicMethod.gif|}} GetBoundingBoxById(String) ** ** {{wiki:​PublicMethod.gif|}} GetBoundingBoxById(String) **
  
-This method returns the bounding box for the Id specified.+  * //This method returns the bounding box for the Id specified.//
 == Remarks == == Remarks ==
-This method returns the bounding box for the Id specified.+  * //This method returns the bounding box for the Id specified.//
  
 == Return Value == == Return Value ==
Line 1224: Line 1227:
 ** {{wiki:​PublicMethod.gif|}} GetBoundingBoxesByIds(IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetBoundingBoxesByIds(IEnumerable<​String>​) **
  
-This method returns a collection of bounding boxes based on the collection of Ids provided.+  * //This method returns a collection of bounding boxes based on the collection of Ids provided.//
 == Remarks == == Remarks ==
-This method returns a collection of bounding boxes based on the collection of Ids provided.+  * //This method returns a collection of bounding boxes based on the collection of Ids provided.//
  
 == Return Value == == Return Value ==
Line 1240: Line 1243:
 ** {{wiki:​PublicMethod.gif|}} GetColumns() ** ** {{wiki:​PublicMethod.gif|}} GetColumns() **
  
-This method returns the collection of columns for this FeatureSource.+  * //This method returns the collection of columns for this FeatureSource.//
 == Remarks == == Remarks ==
-This method returns the collection of columns for this FeatureSource.+  * //This method returns the collection of columns for this FeatureSource.//
  
 == Return Value == == Return Value ==
Line 1252: Line 1255:
 ** {{wiki:​PublicMethod.gif|}} GetCount() ** ** {{wiki:​PublicMethod.gif|}} GetCount() **
  
-This method returns the count of all of the InternalFeatures in the FeatureSource.+  * //This method returns the count of all of the InternalFeatures in the FeatureSource.//
 == Remarks == == Remarks ==
-This method returns the count of all of the InternalFeatures in the FeatureSource.+  * //This method returns the count of all of the InternalFeatures in the FeatureSource.//
  
 == Return Value == == Return Value ==
Line 1264: Line 1267:
 ** {{wiki:​PublicMethod.gif|}} GetAllFeatures(IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetAllFeatures(IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures in the FeatureSource.+  * //This method returns all of the InternalFeatures in the FeatureSource.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 1280: Line 1283:
 ** {{wiki:​PublicMethod.gif|}} GetAllFeatures(ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetAllFeatures(ReturningColumnsType) **
  
-This method returns all of the InternalFeatures in the FeatureSource.+  * //This method returns all of the InternalFeatures in the FeatureSource.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 1296: Line 1299:
 ** {{wiki:​PublicMethod.gif|}} ExecuteNonQuery(String) ** ** {{wiki:​PublicMethod.gif|}} ExecuteNonQuery(String) **
  
-Executes a SQL statement against a connection object.+  * //Executes a SQL statement against a connection object.//
 == Remarks == == 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.+  * //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 == == Return Value ==
Line 1312: Line 1315:
 ** {{wiki:​PublicMethod.gif|}} ExecuteScalar(String) ** ** {{wiki:​PublicMethod.gif|}} 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.+  * //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.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 1328: Line 1331:
 ** {{wiki:​PublicMethod.gif|}} ExecuteQuery(String) ** ** {{wiki:​PublicMethod.gif|}} ExecuteQuery(String) **
  
-Executes the query and returns the result returned by the query.+  * //Executes the query and returns the result returned by the query.//
 == Remarks == == 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.+  * //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.//
  
 == Return Value == == Return Value ==
Line 1344: Line 1347:
 ** {{wiki:​PublicMethod.gif|}} ToString() ** ** {{wiki:​PublicMethod.gif|}} ToString() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1356: Line 1359:
 ** {{wiki:​PublicMethod.gif|}} Equals(Object) ** ** {{wiki:​PublicMethod.gif|}} Equals(Object) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1372: Line 1375:
 ** {{wiki:​PublicMethod.gif|}} GetHashCode() ** ** {{wiki:​PublicMethod.gif|}} GetHashCode() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1384: Line 1387:
 ** {{wiki:​PublicMethod.gif|}} GetType() ** ** {{wiki:​PublicMethod.gif|}} GetType() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1397: Line 1400:
 ** {{wiki:​ProtectedMethod.gif|}} Finalize() ** ** {{wiki:​ProtectedMethod.gif|}} Finalize() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1409: Line 1412:
 ** {{wiki:​ProtectedMethod.gif|}} MemberwiseClone() ** ** {{wiki:​ProtectedMethod.gif|}} MemberwiseClone() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
thinkgeo.mapsuite.core.querytools.1442555388.txt.gz · Last modified: 2015/09/18 05:49 by admin