User Tools

Site Tools


thinkgeo.mapsuite.portablecore.inmemorygridfeaturesource

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.portablecore.inmemorygridfeaturesource [2015/09/21 08:11]
admin
thinkgeo.mapsuite.portablecore.inmemorygridfeaturesource [2017/03/16 21:59] (current)
Line 1: Line 1:
 ====== ThinkGeo.MapSuite.Core.InMemoryGridFeatureSource ====== ====== ThinkGeo.MapSuite.Core.InMemoryGridFeatureSource ======
 +
 +{{section>​upgrade_map_suite_to_10.0}}
 +
 Reads cell data from a grid file and displays them in appropriate colors based on their values. Reads cell data from a grid file and displays them in appropriate colors based on their values.
 ===== Inheritance Hierarchy ===== ===== Inheritance Hierarchy =====
Line 9: Line 12:
 ** {{wiki:​PublicMethod.gif|}} InMemoryGridFeatureSource() ** ** {{wiki:​PublicMethod.gif|}} InMemoryGridFeatureSource() **
  
-This is the constructor the for the class. If you use this constructor then you need to set the required properties manually.+  * //This is the constructor the for the class. If you use this constructor then you need to set the required properties manually.//
 == Remarks == == Remarks ==
-None+  * //None//
 == Parameters == == Parameters ==
 <div newline></​div>​ <div newline></​div>​
 ** {{wiki:​PublicMethod.gif|}} InMemoryGridFeatureSource(GridCell[,​]) ** ** {{wiki:​PublicMethod.gif|}} InMemoryGridFeatureSource(GridCell[,​]) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Parameters == == Parameters ==
   * //​gridMatrix//​   * //​gridMatrix//​
Line 29: Line 32:
 ** {{wiki:​PublicMethod.gif|}} GenerateGridMatrix() ** ** {{wiki:​PublicMethod.gif|}} GenerateGridMatrix() **
  
-This method generates the cell matrix based on NumberOfColumns and NumberOfRows of current grid.+  * //This method generates the cell matrix based on NumberOfColumns and NumberOfRows of current grid.//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 39: Line 42:
 == Parameters == == Parameters ==
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​PublicMethod.gif|}} ​GetBoundingBox() **+** {{wiki:​PublicMethod.gif|}} ​GetBoundingBoxByIds(IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 50: Line 53:
  
 == Parameters == == Parameters ==
 +  * //ids//
 +    * Type:​IEnumerable<​String>​
 +    * Description:​N/​A
 +
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​PublicMethod.gif|}} ​CloneDeep() **+** {{wiki:​PublicMethod.gif|}} ​GetBoundingBoxesByIds(IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:​[[ThinkGeo.MapSuite.Core.FeatureSource|FeatureSource]]+  * Type:Collection<​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]>
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
 +  * //ids//
 +    * Type:​IEnumerable<​String>​
 +    * Description:​N/​A
 +
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​PublicMethod.gif|}} ​Open() **+** {{wiki:​PublicMethod.gif|}} ​GetFirstFeaturesWellKnownType() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:Void+  * Type:[[ThinkGeo.MapSuite.Core.WellKnownType|WellKnownType]]
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
 +<div newline></​div>​
 +** {{wiki:​PublicMethod.gif|}} CanGetBoundingBoxQuickly() **
 +
 +  * //N/A//
 +== Remarks ==
 +  * //N/A//
 +
 +== Return Value ==
 +  * Type:​Boolean
 +  * Description:​N/​A
 +
 +== Parameters ==
 +<div newline></​div>​
 +** {{wiki:​PublicMethod.gif|}} CanGetCountQuickly() **
 +
 +  * //N/A//
 +== Remarks ==
 +  * //N/A//
 +
 +== Return Value ==
 +  * Type:​Boolean
 +  * Description:​N/​A
 +
 +== Parameters ==
 +<div newline></​div>​
 +** {{wiki:​PublicMethod.gif|}} GetDistinctColumnValues(String) **
 +
 +  * //N/A//
 +== Remarks ==
 +  * //N/A//
 +
 +== Return Value ==
 +  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.DistinctColumnValue|DistinctColumnValue]]>​
 +  * Description:​N/​A
 +
 +== Parameters ==
 +  * //​columnName//​
 +    * Type:String
 +    * Description:​N/​A
 +
 +<div newline></​div>​
 +** {{wiki:​PublicMethod.gif|}} GetAllFeatures(ReturningColumnsType,​Int32) **
 +
 +  * //N/A//
 +== Remarks ==
 +  * //N/A//
 +
 +== Return Value ==
 +  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​
 +  * Description:​N/​A
 +
 +== Parameters ==
 +  * //​returningColumnTypes//​
 +    * Type:​[[ThinkGeo.MapSuite.Core.ReturningColumnsType|ReturningColumnsType]]
 +    * Description:​N/​A
 +
 +  * //​startIndex//​
 +    * Type:Int32
 +    * Description:​N/​A
 +
 +<div newline></​div>​
 +** {{wiki:​PublicMethod.gif|}} GetAllFeatures(ReturningColumnsType,​Int32,​Int32) **
 +
 +  * //N/A//
 +== Remarks ==
 +  * //N/A//
 +
 +== Return Value ==
 +  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​
 +  * Description:​N/​A
 +
 +== Parameters ==
 +  * //​returningColumnTypes//​
 +    * Type:​[[ThinkGeo.MapSuite.Core.ReturningColumnsType|ReturningColumnsType]]
 +    * Description:​N/​A
 +
 +  * //​startIndex//​
 +    * Type:Int32
 +    * Description:​N/​A
 +
 +  * //​takeCount//​
 +    * Type:Int32
 +    * Description:​N/​A
 +
 +<div newline></​div>​
 +** {{wiki:​PublicMethod.gif|}} GetAllFeatures(IEnumerable<​String>,​Int32,​Int32) **
 +
 +  * //N/A//
 +== Remarks ==
 +  * //N/A//
 +
 +== Return Value ==
 +  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​
 +  * Description:​N/​A
 +
 +== Parameters ==
 +  * //​returningColumnNames//​
 +    * Type:​IEnumerable<​String>​
 +    * Description:​N/​A
 +
 +  * //​startIndex//​
 +    * Type:Int32
 +    * Description:​N/​A
 +
 +  * //​takeCount//​
 +    * Type:Int32
 +    * Description:​N/​A
 +
 <div newline></​div>​ <div newline></​div>​
 ** {{wiki:​PublicMethod.gif|}} Close() ** ** {{wiki:​PublicMethod.gif|}} Close() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 89: Line 208:
 ** {{wiki:​PublicMethod.gif|}} BeginTransaction() ** ** {{wiki:​PublicMethod.gif|}} BeginTransaction() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 101: Line 220:
 ** {{wiki:​PublicMethod.gif|}} AddFeature(Feature) ** ** {{wiki:​PublicMethod.gif|}} AddFeature(Feature) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 117: Line 236:
 ** {{wiki:​PublicMethod.gif|}} AddFeature(BaseShape) ** ** {{wiki:​PublicMethod.gif|}} AddFeature(BaseShape) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 133: Line 252:
 ** {{wiki:​PublicMethod.gif|}} AddFeature(BaseShape,​IDictionary<​String,​String>​) ** ** {{wiki:​PublicMethod.gif|}} AddFeature(BaseShape,​IDictionary<​String,​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 153: Line 272:
 ** {{wiki:​PublicMethod.gif|}} DeleteFeature(String) ** ** {{wiki:​PublicMethod.gif|}} DeleteFeature(String) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 169: Line 288:
 ** {{wiki:​PublicMethod.gif|}} UpdateFeature(Feature) ** ** {{wiki:​PublicMethod.gif|}} UpdateFeature(Feature) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 185: Line 304:
 ** {{wiki:​PublicMethod.gif|}} UpdateFeature(BaseShape) ** ** {{wiki:​PublicMethod.gif|}} UpdateFeature(BaseShape) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 201: Line 320:
 ** {{wiki:​PublicMethod.gif|}} UpdateFeature(BaseShape,​IDictionary<​String,​String>​) ** ** {{wiki:​PublicMethod.gif|}} UpdateFeature(BaseShape,​IDictionary<​String,​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 221: Line 340:
 ** {{wiki:​PublicMethod.gif|}} RollbackTransaction() ** ** {{wiki:​PublicMethod.gif|}} RollbackTransaction() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 233: Line 352:
 ** {{wiki:​PublicMethod.gif|}} CommitTransaction() ** ** {{wiki:​PublicMethod.gif|}} CommitTransaction() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 245: Line 364:
 ** {{wiki:​PublicMethod.gif|}} AddColumn(FeatureSourceColumn) ** ** {{wiki:​PublicMethod.gif|}} AddColumn(FeatureSourceColumn) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 261: Line 380:
 ** {{wiki:​PublicMethod.gif|}} DeleteColumn(String) ** ** {{wiki:​PublicMethod.gif|}} DeleteColumn(String) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 277: Line 396:
 ** {{wiki:​PublicMethod.gif|}} UpdateColumn(String,​FeatureSourceColumn) ** ** {{wiki:​PublicMethod.gif|}} UpdateColumn(String,​FeatureSourceColumn) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 297: Line 416:
 ** {{wiki:​PublicMethod.gif|}} GetAllFeatures(IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetAllFeatures(IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 313: Line 432:
 ** {{wiki:​PublicMethod.gif|}} GetAllFeatures(ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetAllFeatures(ReturningColumnsType) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 329: Line 448:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesOutsideBoundingBox(RectangleShape,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesOutsideBoundingBox(RectangleShape,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 349: Line 468:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesOutsideBoundingBox(RectangleShape,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesOutsideBoundingBox(RectangleShape,​ReturningColumnsType) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 369: Line 488:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesInsideBoundingBox(RectangleShape,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesInsideBoundingBox(RectangleShape,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 389: Line 508:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesInsideBoundingBox(RectangleShape,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesInsideBoundingBox(RectangleShape,​ReturningColumnsType) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 404: Line 523:
   * //​returningColumnNamesType//​   * //​returningColumnNamesType//​
     * Type:​[[ThinkGeo.MapSuite.Core.ReturningColumnsType|ReturningColumnsType]]     * Type:​[[ThinkGeo.MapSuite.Core.ReturningColumnsType|ReturningColumnsType]]
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​PublicMethod.gif|}} GetFeaturesForDrawing(RectangleShape,​Double,​Double,​IEnumerable<​String>,​IEnumerable<​String>​) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​ 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //​boundingBox//​ 
-    * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
-    * Description:​N/​A 
- 
-  * //​screenWidth//​ 
-    * Type:Double 
-    * Description:​N/​A 
- 
-  * //​screenHeight//​ 
-    * Type:Double 
-    * Description:​N/​A 
- 
-  * //​returningColumnNames//​ 
-    * Type:​IEnumerable<​String>​ 
-    * Description:​N/​A 
- 
-  * //filters// 
-    * Type:​IEnumerable<​String>​ 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​PublicMethod.gif|}} ApplyFilters(IEnumerable<​Feature>,​IEnumerable<​String>,​IEnumerable<​String>​) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​ 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //​features//​ 
-    * Type:​IEnumerable<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​ 
-    * Description:​N/​A 
- 
-  * //​returningColumnNames//​ 
-    * Type:​IEnumerable<​String>​ 
-    * Description:​N/​A 
- 
-  * //filters// 
-    * Type:​IEnumerable<​String>​ 
     * Description:​N/​A     * Description:​N/​A
  
Line 465: Line 528:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesForDrawing(RectangleShape,​Double,​Double,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesForDrawing(RectangleShape,​Double,​Double,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 493: Line 556:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesForDrawing(RectangleShape,​Double,​Double,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesForDrawing(RectangleShape,​Double,​Double,​ReturningColumnsType) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 521: Line 584:
 ** {{wiki:​PublicMethod.gif|}} SpatialQuery(BaseShape,​QueryType,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} SpatialQuery(BaseShape,​QueryType,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 539: Line 602:
  
   * //​returningColumnNames//​   * //​returningColumnNames//​
-    * Type:​IEnumerable<​String>​ 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​PublicMethod.gif|}} SpatialQuery(BaseShape,​QueryType,​IEnumerable<​String>,​IEnumerable<​String>​) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​ 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //​targetShape//​ 
-    * Type:​[[ThinkGeo.MapSuite.Core.BaseShape|BaseShape]] 
-    * Description:​N/​A 
- 
-  * //​queryType//​ 
-    * Type:​[[ThinkGeo.MapSuite.Core.QueryType|QueryType]] 
-    * Description:​N/​A 
- 
-  * //​returningColumnNames//​ 
-    * Type:​IEnumerable<​String>​ 
-    * Description:​N/​A 
- 
-  * //filters// 
     * Type:​IEnumerable<​String>​     * Type:​IEnumerable<​String>​
     * Description:​N/​A     * Description:​N/​A
Line 573: Line 608:
 ** {{wiki:​PublicMethod.gif|}} SpatialQuery(BaseShape,​QueryType,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} SpatialQuery(BaseShape,​QueryType,​ReturningColumnsType) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 597: Line 632:
 ** {{wiki:​PublicMethod.gif|}} SpatialQuery(Feature,​QueryType,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} SpatialQuery(Feature,​QueryType,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 621: Line 656:
 ** {{wiki:​PublicMethod.gif|}} SpatialQuery(Feature,​QueryType,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} SpatialQuery(Feature,​QueryType,​ReturningColumnsType) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 645: Line 680:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(BaseShape,​GeographyUnit,​Int32,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(BaseShape,​GeographyUnit,​Int32,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 673: Line 708:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(BaseShape,​GeographyUnit,​Int32,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(BaseShape,​GeographyUnit,​Int32,​ReturningColumnsType) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 701: Line 736:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(Feature,​GeographyUnit,​Int32,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(Feature,​GeographyUnit,​Int32,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 729: Line 764:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(Feature,​GeographyUnit,​Int32,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(Feature,​GeographyUnit,​Int32,​ReturningColumnsType) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 757: Line 792:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(BaseShape,​GeographyUnit,​Int32,​IEnumerable<​String>,​Double,​DistanceUnit) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(BaseShape,​GeographyUnit,​Int32,​IEnumerable<​String>,​Double,​DistanceUnit) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 793: Line 828:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(Feature,​GeographyUnit,​Int32,​IEnumerable<​String>,​Double,​DistanceUnit) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesNearestTo(Feature,​GeographyUnit,​Int32,​IEnumerable<​String>,​Double,​DistanceUnit) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 829: Line 864:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithinDistanceOf(BaseShape,​GeographyUnit,​DistanceUnit,​Double,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithinDistanceOf(BaseShape,​GeographyUnit,​DistanceUnit,​Double,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 861: Line 896:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithinDistanceOf(BaseShape,​GeographyUnit,​DistanceUnit,​Double,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithinDistanceOf(BaseShape,​GeographyUnit,​DistanceUnit,​Double,​ReturningColumnsType) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 893: Line 928:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithinDistanceOf(Feature,​GeographyUnit,​DistanceUnit,​Double,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithinDistanceOf(Feature,​GeographyUnit,​DistanceUnit,​Double,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 925: Line 960:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithinDistanceOf(Feature,​GeographyUnit,​DistanceUnit,​Double,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesWithinDistanceOf(Feature,​GeographyUnit,​DistanceUnit,​Double,​ReturningColumnsType) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 957: Line 992:
 ** {{wiki:​PublicMethod.gif|}} GetFeatureById(String,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeatureById(String,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 977: Line 1012:
 ** {{wiki:​PublicMethod.gif|}} GetFeatureById(String,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeatureById(String,​ReturningColumnsType) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 992: Line 1027:
   * //​returningColumnNamesType//​   * //​returningColumnNamesType//​
     * Type:​[[ThinkGeo.MapSuite.Core.ReturningColumnsType|ReturningColumnsType]]     * Type:​[[ThinkGeo.MapSuite.Core.ReturningColumnsType|ReturningColumnsType]]
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​PublicMethod.gif|}} GetFeaturesByIds(IEnumerable<​String>,​IEnumerable<​String>,​IEnumerable<​String>​) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​ 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //ids// 
-    * Type:​IEnumerable<​String>​ 
-    * Description:​N/​A 
- 
-  * //​returningColumnNames//​ 
-    * Type:​IEnumerable<​String>​ 
-    * Description:​N/​A 
- 
-  * //filters// 
-    * Type:​IEnumerable<​String>​ 
     * Description:​N/​A     * Description:​N/​A
  
Line 1021: Line 1032:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesByIds(IEnumerable<​String>,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesByIds(IEnumerable<​String>,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1041: Line 1052:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesByIds(IEnumerable<​String>,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesByIds(IEnumerable<​String>,​ReturningColumnsType) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1061: Line 1072:
 ** {{wiki:​PublicMethod.gif|}} GetBoundingBoxById(String) ** ** {{wiki:​PublicMethod.gif|}} GetBoundingBoxById(String) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1072: Line 1083:
   * //id//   * //id//
     * Type:String     * Type:String
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​PublicMethod.gif|}} GetBoundingBoxByIds(IEnumerable<​String>​) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //ids// 
-    * Type:​IEnumerable<​String>​ 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​PublicMethod.gif|}} GetBoundingBoxesByIds(IEnumerable<​String>​) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]>​ 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //ids// 
-    * Type:​IEnumerable<​String>​ 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​PublicMethod.gif|}} GetFirstFeaturesWellKnownType() ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​[[ThinkGeo.MapSuite.Core.WellKnownType|WellKnownType]] 
-  * Description:​N/​A 
- 
-== Parameters == 
-<div newline></​div>​ 
-** {{wiki:​PublicMethod.gif|}} CanGetBoundingBoxQuickly() ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Boolean 
-  * Description:​N/​A 
- 
-== Parameters == 
-<div newline></​div>​ 
-** {{wiki:​PublicMethod.gif|}} CanGetCountQuickly() ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Boolean 
-  * Description:​N/​A 
- 
-== Parameters == 
-<div newline></​div>​ 
-** {{wiki:​PublicMethod.gif|}} GetDistinctColumnValues(String) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.DistinctColumnValue|DistinctColumnValue]]>​ 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //​columnName//​ 
-    * Type:String 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​PublicMethod.gif|}} GetAllFeatures(ReturningColumnsType,​Int32) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​ 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //​returningColumnTypes//​ 
-    * Type:​[[ThinkGeo.MapSuite.Core.ReturningColumnsType|ReturningColumnsType]] 
-    * Description:​N/​A 
- 
-  * //​startIndex//​ 
-    * Type:Int32 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​PublicMethod.gif|}} GetAllFeatures(ReturningColumnsType,​Int32,​Int32) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​ 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //​returningColumnTypes//​ 
-    * Type:​[[ThinkGeo.MapSuite.Core.ReturningColumnsType|ReturningColumnsType]] 
-    * Description:​N/​A 
- 
-  * //​startIndex//​ 
-    * Type:Int32 
-    * Description:​N/​A 
- 
-  * //​takeCount//​ 
-    * Type:Int32 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​PublicMethod.gif|}} GetAllFeatures(IEnumerable<​String>,​Int32,​Int32) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​ 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //​returningColumnNames//​ 
-    * Type:​IEnumerable<​String>​ 
-    * Description:​N/​A 
- 
-  * //​startIndex//​ 
-    * Type:Int32 
-    * Description:​N/​A 
- 
-  * //​takeCount//​ 
-    * Type:Int32 
     * Description:​N/​A     * Description:​N/​A
  
Line 1229: Line 1088:
 ** {{wiki:​PublicMethod.gif|}} ExecuteNonQuery(String) ** ** {{wiki:​PublicMethod.gif|}} ExecuteNonQuery(String) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1245: Line 1104:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesByColumnValue(String,​String,​ReturningColumnsType) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesByColumnValue(String,​String,​ReturningColumnsType) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1269: Line 1128:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesByColumnValue(String,​String,​IEnumerable<​String>​) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesByColumnValue(String,​String,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1293: Line 1152:
 ** {{wiki:​PublicMethod.gif|}} GetFeaturesByColumnValue(String,​String) ** ** {{wiki:​PublicMethod.gif|}} GetFeaturesByColumnValue(String,​String) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1313: Line 1172:
 ** {{wiki:​PublicMethod.gif|}} ExecuteScalar(String) ** ** {{wiki:​PublicMethod.gif|}} ExecuteScalar(String) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1329: Line 1188:
 ** {{wiki:​PublicMethod.gif|}} ExecuteQuery(String) ** ** {{wiki:​PublicMethod.gif|}} ExecuteQuery(String) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:DataTable+  * Type:[[ThinkGeo.MapSuite.Portable.GeoDataTable|GeoDataTable]]
   * Description:​N/​A   * Description:​N/​A
  
Line 1345: Line 1204:
 ** {{wiki:​PublicMethod.gif|}} GetColumns() ** ** {{wiki:​PublicMethod.gif|}} GetColumns() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1357: Line 1216:
 ** {{wiki:​PublicMethod.gif|}} RefreshColumns() ** ** {{wiki:​PublicMethod.gif|}} RefreshColumns() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1369: Line 1228:
 ** {{wiki:​PublicMethod.gif|}} GetCount() ** ** {{wiki:​PublicMethod.gif|}} GetCount() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
   * Type:Int32   * Type:Int32
 +  * Description:​N/​A
 +
 +== Parameters ==
 +<div newline></​div>​
 +** {{wiki:​PublicMethod.gif|}} GetBoundingBox() **
 +
 +  * //N/A//
 +== Remarks ==
 +  * //N/A//
 +
 +== Return Value ==
 +  * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]
 +  * Description:​N/​A
 +
 +== Parameters ==
 +<div newline></​div>​
 +** {{wiki:​PublicMethod.gif|}} CloneDeep() **
 +
 +  * //N/A//
 +== Remarks ==
 +  * //N/A//
 +
 +== Return Value ==
 +  * Type:​[[ThinkGeo.MapSuite.Core.FeatureSource|FeatureSource]]
 +  * Description:​N/​A
 +
 +== Parameters ==
 +<div newline></​div>​
 +** {{wiki:​PublicMethod.gif|}} Open() **
 +
 +  * //N/A//
 +== Remarks ==
 +  * //N/A//
 +
 +== Return Value ==
 +  * Type:Void
   * Description:​N/​A   * Description:​N/​A
  
Line 1381: Line 1276:
 ** {{wiki:​PublicMethod.gif|}} ToString() ** ** {{wiki:​PublicMethod.gif|}} ToString() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1393: Line 1288:
 ** {{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 1409: Line 1304:
 ** {{wiki:​PublicMethod.gif|}} GetHashCode() ** ** {{wiki:​PublicMethod.gif|}} GetHashCode() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1421: Line 1316:
 ** {{wiki:​PublicMethod.gif|}} GetType() ** ** {{wiki:​PublicMethod.gif|}} GetType() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1433: Line 1328:
 ** {{wiki:​PublicMethod.gif|}}{{wiki:​Static.gif|}} GenerateGridMatrix(GridDefinition,​GridInterpolationModel) ** ** {{wiki:​PublicMethod.gif|}}{{wiki:​Static.gif|}} GenerateGridMatrix(GridDefinition,​GridInterpolationModel) **
  
-This method calculates all the cells in the grid and returns the result in the form of the GridCell matrix+  * //This method calculates all the cells in the grid and returns the result in the form of the GridCell matrix//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1453: Line 1348:
 ** {{wiki:​PublicMethod.gif|}}{{wiki:​Static.gif|}} GenerateGrid(GridDefinition,​GridInterpolationModel,​Stream) ** ** {{wiki:​PublicMethod.gif|}}{{wiki:​Static.gif|}} GenerateGrid(GridDefinition,​GridInterpolationModel,​Stream) **
  
-This method calculates all the cells in the grid and write the value of them into the grid file associates with the stream.+  * //This method calculates all the cells in the grid and write the value of them into the grid file associates with the stream.//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1478: Line 1373:
 ** {{wiki:​ProtectedMethod.gif|}} OpenCore() ** ** {{wiki:​ProtectedMethod.gif|}} OpenCore() **
  
-This method opens the FeatureSource so that it is initialized and ready to use.+  * //This method opens the FeatureSource so that it is initialized and ready to use.//
 == Remarks == == Remarks ==
-This protected virtual method is called from the concreate public method Open. The open method play an important role as it is responsible for initializing the FeatureSource. Most methods on the FeatureSource will throw an exception if the state of the FeatureSource is not opened. When the map draws each layer it will open the FeatureSource as one of its first steps, then after it is finished drawing with that layer it will close it. In this way we are sure to release all resources used by the FeatureSource. When implementing this virtual method consider opening files for file based source, connecting to databases in the database based sources and so on. You will get a chance to close these in the Close method of the FeatureSource.+  * //This protected virtual method is called from the concreate public method Open. The open method play an important role as it is responsible for initializing the FeatureSource. Most methods on the FeatureSource will throw an exception if the state of the FeatureSource is not opened. When the map draws each layer it will open the FeatureSource as one of its first steps, then after it is finished drawing with that layer it will close it. In this way we are sure to release all resources used by the FeatureSource. When implementing this virtual method consider opening files for file based source, connecting to databases in the database based sources and so on. You will get a chance to close these in the Close method of the FeatureSource.//
  
 == Return Value == == Return Value ==
Line 1490: Line 1385:
 ** {{wiki:​ProtectedMethod.gif|}} CloseCore() ** ** {{wiki:​ProtectedMethod.gif|}} CloseCore() **
  
-This method closes the FeatureSource and releases any resources it was using.+  * //This method closes the FeatureSource and releases any resources it was using.//
 == Remarks == == Remarks ==
-This protected virtual method is called from the concreate public method Close. The close method plays an important role in the life cycle of the FeatureSource. It may be called after drawing to release any memory and other resources that were allocated since the Open method was called. It is recommended that if you override this method that you take the following things into account. This method may be called multiple times so we suggest you write the so that that a call to a closed FeatureSource is ignored and does not generate an error. We also suggest that in the close you free all resources that have been opened. Remember that the object will not be destroyed but will be re-opened possibly in the near future.+  * //This protected virtual method is called from the concreate public method Close. The close method plays an important role in the life cycle of the FeatureSource. It may be called after drawing to release any memory and other resources that were allocated since the Open method was called. It is recommended that if you override this method that you take the following things into account. This method may be called multiple times so we suggest you write the so that that a call to a closed FeatureSource is ignored and does not generate an error. We also suggest that in the close you free all resources that have been opened. Remember that the object will not be destroyed but will be re-opened possibly in the near future.//
  
 == Return Value == == Return Value ==
Line 1502: Line 1397:
 ** {{wiki:​ProtectedMethod.gif|}} GetColumnsCore() ** ** {{wiki:​ProtectedMethod.gif|}} GetColumnsCore() **
  
-This method returns the columns available for the FeatureSource.+  * //This method returns the columns available for the FeatureSource.//
 == Remarks == == Remarks ==
-As this is the virtual core version of the Columns method it is intended to be overridden in inherited version of the class. When overriding you will be responsible for getting a list of all of the columns supported by the FeatureSource. In this way the FeatureSource will know what columns are available and will remove any extra columns when making calls to other core methods. For example if you have a FeatureSource that has three columns of information and the user calls a method and requests four columns of information,​ something they can do with custom fields, we will first compare what they are asking for to the results of the GetColumnsCore. In this way we can strip out custom columns before calling other Core methods which are only responsible for returning data in the FeatureSource. For more information on custom fields you can see the documentation on the OnCustomFieldsFetch.+  * //As this is the virtual core version of the Columns method it is intended to be overridden in inherited version of the class. When overriding you will be responsible for getting a list of all of the columns supported by the FeatureSource. In this way the FeatureSource will know what columns are available and will remove any extra columns when making calls to other core methods. For example if you have a FeatureSource that has three columns of information and the user calls a method and requests four columns of information,​ something they can do with custom fields, we will first compare what they are asking for to the results of the GetColumnsCore. In this way we can strip out custom columns before calling other Core methods which are only responsible for returning data in the FeatureSource. For more information on custom fields you can see the documentation on the OnCustomFieldsFetch.//
  
 == Return Value == == Return Value ==
Line 1514: Line 1409:
 ** {{wiki:​ProtectedMethod.gif|}} CommitTransactionCore(TransactionBuffer) ** ** {{wiki:​ProtectedMethod.gif|}} CommitTransactionCore(TransactionBuffer) **
  
-This method will commit the existing transaction to its underlying source of data.+  * //This method will commit the existing transaction to its underlying source of data.//
 == Remarks == == Remarks ==
-This method will commit the existing transaction to its underlying source of data. It will pass back the results of how the commit went to include any error received. If you are implementing your own FeatureSource then this is one of the crucial methods you must create. It should be fairly straight forward that you will loop through the transaction buffer and add, edit or delete the InternalFeatures in your underlying data source. Remember to build and pass back the TransactionResult class so that users of your FeatureSource can respond to failures you may encounter committing the InternalFeatures. We will handle the end of the transaction and also the cleanup of the transaction buffer. Your task will be to commit the records and produce a TransactionResult return.The Transaction SystemThe transaction system of a FeatureSource sits on top of the inherited implementation of any specific source such as Oracle Spatial or Shape files. In this way it functions the same way for every FeatureSource. You start by calling the BeginTransaction. This allocates a collection of in memory change buffers that are used to store changes until you commit the transaction. So for example when you call the Add, Delete or Update method the changes to the feature are stored in memory only. If for any reason you choose to abandon the transaction you can call RollbackTransaction at any time and the in memory buffer will be deleted and the changes will be lost. When you are ready to commit the transaction you call the CommitTransaction and the collections of changes are then passed to the CommitTransactionCore method and the implementer of the specific FeatureSource is responsible for integrating your changes into the underlying FeatureSource. By default the IsLiveTransaction property is set to false which means that until you commit the changes the FeatureSource API will not reflect any changes that are in the temporary editing buffer.In the case where the IsLiveTransaction is set to true then things function slightly differently. The live transaction concept means that all of the modification you perform during a transaction are live from the standpoint of the querying methods on the object.To setup an example imagine that you have a FeatureSource that has 10 records in it. Next you begin a transaction and then call GetAllFeatures,​ the result would be 10 records. After that you call a delete on one of the records and call the GetAllFeatures again, this time you only get nine records. You receive nine records even though the transaction has not yet been committed. In the same sense you could have added a new record or modified an existing one and those changes are considered live though not committed.In the case where you modify records such as expanding the size of a polygon those changes as well are reflected. So for example you expand a polygon by doubling its size and then do a spatial query that would not normally return the smaller record but would return the larger records, in this case the larger record is returned. You can set this property to be false as well in which case all of the spatial related methods would ignore anything that is currently in the transaction buffer waiting to be committed. In this case only after committing the transaction would the FeatureSource reflect the changes.+  * //This method will commit the existing transaction to its underlying source of data. It will pass back the results of how the commit went to include any error received. If you are implementing your own FeatureSource then this is one of the crucial methods you must create. It should be fairly straight forward that you will loop through the transaction buffer and add, edit or delete the InternalFeatures in your underlying data source. Remember to build and pass back the TransactionResult class so that users of your FeatureSource can respond to failures you may encounter committing the InternalFeatures. We will handle the end of the transaction and also the cleanup of the transaction buffer. Your task will be to commit the records and produce a TransactionResult return.The Transaction SystemThe transaction system of a FeatureSource sits on top of the inherited implementation of any specific source such as Oracle Spatial or Shape files. In this way it functions the same way for every FeatureSource. You start by calling the BeginTransaction. This allocates a collection of in memory change buffers that are used to store changes until you commit the transaction. So for example when you call the Add, Delete or Update method the changes to the feature are stored in memory only. If for any reason you choose to abandon the transaction you can call RollbackTransaction at any time and the in memory buffer will be deleted and the changes will be lost. When you are ready to commit the transaction you call the CommitTransaction and the collections of changes are then passed to the CommitTransactionCore method and the implementer of the specific FeatureSource is responsible for integrating your changes into the underlying FeatureSource. By default the IsLiveTransaction property is set to false which means that until you commit the changes the FeatureSource API will not reflect any changes that are in the temporary editing buffer.In the case where the IsLiveTransaction is set to true then things function slightly differently. The live transaction concept means that all of the modification you perform during a transaction are live from the standpoint of the querying methods on the object.To setup an example imagine that you have a FeatureSource that has 10 records in it. Next you begin a transaction and then call GetAllFeatures,​ the result would be 10 records. After that you call a delete on one of the records and call the GetAllFeatures again, this time you only get nine records. You receive nine records even though the transaction has not yet been committed. In the same sense you could have added a new record or modified an existing one and those changes are considered live though not committed.In the case where you modify records such as expanding the size of a polygon those changes as well are reflected. So for example you expand a polygon by doubling its size and then do a spatial query that would not normally return the smaller record but would return the larger records, in this case the larger record is returned. You can set this property to be false as well in which case all of the spatial related methods would ignore anything that is currently in the transaction buffer waiting to be committed. In this case only after committing the transaction would the FeatureSource reflect the changes.//
  
 == Return Value == == Return Value ==
Line 1530: Line 1425:
 ** {{wiki:​ProtectedMethod.gif|}} GetAllFeaturesCore(IEnumerable<​String>​) ** ** {{wiki:​ProtectedMethod.gif|}} GetAllFeaturesCore(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. You will not need to consider anything about pending transactions as this will be handled in the non Core version of the method. The main purpose of this method is to be the anchor of all of our default virtual implementations within this class. We wanted as the framework developers 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, 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 the records then we can brute force the answer. In this way if you inherited form 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. The price is that it is very inefficient. In the case 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 fast. For example in Oracle Spatial there is a specific SQL statement to do 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. It will ensure that nearly every other API will operate efficiently. Please see the specific API to determine what method it uses.+  * //This method returns all of the InternalFeatures in the FeatureSource. You will not need to consider anything about pending transactions as this will be handled in the non Core version of the method. The main purpose of this method is to be the anchor of all of our default virtual implementations within this class. We wanted as the framework developers 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, 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 the records then we can brute force the answer. In this way if you inherited form 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. The price is that it is very inefficient. In the case 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 fast. For example in Oracle Spatial there is a specific SQL statement to do 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. It will ensure that nearly every other API will operate efficiently. Please see the specific API to determine what method it uses.//
  
 == Return Value == == Return Value ==
Line 1543: Line 1438:
     * Description:​This parameter allows you to select the field names of the column data you wish to return with each Feature.     * Description:​This parameter allows you to select the field names of the column data you wish to return with each Feature.
  
 +<div newline></​div>​
 +** {{wiki:​ProtectedMethod.gif|}} CanGetBoundingBoxQuicklyCore() **
 +
 +  * //N/A//
 +== Remarks ==
 +  * //N/A//
 +
 +== Return Value ==
 +  * Type:​Boolean
 +  * Description:​N/​A
 +
 +== Parameters ==
 <div newline></​div>​ <div newline></​div>​
 ** {{wiki:​ProtectedMethod.gif|}} GetBoundingBoxCore() ** ** {{wiki:​ProtectedMethod.gif|}} GetBoundingBoxCore() **
  
-This method returns the bounding box which encompasses all of the features in the FeatureSource.+  * //This method returns the bounding box which encompasses all of the features in the FeatureSource.//
 == Remarks == == Remarks ==
-This protected virtual method is called from the concreate public method GetBoundingBox. It does not take into account any transaction activity as this is the responsibility of the concreate public method GetBoundingBox. In this way as a developer if you choose to override this method you do not have to consider transaction at all. The default implementation of GetBoundingBoxCore uses the GetAllRecordsCore method to calculate the bounding box of the FeatureSource. We strongly recommend that you provide your own implementation for this method that will be more efficient If you do not override this method the means it gets the BoundingBox is by calling the GetAllFeatureCore method and deriving it from each feature. This is a very inefficient way to get the BoundingBox in most data sources. It is highly recommended that you override this method and replace it with a highly optimized version. For example in a ShapeFile the BoundingBox is in the main header of the file. Similarly if you are using Oracle Spatial you can execute a simple query to get the BoundingBox of all of the record without returning them. In these ways you can greatly improve the performance of this method.+  * //This protected virtual method is called from the concreate public method GetBoundingBox. It does not take into account any transaction activity as this is the responsibility of the concreate public method GetBoundingBox. In this way as a developer if you choose to override this method you do not have to consider transaction at all. The default implementation of GetBoundingBoxCore uses the GetAllRecordsCore method to calculate the bounding box of the FeatureSource. We strongly recommend that you provide your own implementation for this method that will be more efficient If you do not override this method the means it gets the BoundingBox is by calling the GetAllFeatureCore method and deriving it from each feature. This is a very inefficient way to get the BoundingBox in most data sources. It is highly recommended that you override this method and replace it with a highly optimized version. For example in a ShapeFile the BoundingBox is in the main header of the file. Similarly if you are using Oracle Spatial you can execute a simple query to get the BoundingBox of all of the record without returning them. In these ways you can greatly improve the performance of this method.//
  
 == Return Value == == Return Value ==
Line 1558: Line 1465:
 ** {{wiki:​ProtectedMethod.gif|}} GetCountCore() ** ** {{wiki:​ProtectedMethod.gif|}} GetCountCore() **
  
-This method returns the count of the number of records in this FeatureSource.+  * //This method returns the count of the number of records in this FeatureSource.//
 == Remarks == == Remarks ==
-This protected virtual method is called from the concreate public method GetCount. It does not take into account any transaction activity as this is the responsibility of the concreate public method GetCount. In this way as a developer if you choose to override this method you do not have to consider transaction at all. The default implementation of GetCountCore uses the GetAllRecordsCore method to calculate how many records there are in the FeatureSource. We strongly recommend that you provide your own implementation for this method that will be more efficient If you do not override this method the means it gets the count is by calling the GetAllFeatureCore method and counting each feature. This is a very inefficient way to get the count in most data sources. It is highly recommended that you override this method and replace it with a highly optimized version. For example in a ShapeFile the record count is in the main header of the file. Similarly if you are using Oracle Spatial you can execute a simple query to get the count of all of the record without returning them. In these ways you can greatly improve the performance of this method.+  * //This protected virtual method is called from the concreate public method GetCount. It does not take into account any transaction activity as this is the responsibility of the concreate public method GetCount. In this way as a developer if you choose to override this method you do not have to consider transaction at all. The default implementation of GetCountCore uses the GetAllRecordsCore method to calculate how many records there are in the FeatureSource. We strongly recommend that you provide your own implementation for this method that will be more efficient If you do not override this method the means it gets the count is by calling the GetAllFeatureCore method and counting each feature. This is a very inefficient way to get the count in most data sources. It is highly recommended that you override this method and replace it with a highly optimized version. For example in a ShapeFile the record count is in the main header of the file. Similarly if you are using Oracle Spatial you can execute a simple query to get the count of all of the record without returning them. In these ways you can greatly improve the performance of this method.//
  
 == Return Value == == Return Value ==
Line 1570: Line 1477:
 ** {{wiki:​ProtectedMethod.gif|}} GetFeaturesInsideBoundingBoxCore(RectangleShape,​IEnumerable<​String>​) ** ** {{wiki:​ProtectedMethod.gif|}} GetFeaturesInsideBoundingBoxCore(RectangleShape,​IEnumerable<​String>​) **
  
-This method returns all of the InternalFeatures of this FeatureSource inside of the specified bounding box.+  * //This method returns all of the InternalFeatures of this FeatureSource inside of the specified bounding box.//
 == Remarks == == Remarks ==
-This method returns all of the InternalFeatures of this FeatureSource inside of the specified bounding box. If you are overriding this method you will not need to consider anything about transactions as this is handled by the concreate version of this method. The default implementation of GetFeaturesInsideBoundingBoxCore uses the GetAllRecordsCore method to determine which InternalFeatures are inside of the bounding box. We strongly recommend that you provide your own implementation for this method that will be more efficient. It is especially important for this method as many other default virtual methods use this for their calculations. We highly recommend when you override this method that you use any spatial indexes you have at your disposal to make this method as fast as possible.+  * //This method returns all of the InternalFeatures of this FeatureSource inside of the specified bounding box. If you are overriding this method you will not need to consider anything about transactions as this is handled by the concreate version of this method. The default implementation of GetFeaturesInsideBoundingBoxCore uses the GetAllRecordsCore method to determine which InternalFeatures are inside of the bounding box. We strongly recommend that you provide your own implementation for this method that will be more efficient. It is especially important for this method as many other default virtual methods use this for their calculations. We highly recommend when you override this method that you use any spatial indexes you have at your disposal to make this method as fast as possible.//
  
 == Return Value == == Return Value ==
Line 1588: Line 1495:
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​ConvertToExternalProjection(IEnumerable<​Feature>​) **+** {{wiki:​ProtectedMethod.gif|}} ​GetBoundingBoxByIdCore(String) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>+  * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
-  * //features//ย +  * //id//ย 
-    * Type:IEnumerable<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​+    * Type:String
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​ConvertToInternalProjection(IEnumerable<​Feature>​) **+** {{wiki:​ProtectedMethod.gif|}} ​GetFirstFeaturesWellKnownTypeCore() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>+  * Type:​[[ThinkGeo.MapSuite.Core.WellKnownType|WellKnownType]]
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
-  * //​features//​ 
-    * Type:​IEnumerable<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​ 
-    * Description:​N/​A 
- 
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​ConvertToExternalProjection(Feature) **+** {{wiki:​ProtectedMethod.gif|}} ​GetFeaturesByIdsCore(IEnumerable<​String>,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:​[[ThinkGeo.MapSuite.Core.Feature|Feature]]+  * Type:Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
-  * //feature//ย +  * //ids//ย 
-    * Type:[[ThinkGeo.MapSuite.Core.Feature|Feature]]+    * Type:IEnumerable<​String>​ย 
 +    * Description:​N/​Aย 
 +ย 
 +  * //​returningColumnNames//​ย 
 +    * Type:​IEnumerable<​String>​
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​ConvertToInternalProjection(Feature) **+** {{wiki:​ProtectedMethod.gif|}} ​ConvertToExternalProjection(IEnumerable<​RectangleShape>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:​[[ThinkGeo.MapSuite.Core.Feature|Feature]]+  * Type:Collection<​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]>
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
-  * //feature//ย +  * //rectangles//ย 
-    * Type:​[[ThinkGeo.MapSuite.Core.Feature|Feature]]+    * Type:IEnumerable<​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]>
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​GetColumnNamesInsideFeatureSource(IEnumerable<​String>) **+** {{wiki:​ProtectedMethod.gif|}} ​ConvertToInternalProjection(IEnumerable<​RectangleShape>) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:​Collection<​String>+  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]>
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
-  * //returningColumnNames//ย +  * //rectangles//ย 
-    * Type:​IEnumerable<​String>+    * Type:​IEnumerable<​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]>
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​GetColumnNamesOutsideFeatureSource(IEnumerable<​String>​) **+** {{wiki:​ProtectedMethod.gif|}} ​ConvertToExternalProjection(RectangleShape) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:Collection<​String>​+  * Type:[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
-  * //returningColumnNames//ย +  * //rectangle//ย 
-    * Type:IEnumerable<​String>​+    * Type:[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​GetReturningColumnNames(ReturningColumnsType) **+** {{wiki:​ProtectedMethod.gif|}} ​ConvertToInternalProjection(RectangleShape) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:Collection<​String>​+  * Type:[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
-  * //returningColumnNamesType//ย +  * //rectangle//ย 
-    * Type:​[[ThinkGeo.MapSuite.Core.ReturningColumnsType|ReturningColumnsType]]+    * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​cRQ=(Collection<​Feature>​) **+** {{wiki:​ProtectedMethod.gif|}} ​ConvertToInternalProjectionCall(RectangleShape) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:Void+  * Type:[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
-  * //sourceFeatures//ย +  * //rectangle//ย 
-    * Type:Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>+    * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​OnDrawingProgressChanged(DrawingProgressChangedEventArgs) **+** {{wiki:​ProtectedMethod.gif|}} ​ConvertToInternalProjection(BaseShape) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:Void+  * Type:[[ThinkGeo.MapSuite.Core.BaseShape|BaseShape]]
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
-  * //e//ย +  * //baseShape//ย 
-    * Type:​[[ThinkGeo.MapSuite.Core.DrawingProgressChangedEventArgs|DrawingProgressChangedEventArgs]]+    * Type:​[[ThinkGeo.MapSuite.Core.BaseShape|BaseShape]]
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​dRQ=(IEnumerable<​String>) **+** {{wiki:​ProtectedMethod.gif|}} ​ConvertToExternalProjection(IEnumerable<​Feature>) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:​Collection<​String>+  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
-  * //returningColumnNames//ย +  * //features//ย 
-    * Type:​IEnumerable<​String>+    * Type:​IEnumerable<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​dxQ=(IEnumerable<​String>,​IEnumerable<​String>,​ZoomLevel,​Func<​Collection<​Feature>​>,​IEnumerable<​String>,​RectangleShape) **+** {{wiki:​ProtectedMethod.gif|}} ​ConvertToInternalProjection(IEnumerable<​Feature>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:Dictionary<​String,​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>>+  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
-  * //styleFilters//ย +  * //features//ย 
-    * Type:​IEnumerable<​String>+    * Type:​IEnumerable<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>
     * Description:​N/​A     * Description:​N/​A
  
-  * //​returningColumnNames/​/ย +<div newline><​/div>ย 
-    Type:IEnumerable<​String>​ย +** {{wiki:ProtectedMethod.gif|}} ConvertToExternalProjection(Feature) **
-    ​Description:​N/​A+
  
-  * //currentZoomLevel//ย +  * //N/A//ย 
-    * Type:​[[ThinkGeo.MapSuite.Core.ZoomLevel|ZoomLevel]]ย +== Remarks ==ย 
-    Description:​N/A+  //N/A//
  
-  * //func//ย +== Return Value ==ย 
-    * Type:Func<​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>>ย +  * Type:​[[ThinkGeo.MapSuite.Core.Feature|Feature]]ย 
-    * Description:​N/​A+  * Description:​N/​A
  
-  * //ids//ย +== Parameters ==ย 
-    * Type:​IEnumerable<​String>​ย +  * //feature//ย 
-    * Description:​N/​Aย +    * Type:​[[ThinkGeo.MapSuite.Core.Feature|Feature]]
-ย +
-  * //extent//ย +
-    * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]+
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​eBQ=(IEnumerable<​String>,​Func<​IEnumerable<​String>,​Collection<​Feature>>,​IEnumerable<​String>​) **+** {{wiki:​ProtectedMethod.gif|}} ​ConvertToInternalProjection(Feature) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>+  * Type:​[[ThinkGeo.MapSuite.Core.Feature|Feature]]
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
-  * //returningColumnNames//ย +  * //feature//ย 
-    * Type:IEnumerable<​String>​ย +    * Type:​[[ThinkGeo.MapSuite.Core.Feature|Feature]]
-    * Description:​N/​Aย +
-ย +
-  * //​getFeatures//​ย +
-    * Type:​Func<​IEnumerable<​String>,​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>>ย +
-    * Description:​N/​Aย +
-ย +
-  * //​filters//​ย +
-    * Type:​IEnumerable<​String>​+
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​eBQ=(IEnumerable<​Feature>,​IEnumerable<​String>,​IEnumerable<​String>,​IEnumerable<​String>​) **+** {{wiki:​ProtectedMethod.gif|}} ​GetColumnNamesInsideFeatureSource(IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>+  * Type:​Collection<​String>
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
-  * //​features//​ 
-    * Type:​IEnumerable<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​ 
-    * Description:​N/​A 
- 
   * //​returningColumnNames//​   * //​returningColumnNames//​
-    * Type:​IEnumerable<​String>​ 
-    * Description:​N/​A 
- 
-  * //filters// 
-    * Type:​IEnumerable<​String>​ 
-    * Description:​N/​A 
- 
-  * //​linkingColumnNames//​ 
     * Type:​IEnumerable<​String>​     * Type:​IEnumerable<​String>​
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​eRQ=(IEnumerable<​String>​) **+** {{wiki:​ProtectedMethod.gif|}} ​GetColumnNamesOutsideFeatureSource(IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1852: Line 1735:
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​ehQ=(IEnumerable<​String>,​IEnumerable<​String>​) **+** {{wiki:​ProtectedMethod.gif|}} ​GetReturningColumnNames(ReturningColumnsType) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1863: Line 1746:
  
 == Parameters == == Parameters ==
-  * //returningColumnNames//ย +  * //returningColumnNamesType//ย 
-    * Type:IEnumerable<​String>​ย +    * Type:[[ThinkGeo.MapSuite.Core.ReturningColumnsType|ReturningColumnsType]]
-    * Description:​N/​Aย +
-ย +
-  * //​filters//​ย +
-    * Type:​IEnumerable<​String>​+
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​exQ=() **+** {{wiki:​ProtectedMethod.gif|}} ​RemoveEmptyAndExcludeFeatures(Collection<​Feature>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:IEnumerable<​[[ThinkGeo.MapSuite.Core.LinkSource|LinkSource]]>​+  * Type:Void
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
 +  * //​sourceFeatures//​
 +    * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​
 +    * Description:​N/​A
 +
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​fxQ=(String) **+** {{wiki:​ProtectedMethod.gif|}} ​OnDrawingProgressChanged(DrawingProgressChangedEventArgs) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:Boolean+  * Type:Void
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
-  * //columnName//ย +  * //e//ย 
-    * Type:String+    * Type:[[ThinkGeo.MapSuite.Core.DrawingProgressChangedEventArgs|DrawingProgressChangedEventArgs]]
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​gBQ=(IEnumerable<​String>,​IEnumerable<​String>​) **+** {{wiki:​ProtectedMethod.gif|}} ​GetColumnNamesOutsideFeatureSourceCall(IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:Boolean+  * Type:Collection<​String>​
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
   * //​returningColumnNames//​   * //​returningColumnNames//​
-    * Type:​IEnumerable<​String>​ 
-    * Description:​N/​A 
- 
-  * //filters// 
     * Type:​IEnumerable<​String>​     * Type:​IEnumerable<​String>​
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​CloneDeepCore() **+** {{wiki:​ProtectedMethod.gif|}} ​CanGetCountQuicklyCore() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:[[ThinkGeo.MapSuite.Core.FeatureSource|FeatureSource]]+  * Type:Boolean
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​WhQ=(Collection<​Feature>,​Collection<​String>,​Boolean) **+** {{wiki:​ProtectedMethod.gif|}} ​GetDistinctColumnValuesCore(String) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>+  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.DistinctColumnValue|DistinctColumnValue]]>
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
-  * //sourceFeatures//ย +  * //columnName//ย 
-    * Type:Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​ย +    * Type:String
-    * Description:​N/​Aย +
-ย +
-  * //​fieldNamesOutsideOfSource//​ย +
-    * Type:​Collection<​String>ย +
-    * Description:​N/​Aย +
-ย +
-  * //​forceRaiseEvent//​ย +
-    * Type:​Boolean+
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​GetFeaturesOutsideBoundingBoxCore(RectangleShape,​IEnumerable<​String>​) **+** {{wiki:​ProtectedMethod.gif|}} ​GetAllFeaturesCore(IEnumerable<​String>​,​Int32,​Int32) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 1967: Line 1838:
  
 == Parameters == == Parameters ==
-  * //​boundingBox//​ 
-    * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
-    * Description:​N/​A 
- 
   * //​returningColumnNames//​   * //​returningColumnNames//​
     * Type:​IEnumerable<​String>​     * Type:​IEnumerable<​String>​
     * Description:​N/​A     * Description:​N/​A
  
-<div newline><​/div>ย +  * //​startIndex/​/ย 
-** {{wiki:ProtectedMethod.gif|}} OnApplyingFilters(ApplyingFiltersFeatureSourceEventArgs) **+    Type:Int32ย 
 +    ​Description:​N/​A
  
-N/Aย +  ​* //takeCount//ย 
-== Remarks ==ย +    * Type:Int32
-N/Aย +
-ย +
-== Return Value ==ย +
-  * Type:Voidย +
-  * Description:​N/​Aย +
-ย +
-== Parameters ==ย +
-  ​* //e//ย +
-    * Type:[[ThinkGeo.MapSuite.Core.ApplyingFiltersFeatureSourceEventArgs|ApplyingFiltersFeatureSourceEventArgs]]+
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​OnAppliedFilters(AppliedFiltersFeatureSourceEventArgs) **+** {{wiki:​ProtectedMethod.gif|}} ​RaiseCustomColumnFetchEvent(Collection<​Feature>,​Collection<​String>,​Boolean) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:Void+  * Type:Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​
   * Description:​N/​A   * Description:​N/​A
  
 == Parameters == == Parameters ==
-  * //e//ย +  * //sourceFeatures//ย 
-    * Type:​[[ThinkGeo.MapSuite.Core.AppliedFiltersFeatureSourceEventArgs|AppliedFiltersFeatureSourceEventArgs]]+    * Type:Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>ย 
 +    * Description:​N/​Aย 
 +ย 
 +  * //​fieldNamesOutsideOfSource//​ย 
 +    * Type:​Collection<​String>​ย 
 +    * Description:​N/​Aย 
 +ย 
 +  * //​forceRaiseEvent//​ย 
 +    * Type:​Boolean
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​ApplyFiltersCore(IEnumerable<​Feature>​,​IEnumerable<​String>​,String) **+** {{wiki:​ProtectedMethod.gif|}} ​GetFeaturesOutsideBoundingBoxCore(RectangleShape,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2019: Line 1886:
  
 == Parameters == == Parameters ==
-  * //features//ย +  * //boundingBox//ย 
-    * Type:IEnumerable<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>+    * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]
     * Description:​N/​A     * Description:​N/​A
  
   * //​returningColumnNames//​   * //​returningColumnNames//​
     * Type:​IEnumerable<​String>​     * Type:​IEnumerable<​String>​
-    * Description:​N/​A 
- 
-  * //​linkExpression//​ 
-    * Type:String 
     * Description:​N/​A     * Description:​N/​A
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​XBQ=(Collection<​Feature>​) **+** {{wiki:​ProtectedMethod.gif|}} ​ConvertToExternalProjectionIfNecessary(Collection<​Feature>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2048: Line 1911:
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​XRQ=(RectangleShape,​Collection<​Feature>,​Boolean) **+** {{wiki:​ProtectedMethod.gif|}} ​ProcessTransaction(RectangleShape,​Collection<​Feature>,​Boolean) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2072: Line 1935:
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​XhQ=(RectangleShape,​Double,​Double,​IEnumerable<​String>,​RectangleShape) **+** {{wiki:​ProtectedMethod.gif|}} ​GetWrappingFeaturesLeft(RectangleShape,​Double,​Double,​IEnumerable<​String>,​RectangleShape) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2104: Line 1967:
  
 <div newline></​div>​ <div newline></​div>​
-** {{wiki:​ProtectedMethod.gif|}} ​XxQ=(RectangleShape,​Double,​Double,​IEnumerable<​String>,​RectangleShape) **+** {{wiki:​ProtectedMethod.gif|}} ​GetWrappingFeaturesRight(RectangleShape,​Double,​Double,​IEnumerable<​String>,​RectangleShape) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2138: Line 2001:
 ** {{wiki:​ProtectedMethod.gif|}} GetFeaturesForDrawingCore(RectangleShape,​Double,​Double,​IEnumerable<​String>​) ** ** {{wiki:​ProtectedMethod.gif|}} GetFeaturesForDrawingCore(RectangleShape,​Double,​Double,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2166: Line 2029:
 ** {{wiki:​ProtectedMethod.gif|}} SpatialQueryCore(BaseShape,​QueryType,​IEnumerable<​String>​) ** ** {{wiki:​ProtectedMethod.gif|}} SpatialQueryCore(BaseShape,​QueryType,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2190: Line 2053:
 ** {{wiki:​ProtectedMethod.gif|}} GetFeaturesNearestToCore(BaseShape,​GeographyUnit,​Int32,​IEnumerable<​String>​) ** ** {{wiki:​ProtectedMethod.gif|}} GetFeaturesNearestToCore(BaseShape,​GeographyUnit,​Int32,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2218: Line 2081:
 ** {{wiki:​ProtectedMethod.gif|}} GetFeaturesWithinDistanceOfCore(BaseShape,​GeographyUnit,​DistanceUnit,​Double,​IEnumerable<​String>​) ** ** {{wiki:​ProtectedMethod.gif|}} GetFeaturesWithinDistanceOfCore(BaseShape,​GeographyUnit,​DistanceUnit,​Double,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2245: Line 2108:
   * //​returningColumnNames//​   * //​returningColumnNames//​
     * Type:​IEnumerable<​String>​     * Type:​IEnumerable<​String>​
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} GetBoundingBoxByIdCore(String) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //id// 
-    * Type:String 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} GetFirstFeaturesWellKnownTypeCore() ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​[[ThinkGeo.MapSuite.Core.WellKnownType|WellKnownType]] 
-  * Description:​N/​A 
- 
-== Parameters == 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} GetFeaturesByIdsCore(IEnumerable<​String>,​IEnumerable<​String>​) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​ 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //ids// 
-    * Type:​IEnumerable<​String>​ 
-    * Description:​N/​A 
- 
-  * //​returningColumnNames//​ 
-    * Type:​IEnumerable<​String>​ 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} ConvertToExternalProjection(IEnumerable<​RectangleShape>​) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]>​ 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //​rectangles//​ 
-    * Type:​IEnumerable<​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]>​ 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} ConvertToInternalProjection(IEnumerable<​RectangleShape>​) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]>​ 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //​rectangles//​ 
-    * Type:​IEnumerable<​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]]>​ 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} ConvertToExternalProjection(RectangleShape) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //​rectangle//​ 
-    * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} ConvertToInternalProjection(RectangleShape) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //​rectangle//​ 
-    * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} ahQ=(RectangleShape) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //​rectangle//​ 
-    * Type:​[[ThinkGeo.MapSuite.Core.RectangleShape|RectangleShape]] 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} ConvertToInternalProjection(BaseShape) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​[[ThinkGeo.MapSuite.Core.BaseShape|BaseShape]] 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //​baseShape//​ 
-    * Type:​[[ThinkGeo.MapSuite.Core.BaseShape|BaseShape]] 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} CanGetBoundingBoxQuicklyCore() ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Boolean 
-  * Description:​N/​A 
- 
-== Parameters == 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} CanGetCountQuicklyCore() ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Boolean 
-  * Description:​N/​A 
- 
-== Parameters == 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} GetDistinctColumnValuesCore(String) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.DistinctColumnValue|DistinctColumnValue]]>​ 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //​columnName//​ 
-    * Type:String 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} GetAllFeaturesCore(IEnumerable<​String>,​Int32,​Int32) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.Feature|Feature]]>​ 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //​returningColumnNames//​ 
-    * Type:​IEnumerable<​String>​ 
-    * Description:​N/​A 
- 
-  * //​startIndex//​ 
-    * Type:Int32 
-    * Description:​N/​A 
- 
-  * //​takeCount//​ 
-    * Type:Int32 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} OnGettingFeaturesByIds(GettingFeaturesByIdsFeatureSourceEventArgs) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:Void 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //e// 
-    * Type:​[[ThinkGeo.MapSuite.Core.GettingFeaturesByIdsFeatureSourceEventArgs|GettingFeaturesByIdsFeatureSourceEventArgs]] 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} OnGettingFeaturesForDrawing(GettingFeaturesForDrawingFeatureSourceEventArgs) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:Void 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //e// 
-    * Type:​[[ThinkGeo.MapSuite.Core.GettingFeaturesForDrawingFeatureSourceEventArgs|GettingFeaturesForDrawingFeatureSourceEventArgs]] 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} OnGettingColumns(GettingColumnsFeatureSourceEventArgs) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:Void 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //e// 
-    * Type:​[[ThinkGeo.MapSuite.Core.GettingColumnsFeatureSourceEventArgs|GettingColumnsFeatureSourceEventArgs]] 
-    * Description:​N/​A 
- 
-<div newline></​div>​ 
-** {{wiki:​ProtectedMethod.gif|}} OnGottenColumns(GottenColumnsFeatureSourceEventArgs) ** 
- 
-N/A 
-== Remarks == 
-N/A 
- 
-== Return Value == 
-  * Type:Void 
-  * Description:​N/​A 
- 
-== Parameters == 
-  * //e// 
-    * Type:​[[ThinkGeo.MapSuite.Core.GottenColumnsFeatureSourceEventArgs|GottenColumnsFeatureSourceEventArgs]] 
     * Description:​N/​A     * Description:​N/​A
  
Line 2522: Line 2113:
 ** {{wiki:​ProtectedMethod.gif|}} OnCustomColumnFetch(CustomColumnFetchEventArgs) ** ** {{wiki:​ProtectedMethod.gif|}} OnCustomColumnFetch(CustomColumnFetchEventArgs) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2538: Line 2129:
 ** {{wiki:​ProtectedMethod.gif|}} OnCommittingTransaction(CommittingTransactionEventArgs) ** ** {{wiki:​ProtectedMethod.gif|}} OnCommittingTransaction(CommittingTransactionEventArgs) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2554: Line 2145:
 ** {{wiki:​ProtectedMethod.gif|}} OnCommittedTransaction(CommittedTransactionEventArgs) ** ** {{wiki:​ProtectedMethod.gif|}} OnCommittedTransaction(CommittedTransactionEventArgs) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2570: Line 2161:
 ** {{wiki:​ProtectedMethod.gif|}} OnOpeningFeatureSource(OpeningFeatureSourceEventArgs) ** ** {{wiki:​ProtectedMethod.gif|}} OnOpeningFeatureSource(OpeningFeatureSourceEventArgs) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2586: Line 2177:
 ** {{wiki:​ProtectedMethod.gif|}} OnOpenedFeatureSource(OpenedFeatureSourceEventArgs) ** ** {{wiki:​ProtectedMethod.gif|}} OnOpenedFeatureSource(OpenedFeatureSourceEventArgs) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2602: Line 2193:
 ** {{wiki:​ProtectedMethod.gif|}} OnClosingFeatureSource(ClosingFeatureSourceEventArgs) ** ** {{wiki:​ProtectedMethod.gif|}} OnClosingFeatureSource(ClosingFeatureSourceEventArgs) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2618: Line 2209:
 ** {{wiki:​ProtectedMethod.gif|}} OnClosedFeatureSource(ClosedFeatureSourceEventArgs) ** ** {{wiki:​ProtectedMethod.gif|}} OnClosedFeatureSource(ClosedFeatureSourceEventArgs) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2634: Line 2225:
 ** {{wiki:​ProtectedMethod.gif|}} ExecuteNonQueryCore(String) ** ** {{wiki:​ProtectedMethod.gif|}} ExecuteNonQueryCore(String) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2650: Line 2241:
 ** {{wiki:​ProtectedMethod.gif|}} GetFeaturesByColumnValueCore(String,​String,​IEnumerable<​String>​) ** ** {{wiki:​ProtectedMethod.gif|}} GetFeaturesByColumnValueCore(String,​String,​IEnumerable<​String>​) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2674: Line 2265:
 ** {{wiki:​ProtectedMethod.gif|}} ExecuteScalarCore(String) ** ** {{wiki:​ProtectedMethod.gif|}} ExecuteScalarCore(String) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2690: Line 2281:
 ** {{wiki:​ProtectedMethod.gif|}} ExecuteQueryCore(String) ** ** {{wiki:​ProtectedMethod.gif|}} ExecuteQueryCore(String) **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
-  * Type:DataTable+  * Type:[[ThinkGeo.MapSuite.Portable.GeoDataTable|GeoDataTable]]
   * Description:​N/​A   * Description:​N/​A
  
Line 2703: Line 2294:
     * Description:​N/​A     * Description:​N/​A
  
 +<div newline></​div>​
 +** {{wiki:​ProtectedMethod.gif|}} CloneDeepCore() **
 +
 +  * //N/A//
 +== Remarks ==
 +  * //N/A//
 +
 +== Return Value ==
 +  * Type:​[[ThinkGeo.MapSuite.Core.FeatureSource|FeatureSource]]
 +  * Description:​N/​A
 +
 +== Parameters ==
 <div newline></​div>​ <div newline></​div>​
 ** {{wiki:​ProtectedMethod.gif|}} Finalize() ** ** {{wiki:​ProtectedMethod.gif|}} Finalize() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2718: Line 2321:
 ** {{wiki:​ProtectedMethod.gif|}} MemberwiseClone() ** ** {{wiki:​ProtectedMethod.gif|}} MemberwiseClone() **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 == Return Value == == Return Value ==
Line 2731: Line 2334:
 ** {{wiki:​PublicProperty.gif|}} GridMatrix ** ** {{wiki:​PublicProperty.gif|}} GridMatrix **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:​[[ThinkGeo.MapSuite.Core.GridCell[,​]|GridCell[,​]]]   * Type:​[[ThinkGeo.MapSuite.Core.GridCell[,​]|GridCell[,​]]]
Line 2739: Line 2342:
 ** {{wiki:​PublicProperty.gif|}} CellSize ** ** {{wiki:​PublicProperty.gif|}} CellSize **
  
-Gets the cell size of the grid.+  * //Gets the cell size of the grid.//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:Double   * Type:Double
Line 2747: Line 2350:
 ** {{wiki:​PublicProperty.gif|}} ColumnCount ** ** {{wiki:​PublicProperty.gif|}} ColumnCount **
  
-Gets column number of the grid.+  * //Gets column number of the grid.//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:Int32   * Type:Int32
Line 2755: Line 2358:
 ** {{wiki:​PublicProperty.gif|}} RowCount ** ** {{wiki:​PublicProperty.gif|}} RowCount **
  
-Gets row number of the grid.+  * //Gets row number of the grid.//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:Int32   * Type:Int32
Line 2763: Line 2366:
 ** {{wiki:​PublicProperty.gif|}} LowerLeftPoint ** ** {{wiki:​PublicProperty.gif|}} LowerLeftPoint **
  
-Gets LowerLeft PointShape of the grid.+  * //Gets LowerLeft PointShape of the grid.//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:​[[ThinkGeo.MapSuite.Core.PointShape|PointShape]]   * Type:​[[ThinkGeo.MapSuite.Core.PointShape|PointShape]]
Line 2771: Line 2374:
 ** {{wiki:​PublicProperty.gif|}} NoDataValue ** ** {{wiki:​PublicProperty.gif|}} NoDataValue **
  
-Gets the NoDataValue in the grid.+  * //Gets the NoDataValue in the grid.//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:Double   * Type:Double
Line 2779: Line 2382:
 ** {{wiki:​PublicProperty.gif|}} IsEditable ** ** {{wiki:​PublicProperty.gif|}} IsEditable **
  
-This property returns if the FeatureSource allows edits or is read only.+  * //This property returns if the FeatureSource allows edits or is read only.//
 == Remarks == == Remarks ==
-This property is useful to check if a specific FeatureSource accepts editing. If you call the BeginTransaction and this property is false then an exception will be raised. For developers who are creating or extending a FeatureSource it is expected that you override this virtual method if the new FeatureSource you are creating allows edits. By default the decimalDegreesValue if false meaning that if you want to allow edits you must override this method and return true.+  * //This property is useful to check if a specific FeatureSource accepts editing. If you call the BeginTransaction and this property is false then an exception will be raised. For developers who are creating or extending a FeatureSource it is expected that you override this virtual method if the new FeatureSource you are creating allows edits. By default the decimalDegreesValue if false meaning that if you want to allow edits you must override this method and return true.//
 == Return Value == == Return Value ==
   * Type:​Boolean   * Type:​Boolean
Line 2787: Line 2390:
 ** {{wiki:​PublicProperty.gif|}} DataValueColumnName ** ** {{wiki:​PublicProperty.gif|}} DataValueColumnName **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:String   * Type:String
Line 2795: Line 2398:
 ** {{wiki:​PublicProperty.gif|}} Id ** ** {{wiki:​PublicProperty.gif|}} Id **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:String   * Type:String
Line 2803: Line 2406:
 ** {{wiki:​PublicProperty.gif|}} CanExecuteSqlQuery ** ** {{wiki:​PublicProperty.gif|}} CanExecuteSqlQuery **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:​Boolean   * Type:​Boolean
Line 2811: Line 2414:
 ** {{wiki:​PublicProperty.gif|}} IsOpen ** ** {{wiki:​PublicProperty.gif|}} IsOpen **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:​Boolean   * Type:​Boolean
Line 2819: Line 2422:
 ** {{wiki:​PublicProperty.gif|}} CanModifyColumnStructure ** ** {{wiki:​PublicProperty.gif|}} CanModifyColumnStructure **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:​Boolean   * Type:​Boolean
Line 2827: Line 2430:
 ** {{wiki:​PublicProperty.gif|}} IsInTransaction ** ** {{wiki:​PublicProperty.gif|}} IsInTransaction **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:​Boolean   * Type:​Boolean
Line 2835: Line 2438:
 ** {{wiki:​PublicProperty.gif|}} IsTransactionLive ** ** {{wiki:​PublicProperty.gif|}} IsTransactionLive **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:​Boolean   * Type:​Boolean
Line 2843: Line 2446:
 ** {{wiki:​PublicProperty.gif|}} Projection ** ** {{wiki:​PublicProperty.gif|}} Projection **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:​[[ThinkGeo.MapSuite.Core.Projection|Projection]]   * Type:​[[ThinkGeo.MapSuite.Core.Projection|Projection]]
Line 2851: Line 2454:
 ** {{wiki:​PublicProperty.gif|}} GeoCache ** ** {{wiki:​PublicProperty.gif|}} GeoCache **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:​[[ThinkGeo.MapSuite.Core.FeatureCache|FeatureCache]]   * Type:​[[ThinkGeo.MapSuite.Core.FeatureCache|FeatureCache]]
Line 2859: Line 2462:
 ** {{wiki:​PublicProperty.gif|}} FeatureIdsToExclude ** ** {{wiki:​PublicProperty.gif|}} FeatureIdsToExclude **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:​Collection<​String>​   * Type:​Collection<​String>​
Line 2867: Line 2470:
 ** {{wiki:​PublicProperty.gif|}} TransactionBuffer ** ** {{wiki:​PublicProperty.gif|}} TransactionBuffer **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:​[[ThinkGeo.MapSuite.Core.TransactionBuffer|TransactionBuffer]]   * Type:​[[ThinkGeo.MapSuite.Core.TransactionBuffer|TransactionBuffer]]
Line 2875: Line 2478:
 ** {{wiki:​PublicProperty.gif|}} MaxRecordsToDraw ** ** {{wiki:​PublicProperty.gif|}} MaxRecordsToDraw **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:Int32   * Type:Int32
- 
-** {{wiki:​PublicProperty.gif|}} LinkSources ** 
- 
-N/A 
-== Remarks == 
-N/A 
-== Return Value == 
-  * Type:​Collection<​[[ThinkGeo.MapSuite.Core.LinkSource|LinkSource]]>​ 
- 
-** {{wiki:​PublicProperty.gif|}} LinkExpressions ** 
- 
-N/A 
-== Remarks == 
-N/A 
-== Return Value == 
-  * Type:​Collection<​String>​ 
- 
-** {{wiki:​PublicProperty.gif|}} Filters ** 
- 
-N/A 
-== Remarks == 
-N/A 
-== Return Value == 
-  * Type:​Collection<​String>​ 
- 
-** {{wiki:​PublicProperty.gif|}} GeometryValidationMode ** 
- 
-N/A 
-== Remarks == 
-N/A 
-== Return Value == 
-  * Type:​[[ThinkGeo.MapSuite.Core.GeometryValidationMode|GeometryValidationMode]] 
  
 ==== Protected Properties ==== ==== Protected Properties ====
 ** {{wiki:​ProtectedProperty.gif|}} CanExecuteSqlQueryCore ** ** {{wiki:​ProtectedProperty.gif|}} CanExecuteSqlQueryCore **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:​Boolean   * Type:​Boolean
Line 2924: Line 2495:
 ** {{wiki:​ProtectedProperty.gif|}} IsOpenCore ** ** {{wiki:​ProtectedProperty.gif|}} IsOpenCore **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:​Boolean   * Type:​Boolean
Line 2932: Line 2503:
 ** {{wiki:​ProtectedProperty.gif|}} CanModifyColumnStructureCore ** ** {{wiki:​ProtectedProperty.gif|}} CanModifyColumnStructureCore **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:​Boolean   * Type:​Boolean
Line 2940: Line 2511:
 ** {{wiki:​ProtectedProperty.gif|}} FeatureSourceColumns ** ** {{wiki:​ProtectedProperty.gif|}} FeatureSourceColumns **
  
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
 == Return Value == == Return Value ==
   * Type:​Collection<​[[ThinkGeo.MapSuite.Core.FeatureSourceColumn|FeatureSourceColumn]]>​   * Type:​Collection<​[[ThinkGeo.MapSuite.Core.FeatureSourceColumn|FeatureSourceColumn]]>​
Line 2948: Line 2519:
 ==== Public Events ==== ==== Public Events ====
 ** {{wiki:​PublicEvent.gif|}} DrawingProgressChanged ** ** {{wiki:​PublicEvent.gif|}} DrawingProgressChanged **
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 Event Arguments:​[[ThinkGeo.MapSuite.Core.DrawingProgressChangedEventArgs|DrawingProgressChangedEventArgs]] Event Arguments:​[[ThinkGeo.MapSuite.Core.DrawingProgressChangedEventArgs|DrawingProgressChangedEventArgs]]
- 
-** {{wiki:​PublicEvent.gif|}} GettingColumns ** 
-N/A 
-== Remarks == 
-N/A 
- 
-Event Arguments:​[[ThinkGeo.MapSuite.Core.GettingColumnsFeatureSourceEventArgs|GettingColumnsFeatureSourceEventArgs]] 
- 
-** {{wiki:​PublicEvent.gif|}} GottenColumns ** 
-N/A 
-== Remarks == 
-N/A 
- 
-Event Arguments:​[[ThinkGeo.MapSuite.Core.GottenColumnsFeatureSourceEventArgs|GottenColumnsFeatureSourceEventArgs]] 
- 
-** {{wiki:​PublicEvent.gif|}} ApplyingFilters ** 
-N/A 
-== Remarks == 
-N/A 
- 
-Event Arguments:​[[ThinkGeo.MapSuite.Core.ApplyingFiltersFeatureSourceEventArgs|ApplyingFiltersFeatureSourceEventArgs]] 
- 
-** {{wiki:​PublicEvent.gif|}} AppliedFilters ** 
-N/A 
-== Remarks == 
-N/A 
- 
-Event Arguments:​[[ThinkGeo.MapSuite.Core.AppliedFiltersFeatureSourceEventArgs|AppliedFiltersFeatureSourceEventArgs]] 
- 
-** {{wiki:​PublicEvent.gif|}} GettingFeaturesByIds ** 
-N/A 
-== Remarks == 
-N/A 
- 
-Event Arguments:​[[ThinkGeo.MapSuite.Core.GettingFeaturesByIdsFeatureSourceEventArgs|GettingFeaturesByIdsFeatureSourceEventArgs]] 
- 
-** {{wiki:​PublicEvent.gif|}} GettingFeaturesForDrawing ** 
-N/A 
-== Remarks == 
-N/A 
- 
-Event Arguments:​[[ThinkGeo.MapSuite.Core.GettingFeaturesForDrawingFeatureSourceEventArgs|GettingFeaturesForDrawingFeatureSourceEventArgs]] 
  
 ** {{wiki:​PublicEvent.gif|}} CustomColumnFetch ** ** {{wiki:​PublicEvent.gif|}} CustomColumnFetch **
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 Event Arguments:​[[ThinkGeo.MapSuite.Core.CustomColumnFetchEventArgs|CustomColumnFetchEventArgs]] Event Arguments:​[[ThinkGeo.MapSuite.Core.CustomColumnFetchEventArgs|CustomColumnFetchEventArgs]]
  
 ** {{wiki:​PublicEvent.gif|}} CommittingTransaction ** ** {{wiki:​PublicEvent.gif|}} CommittingTransaction **
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 Event Arguments:​[[ThinkGeo.MapSuite.Core.CommittingTransactionEventArgs|CommittingTransactionEventArgs]] Event Arguments:​[[ThinkGeo.MapSuite.Core.CommittingTransactionEventArgs|CommittingTransactionEventArgs]]
  
 ** {{wiki:​PublicEvent.gif|}} CommittedTransaction ** ** {{wiki:​PublicEvent.gif|}} CommittedTransaction **
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 Event Arguments:​[[ThinkGeo.MapSuite.Core.CommittedTransactionEventArgs|CommittedTransactionEventArgs]] Event Arguments:​[[ThinkGeo.MapSuite.Core.CommittedTransactionEventArgs|CommittedTransactionEventArgs]]
  
 ** {{wiki:​PublicEvent.gif|}} OpeningFeatureSource ** ** {{wiki:​PublicEvent.gif|}} OpeningFeatureSource **
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 Event Arguments:​[[ThinkGeo.MapSuite.Core.OpeningFeatureSourceEventArgs|OpeningFeatureSourceEventArgs]] Event Arguments:​[[ThinkGeo.MapSuite.Core.OpeningFeatureSourceEventArgs|OpeningFeatureSourceEventArgs]]
  
 ** {{wiki:​PublicEvent.gif|}} OpenedFeatureSource ** ** {{wiki:​PublicEvent.gif|}} OpenedFeatureSource **
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 Event Arguments:​[[ThinkGeo.MapSuite.Core.OpenedFeatureSourceEventArgs|OpenedFeatureSourceEventArgs]] Event Arguments:​[[ThinkGeo.MapSuite.Core.OpenedFeatureSourceEventArgs|OpenedFeatureSourceEventArgs]]
  
 ** {{wiki:​PublicEvent.gif|}} ClosingFeatureSource ** ** {{wiki:​PublicEvent.gif|}} ClosingFeatureSource **
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 Event Arguments:​[[ThinkGeo.MapSuite.Core.ClosingFeatureSourceEventArgs|ClosingFeatureSourceEventArgs]] Event Arguments:​[[ThinkGeo.MapSuite.Core.ClosingFeatureSourceEventArgs|ClosingFeatureSourceEventArgs]]
  
 ** {{wiki:​PublicEvent.gif|}} ClosedFeatureSource ** ** {{wiki:​PublicEvent.gif|}} ClosedFeatureSource **
-N/A+  * //N/A//
 == Remarks == == Remarks ==
-N/A+  * //N/A//
  
 Event Arguments:​[[ThinkGeo.MapSuite.Core.ClosedFeatureSourceEventArgs|ClosedFeatureSourceEventArgs]] Event Arguments:​[[ThinkGeo.MapSuite.Core.ClosedFeatureSourceEventArgs|ClosedFeatureSourceEventArgs]]
  
  
thinkgeo.mapsuite.portablecore.inmemorygridfeaturesource.1442823075.txt.gz ยท Last modified: 2015/09/21 08:11 by admin