User Tools

Site Tools


thinkgeo.mapsuite.core.filegeodatabasefeaturesource

This is an old revision of the document!


Table of Contents

ThinkGeo.MapSuite.Core.FileGeoDatabaseFeatureSource

<!– Class –>

Inheritance Hierarchy

Members Summary

Public Constructors

Name Parameters DeclaringType Summary
Public MethodFileGeoDatabaseFeatureSource
Public MethodFileGeoDatabaseFeatureSource String, String
Public MethodFileGeoDatabaseFeatureSource String, String, String

Protected Constructors

Name Parameters DeclaringType Summary

Public Methods

Name Parameters DeclaringType Summary
Public MethodAddColumn FeatureSourceColumn FeatureSource
Public MethodAddFeature BaseShape, IDictionary<String, String> FeatureSource This method adds a new Feature composes of the passed in BaseShape to an existing transaction.
Public MethodAddFeature BaseShape FeatureSource This method adds a new Feature (composed of the passed-in BaseShape) to an existing transaction.
Public MethodAddFeature Feature FeatureSource This method adds a new Feature to an existing transaction.
Public MethodApplyFilters IEnumerable<Feature>, IEnumerable<String>, IEnumerable<String> FeatureSource
Public MethodBeginTransaction FeatureSource This method starts a new transaction if the FeasuteSource allows editing
Public MethodCanGetBoundingBoxQuickly FeatureSource
Public MethodCanGetCountQuickly FeatureSource
Public MethodCloneDeep FeatureSource Create a copy of a FeatureSource using the deep clone process.
Public MethodClose FeatureSource This method closes the FeatureSource and releases any resources it was using.
Public MethodCommitTransaction FeatureSource This method will commit the existing transaction to its underlying source of data.
Public MethodStatic MemberCreateFileGeoDatabase String
Public MethodStatic MemberCreateTable String, String, WellKnownType, IEnumerable<String>
Public MethodStatic MemberCreateTable String, String, WellKnownType, IEnumerable<FeatureSourceColumn>
Public MethodDeleteColumn String FeatureSource
Public MethodDeleteFeature String FeatureSource This method deletes a Feature from an existing transaction.
Public MethodEquals Object Object
Public MethodExecuteNonQuery String FeatureSource Executes a SQL statement against a connection object.
Public MethodExecuteQuery String FeatureSource Executes the query and returns the result returned by the query.
Public MethodExecuteScalar String FeatureSource Executes the query and returns the first column of the first row in the result set returned by the query. All other columns and rows are ignored.
Public MethodGetAllFeatures ReturningColumnsType, Int32, Int32 FeatureSource
Public MethodGetAllFeatures ReturningColumnsType FeatureSource This method returns all of the InternalFeatures in the FeatureSource.
Public MethodGetAllFeatures ReturningColumnsType, Int32 FeatureSource
Public MethodGetAllFeatures IEnumerable<String>, Int32, Int32 FeatureSource
Public MethodGetAllFeatures IEnumerable<String> FeatureSource This method returns all of the InternalFeatures in the FeatureSource.
Public MethodGetBoundingBox FeatureSource This method returns the bounding box which encompasses all of the features in the FeatureSource.
Public MethodGetBoundingBoxById String FeatureSource This method returns a bounding box based on the InternalFeatures Id specified.
Public MethodGetBoundingBoxByIds IEnumerable<String> FeatureSource This method returns a collection of bounding boxes based on the Feature Ids specified.
Public MethodGetBoundingBoxesByIds IEnumerable<String> FeatureSource This method returns a collection of bounding boxes based on the Feature Ids specified.
Public MethodStatic MemberGetColumnNames String, String
Public MethodGetColumns FeatureSource This method returns the columns available for the FeatureSource and caches them.
Public MethodGetCount FeatureSource This method returns the count of the number of records in this FeatureSource.
Public MethodGetDistinctColumnValues String FeatureSource
Public MethodGetFeatureById String, IEnumerable<String> FeatureSource This method returns a Feature by providing its Id in the FeatureSource.
Public MethodGetFeatureById String, ReturningColumnsType FeatureSource This method returns a Feature by providing its Id in the FeatureSource.
Public MethodGetFeaturesByColumnValue String, String FeatureSource Get all of the features by passing a columnName and a specified columValue.
Public MethodGetFeaturesByColumnValue String, String, ReturningColumnsType FeatureSource Get all of the features by passing a columnName and a specified columValue.
Public MethodGetFeaturesByColumnValue String, String, IEnumerable<String> FeatureSource Get all of the features by passing a columnName and a specified columValue.
Public MethodGetFeaturesByIds IEnumerable<String>, ReturningColumnsType FeatureSource This method returns a collection of InternalFeatures by providing a group of Ids.
Public MethodGetFeaturesByIds IEnumerable<String>, IEnumerable<String> FeatureSource This method returns a collection of InternalFeatures by providing a group of Ids.
Public MethodGetFeaturesByIds IEnumerable<String>, IEnumerable<String>, IEnumerable<String> FeatureSource
Public MethodGetFeaturesForDrawing RectangleShape, Double, Double, ReturningColumnsType FeatureSource This method returns the InternalFeatures that will be used for drawing.
Public MethodGetFeaturesForDrawing RectangleShape, Double, Double, IEnumerable<String> FeatureSource This method returns the InternalFeatures that will be used for drawing.
Public MethodGetFeaturesForDrawing RectangleShape, Double, Double, IEnumerable<String>, IEnumerable<String> FeatureSource
Public MethodGetFeaturesInsideBoundingBox RectangleShape, ReturningColumnsType FeatureSource This method returns all of the InternalFeatures of this FeatureSource inside of the specified bounding box.
Public MethodGetFeaturesInsideBoundingBox RectangleShape, IEnumerable<String> FeatureSource This method returns all of the InternalFeatures of this FeatureSource inside of the specified bounding box.
Public MethodGetFeaturesNearestTo BaseShape, GeographyUnit, Int32, ReturningColumnsType FeatureSource This method returns a user defined number of InternalFeatures that are closest to the TargetShape.
Public MethodGetFeaturesNearestTo BaseShape, GeographyUnit, Int32, IEnumerable<String> FeatureSource This method returns a user defined number of InternalFeatures that are closest to the TargetShape.
Public MethodGetFeaturesNearestTo Feature, GeographyUnit, Int32, IEnumerable<String>, Double, DistanceUnit FeatureSource This method returns a user defined number of InternalFeatures that are closest to the TargetShape.
Public MethodGetFeaturesNearestTo BaseShape, GeographyUnit, Int32, IEnumerable<String>, Double, DistanceUnit FeatureSource This method returns a user defined number of InternalFeatures that are closest to the TargetShape.
Public MethodGetFeaturesNearestTo Feature, GeographyUnit, Int32, ReturningColumnsType FeatureSource This method returns a user defined number of InternalFeatures that are closest to the TargetShape.
Public MethodGetFeaturesNearestTo Feature, GeographyUnit, Int32, IEnumerable<String> FeatureSource This method returns a user defined number of InternalFeatures that are closest to the TargetShape.
Public MethodGetFeaturesOutsideBoundingBox RectangleShape, ReturningColumnsType FeatureSource This method returns all of the InternalFeatures of this FeatureSource outside of the specified bounding box.
Public MethodGetFeaturesOutsideBoundingBox RectangleShape, IEnumerable<String> FeatureSource This method returns all of the InternalFeatures of this FeatureSource outside of the specified bounding box.
Public MethodGetFeaturesWithinDistanceOf BaseShape, GeographyUnit, DistanceUnit, Double, ReturningColumnsType FeatureSource This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.
Public MethodGetFeaturesWithinDistanceOf Feature, GeographyUnit, DistanceUnit, Double, IEnumerable<String> FeatureSource This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.
Public MethodGetFeaturesWithinDistanceOf Feature, GeographyUnit, DistanceUnit, Double, ReturningColumnsType FeatureSource This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.
Public MethodGetFeaturesWithinDistanceOf BaseShape, GeographyUnit, DistanceUnit, Double, IEnumerable<String> FeatureSource This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.
Public MethodGetFirstFeaturesWellKnownType FeatureSource This method returns the well known type that represents the first feature from FeatureSource.
Public MethodGetHashCode Object
Public MethodGetInternalProj4ProjectionParametersString
Public MethodStatic MemberGetTableNames String
Public MethodGetType Object
Public MethodOpen FeatureSource This method opens the FeatureSource so that it is initialized and ready to use.
Public MethodRefreshColumns FeatureSource This method refresh the columns available for the FeatureSource and caches them.
Public MethodRollbackTransaction FeatureSource This method will cancel an existing transaction. It will free up the internal memory cache of any InternalFeatures added, updated or deleted.
Public MethodSpatialQuery Feature, QueryType, ReturningColumnsType FeatureSource This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.
Public MethodSpatialQuery BaseShape, QueryType, IEnumerable<String>, IEnumerable<String> FeatureSource
Public MethodSpatialQuery BaseShape, QueryType, ReturningColumnsType FeatureSource This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.
Public MethodSpatialQuery Feature, QueryType, IEnumerable<String> FeatureSource This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.
Public MethodSpatialQuery BaseShape, QueryType, IEnumerable<String> FeatureSource This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.
Public MethodToString Object
Public MethodUpdateColumn String, FeatureSourceColumn FeatureSource
Public MethodUpdateFeature BaseShape FeatureSource This method updates a Feature (composed of the passed-in BaseShape) in an existing transaction.
Public MethodUpdateFeature Feature FeatureSource This method updates a Feature in an existing transaction.
Public MethodUpdateFeature BaseShape, IDictionary<String, String> FeatureSource This method updates a Feature (composed of the passed-in BaseShape) in an existing transaction.

Protected Methods

Name Parameters DeclaringType Summary
Protected MethodApplyFiltersCore IEnumerable<Feature>, IEnumerable<String>, String FeatureSource
Protected MethodCanGetBoundingBoxQuicklyCore FeatureSource
Protected MethodCanGetCountQuicklyCore FeatureSource(overriden)
Protected MethodCloneDeepCore FeatureSource Create a copy of a FeatureSource using the deep clone process. The default implementation uses serialization.
Protected MethodCloseCore FeatureSource(overriden)
Protected MethodCommitTransactionCore TransactionBuffer FeatureSource(overriden)
Protected MethodConvertToExternalProjection IEnumerable<RectangleShape> FeatureSource This method projects items based on the Projection of the FeatureSource.
Protected MethodConvertToExternalProjection RectangleShape FeatureSource This method projects items based on the Projection of the FeatureSource.
Protected MethodConvertToExternalProjection Feature FeatureSource This method projects items based on the Projection of the FeatureSource.
Protected MethodConvertToExternalProjection IEnumerable<Feature> FeatureSource This method projects items based on the Projection of the FeatureSource.
Protected MethodConvertToInternalProjection BaseShape FeatureSource This method de-projects items based on the Projection of the FeatureSource.
Protected MethodConvertToInternalProjection RectangleShape FeatureSource This method de-projects items based on the Projection of the FeatureSource.
Protected MethodConvertToInternalProjection IEnumerable<RectangleShape> FeatureSource This method de-projects items based on the Projection of the FeatureSource.
Protected MethodConvertToInternalProjection Feature FeatureSource This method de-projects items based on the Projection of the FeatureSource.
Protected MethodConvertToInternalProjection IEnumerable<Feature> FeatureSource This method de-projects items based on the Projection of the FeatureSource.
Protected MethodExecuteNonQueryCore String FeatureSource(overriden)
Protected MethodExecuteQueryCore String FeatureSource(overriden)
Protected MethodExecuteScalarCore String FeatureSource(overriden)
Protected MethodFinalize Object
Protected MethodGetAllFeaturesCore IEnumerable<String>, Int32, Int32 FeatureSource(overriden)
Protected MethodGetAllFeaturesCore IEnumerable<String> FeatureSource(overriden)
Protected MethodGetBoundingBoxByIdCore String FeatureSource(overriden)
Protected MethodGetBoundingBoxCore FeatureSource(overriden)
Protected MethodGetColumnNamesInsideFeatureSource IEnumerable<String> FeatureSource This method returns the field names that are in the FeatureSource from a list of provided field names.
Protected MethodGetColumnNamesOutsideFeatureSource IEnumerable<String> FeatureSource This method returns the field names that are not in the FeatureSource from a list of provided field names.
Protected MethodGetColumnsCore FeatureSource(overriden)
Protected MethodGetCountCore FeatureSource(overriden)
Protected MethodGetDistinctColumnValuesCore String FeatureSource
Protected MethodGetFeaturesByColumnValueCore String, String, IEnumerable<String> FeatureSource(overriden)
Protected MethodGetFeaturesByIdsCore IEnumerable<String>, IEnumerable<String> FeatureSource(overriden)
Protected MethodGetFeaturesForDrawingCore RectangleShape, Double, Double, IEnumerable<String> FeatureSource This method returns the InternalFeatures that will be used for drawing.
Protected MethodGetFeaturesInsideBoundingBoxCore RectangleShape, IEnumerable<String> FeatureSource(overriden)
Protected MethodGetFeaturesNearestToCore BaseShape, GeographyUnit, Int32, IEnumerable<String> FeatureSource This method returns a user defined number of InternalFeatures that are closest to the TargetShape.
Protected MethodGetFeaturesOutsideBoundingBoxCore RectangleShape, IEnumerable<String> FeatureSource This method returns all of the InternalFeatures of this FeatureSource outside of the specified bounding box.
Protected MethodGetFeaturesWithinDistanceOfCore BaseShape, GeographyUnit, DistanceUnit, Double, IEnumerable<String> FeatureSource This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.
Protected MethodGetFirstFeaturesWellKnownTypeCore FeatureSource(overriden)
Protected MethodGetReturningColumnNames ReturningColumnsType FeatureSource Get returning columnNames according to the returningColumnType.
Protected MethodMemberwiseClone Object
Protected MethodOnAppliedFilters AppliedFiltersFeatureSourceEventArgs FeatureSource
Protected MethodOnApplyingFilters ApplyingFiltersFeatureSourceEventArgs FeatureSource
Protected MethodOnClosedFeatureSource ClosedFeatureSourceEventArgs FeatureSource This method allows you to raise the ClosedFeatureSource event from a derived class.
Protected MethodOnClosingFeatureSource ClosingFeatureSourceEventArgs FeatureSource This method allows you to raise the ClosingFeatureSource event from a derived class.
Protected MethodOnCommittedTransaction CommittedTransactionEventArgs FeatureSource This method allows you to raise the CommittedTransaction event from a derived class.
Protected MethodOnCommittingTransaction CommittingTransactionEventArgs FeatureSource This method allows you to raise the CommittingTransaction event from a derived class.
Protected MethodOnCustomColumnFetch CustomColumnFetchEventArgs FeatureSource This method allows you to raise the CustomColumnFetch event from a derived class.
Protected MethodOnDrawingProgressChanged DrawingProgressChangedEventArgs FeatureSource
Protected MethodOnGettingColumns GettingColumnsFeatureSourceEventArgs FeatureSource
Protected MethodOnGettingFeaturesByIds GettingFeaturesByIdsFeatureSourceEventArgs FeatureSource
Protected MethodOnGettingFeaturesForDrawing GettingFeaturesForDrawingFeatureSourceEventArgs FeatureSource
Protected MethodOnGottenColumns GottenColumnsFeatureSourceEventArgs FeatureSource
Protected MethodOnOpenedFeatureSource OpenedFeatureSourceEventArgs FeatureSource This method allows you to raise the OpenedFeatureSource event from a derived class.
Protected MethodOnOpeningFeatureSource OpeningFeatureSourceEventArgs FeatureSource This method allows you to raise the OpeningFeatureSource event from a derived class.
Protected MethodOpenCore FeatureSource(overriden)
Protected MethodSpatialQueryCore BaseShape, QueryType, IEnumerable<String> FeatureSource This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.

Public Properties

Name Return DeclaringType Summary
Public PropertyCanExecuteSqlQuery Boolean FeatureSource This property specifies whether the FeatureSource can excute a SQL query or not. If it is false, then it will throw exception when these APIs are calleds: ExecuteScalar, ExecuteNonQuery, ExecuteQuery
Public PropertyCanModifyColumnStructure Boolean FeatureSource
Public PropertyFeatureIdColumn String This property gets or sets the name of the column that holds the unique feature Id.
Public PropertyFeatureIdsToExclude Collection<String> FeatureSource A collection of strings representing record id of features not to get in the Layer.
Public PropertyFilters Collection<String> FeatureSource
Public PropertyGeoCache FeatureCache FeatureSource The cache system.
Public PropertyGeometryValidationMode GeometryValidationMode FeatureSource
Public PropertyId String FeatureSource
Public PropertyIsEditable Boolean FeatureSource(overriden)
Public PropertyIsInTransaction Boolean FeatureSource This property returns true if the FeatureSource is in a transaction and false if it is not.
Public PropertyIsOpen Boolean FeatureSource This property returns true if the FeatureSource is open and false if it is not.
Public PropertyIsTransactionLive Boolean FeatureSource This property returns true if the features currently modified in a transaction are expected to reflect their state when calling other methods on the FeatureSource, such as spatial queries.
Public PropertyLinkExpressions Collection<String> FeatureSource
Public PropertyLinkSources Collection<LinkSource> FeatureSource
Public PropertyMaxRecordsToDraw Int32 FeatureSource
Public PropertyPathName String
Public PropertyProjection Projection FeatureSource This property holds the projection object that is used within the FeatureSource to ensure that features inside of the FeatureSource are projected.
Public PropertyTableName String
Public PropertyTransactionBuffer TransactionBuffer FeatureSource The TransactionBuffer used in the Transaction System.

Protected Properties

Name Return DeclaringType Summary
Protected PropertyCanExecuteSqlQueryCore Boolean FeatureSource(overriden)
Protected PropertyCanModifyColumnStructureCore Boolean FeatureSource
Protected PropertyFeatureSourceColumns Collection<FeatureSourceColumn> FeatureSource This property gets the columns of the feature source.
Protected PropertyIsOpenCore Boolean FeatureSource This property returns true if the FeatureSource is open and false if it is not.

Public Events

Name Event Arguments DeclaringType Summary
Public EventAppliedFilters AppliedFiltersFeatureSourceEventArgs FeatureSource
Public EventApplyingFilters ApplyingFiltersFeatureSourceEventArgs FeatureSource
Public EventClosedFeatureSource ClosedFeatureSourceEventArgs FeatureSource This event is called after the closing of the FeatureSource.
Public EventClosingFeatureSource ClosingFeatureSourceEventArgs FeatureSource This event is called before the closing of the FeatureSource.
Public EventCommittedTransaction CommittedTransactionEventArgs FeatureSource This event is raised after the CommitTransaction and the CommitTransactionCore are called and allows you access to the TransactionBuffer and the TransactionResults object before CommitTransaction method is returned.
Public EventCommittingTransaction CommittingTransactionEventArgs FeatureSource This event is raised after the CommitTransaction method is called, but before the CommitTransactionCore is called. This allows you access to the TransactionBuffer before the transaction is committed. It also allows you to cancel the pending commit of the transaction.
Public EventCustomColumnFetch CustomColumnFetchEventArgs FeatureSource This event is raised when fields are requested in a feature source method that do not exist in the feature source. It allows you to supplement the data from any outside source you have.
Public EventDrawingProgressChanged DrawingProgressChangedEventArgs FeatureSource
Public EventGettingColumns GettingColumnsFeatureSourceEventArgs FeatureSource
Public EventGettingFeaturesByIds GettingFeaturesByIdsFeatureSourceEventArgs FeatureSource
Public EventGettingFeaturesForDrawing GettingFeaturesForDrawingFeatureSourceEventArgs FeatureSource
Public EventGottenColumns GottenColumnsFeatureSourceEventArgs FeatureSource
Public EventOpenedFeatureSource OpenedFeatureSourceEventArgs FeatureSource This event is called after the opening of the FeatureSource.
Public EventOpeningFeatureSource OpeningFeatureSourceEventArgs FeatureSource This event is called before the opening of the FeatureSource.

Public Constructors

FileGeoDatabaseFeatureSource()

Parameters

Name Type Description

Go Back

FileGeoDatabaseFeatureSource(String, String)

Parameters

Name Type Description
fileGeoDatabasePathName String<!– System.String –>
tableName String<!– System.String –>

Go Back

FileGeoDatabaseFeatureSource(String, String, String)

Parameters

Name Type Description
fileGeoDatabasePathName String<!– System.String –>
tableName String<!– System.String –>
featureIdColumn String<!– System.String –>

Go Back

Protected Constructors

Public Methods

AddColumn(FeatureSourceColumn)

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
featureSourceColumn FeatureSourceColumn<!– ThinkGeo.MapSuite.Core.FeatureSourceColumn –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

AddFeature(BaseShape, IDictionary<String, String>)

This method adds a new Feature composes of the passed in BaseShape to an existing transaction.

Remarks

This method adds a new Feature (composed of the passed-in BaseShape) to an existing transaction. You will need to ensure that you have started a transaction by calling the BeginTransaction.

The Transaction System

The 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 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 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 modifications you perform during a transaction are live from the standpoint of the querying methods on the object.

As 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, 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 would be considered live, though not committed.

In the case where you modify records – such as expanding the size of a polygon – those changes are reflected as well. 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 instead would return the larger records. In this case, the larger records are returned. You can set this property to be false, as well; in which case, all of the spatially related methods would ignore anything that is currently in the transaction buffer waiting to be committed. In such a case, only after committing the transaction would the FeatureSource reflect the changes.

Return Value

Return Type Description
String<!– System.String –> This string is the ID that will uniquely identify this Feature while it is in a transaction.

Parameters

Name Type Description
shape BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –> This parameter represents the BaseShape that will be used to make new Feature that will be added to the transaction.
columnValues IDictionary<String,String><!– System.Collections.Generic.IDictionary{System.String,System.String} –> This parameter represents the columnValues for the new features taht will be added to the transaction.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

AddFeature(BaseShape)

This method adds a new Feature (composed of the passed-in BaseShape) to an existing transaction.

Remarks

This method adds a new Feature (composed of the passed-in BaseShape) to an existing transaction. You will need to ensure that you have started a transaction by calling BeginTransaction.

The Transaction System

The 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 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 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 modifications you perform during a transaction are live from the standpoint of the querying methods on the object.

As 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, 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 would be considered live, though not committed.

In the case where you modify records – such as expanding the size of a polygon – those changes are reflected as well. 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 instead would return the larger records. In this case, the larger records are returned. You can set this property to be false, as well; in which case, all of the spatially related methods would ignore anything that is currently in the transaction buffer waiting to be committed. In such a case, only after committing the transaction would the FeatureSource reflect the changes.

Return Value

Return Type Description
String<!– System.String –> This string is the ID that will uniquely identify this Feature while it is in a transaction.

Parameters

Name Type Description
shape BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –> This parameter represents the BaseShape that will be used to make the new Feature that will be added to the transaction.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

AddFeature(Feature)

This method adds a new Feature to an existing transaction.

Remarks

This method adds a new Feature to an existing transaction. You will need to ensure that you have started a transaction by calling BeginTransaction.

The Transaction System

The 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 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 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 modifications you perform during a transaction are live from the standpoint of the querying methods on the object.

As 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, 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 would be considered live, though not committed.

In the case where you modify records – such as expanding the size of a polygon – those changes are reflected as well. 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 instead would return the larger records. In this case, the larger records are returned. You can set this property to be false, as well; in which case, all of the spatially related methods would ignore anything that is currently in the transaction buffer waiting to be committed. In such a case, only after committing the transaction would the FeatureSource reflect the changes.

Return Value

Return Type Description
String<!– System.String –> This string is the ID that will uniquely identify this Feature while it is in a transaction.

Parameters

Name Type Description
feature Feature<!– ThinkGeo.MapSuite.Core.Feature –> This parameter represents the new Feature that will be added to the transaction.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

ApplyFilters(IEnumerable<Feature>, IEnumerable<String>, IEnumerable<String>)

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –>

Parameters

Name Type Description
features IEnumerable<Feature><!– System.Collections.Generic.IEnumerable{ThinkGeo.MapSuite.Core.Feature} –>
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>
filters IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

BeginTransaction()

This method starts a new transaction if the FeasuteSource allows editing

Remarks

This method is used to start a transaction, assuming that the FeatureSource allows editing. There are some additional prerequisites to beginning a transaction, such as ensuring that a transaction is not already in progress. You must also be sure that the FeatureSource has been opened.

The Transaction System

The 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 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 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 modifications you perform during a transaction are live from the standpoint of the querying methods on the object.

As 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, 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 would be considered live, though not committed.

In the case where you modify records – such as expanding the size of a polygon – those changes are reflected as well. 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 instead would return the larger records. In this case, the larger records are returned. You can set this property to be false, as well; in which case, all of the spatially related methods would ignore anything that is currently in the transaction buffer waiting to be committed. In such a case, only after committing the transaction would the FeatureSource reflect the changes.

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

CanGetBoundingBoxQuickly()

Return Value

Return Type Description
Boolean<!– System.Boolean –>

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

CanGetCountQuickly()

Return Value

Return Type Description
Boolean<!– System.Boolean –>

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

CloneDeep()

Create a copy of a FeatureSource using the deep clone process.

Remarks

The difference between deep clone and shallow clone is as follows: In shallow cloning, only the object is copied; the objects within it are not. By contrast, deep cloning copies the cloned object as well as all the objects within.

Return Value

Return Type Description
FeatureSource<!– ThinkGeo.MapSuite.Core.FeatureSource –> A cloned FeatureSource.

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

Close()

This method closes the FeatureSource and releases any resources it was using.

Remarks

This method is the concrete wrapper for the abstract method CloseCore. 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.

If you override the Core version of this method, it is recommended that you take the following things into account: This method may be called multiple times, so we suggest you write the method 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.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

CommitTransaction()

This method will commit the existing transaction to its underlying source of data.

Remarks

This method is the concrete wrapper for the virtual method CommitTransactionCore. As this is the concrete version, the real work is done in the Core version of the method. It will commit the existing transaction to its underlying source of data. It will then pass back the results of the commit, including any error(s) received. Lastly, it will free up the internal memory cache of any InternalFeatures added, updated or deleted. You will need to ensure that you have started a transaction by calling BeginTransaction.

The Transaction System

The 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 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 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 modifications you perform during a transaction are live from the standpoint of the querying methods on the object.

As 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, 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 would be considered live, though not committed.

In the case where you modify records – such as expanding the size of a polygon – those changes are reflected as well. 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 instead would return the larger records. In this case, the larger records are returned. You can set this property to be false, as well; in which case, all of the spatially related methods would ignore anything that is currently in the transaction buffer waiting to be committed. In such a case, only after committing the transaction would the FeatureSource reflect the changes.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
TransactionResult<!– ThinkGeo.MapSuite.Core.TransactionResult –> The returned decimalDegreesValue of this method is a TransactionResult class, which gives you the status of the transaction you just committed. It includes how many of the updates, adds, and deletes were successful and any errors that were encountered during the committing of the transaction.

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

CreateFileGeoDatabase(String)

<!– static –>

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
fileGeoDatabasePathName String<!– System.String –>

<!– ThinkGeo.MapSuite.Core.FileGeoDatabaseFeatureSource –> Go Back

CreateTable(String, String, WellKnownType, IEnumerable<String>)

<!– static –>

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
fileGeoDatabasePathName String<!– System.String –>
tableName String<!– System.String –>
wellKnownType WellKnownType<!– ThinkGeo.MapSuite.Core.WellKnownType –>
columns IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>

<!– ThinkGeo.MapSuite.Core.FileGeoDatabaseFeatureSource –> Go Back

CreateTable(String, String, WellKnownType, IEnumerable<FeatureSourceColumn>)

<!– static –>

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
fileGeoDatabasePathName String<!– System.String –>
tableName String<!– System.String –>
wellKnownType WellKnownType<!– ThinkGeo.MapSuite.Core.WellKnownType –>
columns IEnumerable<FeatureSourceColumn><!– System.Collections.Generic.IEnumerable{ThinkGeo.MapSuite.Core.FeatureSourceColumn} –>

<!– ThinkGeo.MapSuite.Core.FileGeoDatabaseFeatureSource –> Go Back

DeleteColumn(String)

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
columnName String<!– System.String –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

DeleteFeature(String)

This method deletes a Feature from an existing transaction.

Remarks

This method deletes a Feature from an existing transaction. You will need to ensure that you have started a transaction by calling the BeginTransaction.

The Transaction System

The 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 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 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 modifications you perform during a transaction are live from the standpoint of the querying methods on the object.

As 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, 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 would be considered live, though not committed.

In the case where you modify records – such as expanding the size of a polygon – those changes are reflected as well. 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 instead would return the larger records. In this case, the larger records are returned. You can set this property to be false, as well; in which case, all of the spatially related methods would ignore anything that is currently in the transaction buffer waiting to be committed. In such a case, only after committing the transaction would the FeatureSource reflect the changes.

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
id String<!– System.String –> This string is the Id of the feature in the FeatureSource you wish to delete.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

Equals(Object)

Return Value

Return Type Description
Boolean<!– System.Boolean –>

Parameters

Name Type Description
obj Object<!– System.Object –>

<!– System.Object –> Go Back

ExecuteNonQuery(String)

Executes a SQL statement against a connection object.

Remarks

You can use ExecuteNonQuery to perform catalog operations (for example, querying the structure of a database or creating database objects such as tables), or to change the data in a database by executing UPDATE, INSERT, or DELETE statements. Although ExecuteNonQuery does not return any rows, any output parameters or return values mapped to parameters are populated with data. For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command.

Return Value

Return Type Description
Int32<!– System.Int32 –> The number of rows affected.

Parameters

Name Type Description
sqlStatement String<!– System.String –> The sqlStatement to be excuted.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

ExecuteQuery(String)

Executes the query and returns the result returned by the query.

Remarks

Use the ExcuteScalar method to retrieve a single value from the database. This requires less code than using the ExcuteQuery method and then performing the operations necessary to generate the single value using the data.

Return Value

Return Type Description
DataTable<!– System.Data.DataTable –> The result set in the format of dataTable.

Parameters

Name Type Description
sqlStatement String<!– System.String –> The sqlStatement to be excuted.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

ExecuteScalar(String)

Executes the query and returns the first column of the first row in the result set returned by the query. All other columns and rows are ignored.

Remarks

Use the ExcuteScalar method to retrieve a single value from the database. This requires less code than using the ExcuteQuery method and then performing the operations necessary to generate the single value using the data.

Return Value

Return Type Description
Object<!– System.Object –> The first column of the first row in the result set.

Parameters

Name Type Description
sqlStatement String<!– System.String –> The sqlStatement to be excuted.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetAllFeatures(ReturningColumnsType, Int32, Int32)

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –>

Parameters

Name Type Description
returningColumnTypes ReturningColumnsType<!– ThinkGeo.MapSuite.Core.ReturningColumnsType –>
startIndex Int32<!– System.Int32 –>
takeCount Int32<!– System.Int32 –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetAllFeatures(ReturningColumnsType)

This method returns all of the InternalFeatures in the FeatureSource.

Remarks

This method returns all of the InternalFeatures in the FeatureSource. It will return whatever is returned by the GetAllFeaturesCore method, along with any of the additions or subtractions made if you are in a transaction and that transaction is configured to be live.

The main purpose of this method is to be the anchor of all of our default virtual implementations within this class. We as the framework developers wanted to provide you the user with as much default virtual implementation as possible. To do this, we needed a way to get access to all of the features. For example, let's say we want to create a default implementation for finding all of the InternalFeatures in a bounding box. Because this is an abstract class, we do not know the specifics of the underlying data or how its spatial indexes work. What we do know is that if we get all of the records, then we can brute-force the answer. In this way, if you inherited from this class and only implemented this one method, we can provide default implementations for virtually every other API.

While this is nice for you the developer if you decide to create your own FeatureSource, it comes with a price: namely, it is very inefficient. In the example we just discussed (about finding all of the InternalFeatures in a bounding box), we would not want to look at every record to fulfil this method. Instead, we would want to override the GetFeaturesInsideBoundingBoxCore and implement specific code that would be faster. For example, in Oracle Spatial there is a specific SQL statement to perform this operation very quickly. The same holds true with other specific FeatureSource examples.

Most default implementations in the FeatureSource call the GetFeaturesInsideBoundingBoxCore, which by default calls the GetAllFeaturesCore. It is our advice that if you create your own FeatureSource that you ALWAYS override the GetFeatureInsideBoundingBox. This will ensure that nearly every other API will operate efficiently. Please see the specific API to determine what method it uses.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> The returned decimalDegreesValue is a collection of all of the InternalFeatures in the FeatureSource.

Parameters

Name Type Description
returningColumnNamesType ReturningColumnsType<!– ThinkGeo.MapSuite.Core.ReturningColumnsType –> This parameter allows you to select a type from the ReturningColumnsType that you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetAllFeatures(ReturningColumnsType, Int32)

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –>

Parameters

Name Type Description
returningColumnTypes ReturningColumnsType<!– ThinkGeo.MapSuite.Core.ReturningColumnsType –>
startIndex Int32<!– System.Int32 –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetAllFeatures(IEnumerable<String>, Int32, Int32)

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –>

Parameters

Name Type Description
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>
startIndex Int32<!– System.Int32 –>
takeCount Int32<!– System.Int32 –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetAllFeatures(IEnumerable<String>)

This method returns all of the InternalFeatures in the FeatureSource.

Remarks

This method returns all of the InternalFeatures in the FeatureSource. It will return whatever is returned by the GetAllFeaturesCore method, along with any of the additions or subtractions made if you are in a transaction and that transaction is configured to be live.

The main purpose of this method is to be the anchor of all of our default virtual implementations within this class. We as the framework developers wanted to provide you the user with as much default virtual implementation as possible. To do this, we needed a way to get access to all of the features. For example, let's say we want to create a default implementation for finding all of the InternalFeatures in a bounding box. Because this is an abstract class, we do not know the specifics of the underlying data or how its spatial indexes work. What we do know is that if we get all of the records, then we can brute-force the answer. In this way, if you inherited from this class and only implemented this one method, we can provide default implementations for virtually every other API.

While this is nice for you the developer if you decide to create your own FeatureSource, it comes with a price: namely, it is very inefficient. In the example we just discussed (about finding all of the InternalFeatures in a bounding box), we would not want to look at every record to fulfil this method. Instead, we would want to override the GetFeaturesInsideBoundingBoxCore and implement specific code that would be faster. For example, in Oracle Spatial there is a specific SQL statement to perform this operation very quickly. The same holds true with other specific FeatureSource examples.

Most default implementations in the FeatureSource call the GetFeaturesInsideBoundingBoxCore, which by default calls the GetAllFeaturesCore. It is our advice that if you create your own FeatureSource that you ALWAYS override the GetFeatureInsideBoundingBox. This will ensure that nearly every other API will operate efficiently. Please see the specific API to determine what method it uses.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> The returned decimalDegreesValue is a collection of all of the InternalFeatures in the FeatureSource.

Parameters

Name Type Description
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetBoundingBox()

This method returns the bounding box which encompasses all of the features in the FeatureSource.

Remarks

This method is the concrete wrapper for the virtual method GetBoundingBoxCore. It will return whatever is returned by the GetBoundingBoxCore method, along with any additions or subtractions made if you are in a transaction and that transaction is configured to be live. To determine what the default implementation of the abstract GetBoundingBoxCore method is, please see the documentation for it.

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.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –> This method returns the bounding box which encompasses all of the features in the FeatureSource.

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetBoundingBoxById(String)

This method returns a bounding box based on the InternalFeatures Id specified.

Remarks

This method returns a bounding box by providing an Id. The internal implementation calls the GetFeaturesByIdsCore and only passes one Id in the collection. That method in turn calls the GetAllFeaturesCore. Because of this, if you want a more efficient version of this method, then we highly suggest you override the GetFeaturesByIdsCore method and provide a fast way to find a group of InternalFeatures by their Id.

Return Value

Return Type Description
RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –> This method returns a bounding box based on the InternalFeatures Id specified.

Parameters

Name Type Description
id String<!– System.String –> This parameter represents the Id for the InternalFeatures whose bounding box you want.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetBoundingBoxByIds(IEnumerable<String>)

This method returns a collection of bounding boxes based on the Feature Ids specified.

Remarks

This method returns a bounding boxes by providing a goupd of Ids. The internal implementation calls the GetFeaturesByIdsCore. That method in turn calls the GetAllFeaturesCore. Because of this, if you want a more efficient version of this method, then we highly suggest you override the GetFeaturesByIdsCore method and provide a fast way to find a group of InternalFeatures by their Id.

Return Value

Return Type Description
RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –> This method returns a collection of bounding boxes based on the Feature Ids specified.

Parameters

Name Type Description
ids IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter represents the group of Ids for the InternalFeatures whose bounding boxes you want.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetBoundingBoxesByIds(IEnumerable<String>)

This method returns a collection of bounding boxes based on the Feature Ids specified.

Remarks

This method returns a bounding boxes by providing a goupd of Ids. The internal implementation calls the GetFeaturesByIdsCore. That method in turn calls the GetAllFeaturesCore. Because of this, if you want a more efficient version of this method, then we highly suggest you override the GetFeaturesByIdsCore method and provide a fast way to find a group of InternalFeatures by their Id.

Return Value

Return Type Description
Collection<RectangleShape><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.RectangleShape} –> This method returns a collection of bounding boxes based on the Feature Ids specified.

Parameters

Name Type Description
ids IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter represents the group of Ids for the InternalFeatures whose bounding boxes you want.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetColumnNames(String, String)

<!– static –>

Return Value

Return Type Description
Collection<String><!– System.Collections.ObjectModel.Collection{System.String} –>

Parameters

Name Type Description
fileGeoDatabasePathName String<!– System.String –>
tableName String<!– System.String –>

<!– ThinkGeo.MapSuite.Core.FileGeoDatabaseFeatureSource –> Go Back

GetColumns()

This method returns the columns available for the FeatureSource and caches them.

Remarks

As this is the concrete method wrapping the GetColumnsCore, it is important to note that this method will cache the results to GetColumnsCore. What this means is that the first time this method is called it will call GetCollumnsCore, which is protected, and cache the results. The next time this method is called it will not call GetColumnsCore again. This was done to increase speed, as this is a critical method that is used very often in the internal code of the class.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<FeatureSourceColumn><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.FeatureSourceColumn} –> This method returns the columns available for the FeatureSource.

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetCount()

This method returns the count of the number of records in this FeatureSource.

Remarks

This method is the concrete wrapper for the virtual method GetCountCore. It will return whatever is returned by the GetCountCore method, along with any additions or subtractions made if you are in a transaction and that transaction is configured to be live. To determine what the default implementation of the abstract GetCountCore method is, please see the documentation for it.

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.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Int32<!– System.Int32 –> This method returns the count of the number of records in this FeatureSource.

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetDistinctColumnValues(String)

Return Value

Return Type Description
Collection<DistinctColumnValue><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.DistinctColumnValue} –>

Parameters

Name Type Description
columnName String<!– System.String –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeatureById(String, IEnumerable<String>)

This method returns a Feature by providing its Id in the FeatureSource.

Remarks

This method returns a collection of InternalFeatures by providing a group of Ids. The internal implementation calls the GetFeaturesByIdsCore and only passes one Id in the collection. That method in turn calls the GetAllFeaturesCore. Because of this, if you want a more efficient version of this method, we highly suggest you override the GetFeaturesByIdsCore method and provide a fast way to find a group of InternalFeatures by their Id.

Return Value

Return Type Description
Feature<!– ThinkGeo.MapSuite.Core.Feature –> This method returns a Feature by providing its Id in the FeatureSource.

Parameters

Name Type Description
id String<!– System.String –> This parameter is the Id which uniquely identifies it in the FeatureSource.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeatureById(String, ReturningColumnsType)

This method returns a Feature by providing its Id in the FeatureSource.

Remarks

This method returns a collection of InternalFeatures by providing a group of Ids. The internal implementation calls the GetFeaturesByIdsCore and only passes one Id in the collection. That method in turn calls the GetAllFeaturesCore. Because of this, if you want a more efficient version of this method, then we highly suggest you override the GetFeaturesByIdsCore method and provide a fast way to find a group of InternalFeatures by their Id.

Return Value

Return Type Description
Feature<!– ThinkGeo.MapSuite.Core.Feature –> This method returns a Feature by providing its Id in the FeatureSource.

Parameters

Name Type Description
id String<!– System.String –> This parameter is the Id which uniquely identifies it in the FeatureSource.
returningColumnNamesType ReturningColumnsType<!– ThinkGeo.MapSuite.Core.ReturningColumnsType –> This parameter allows you to select a type from the ReturningColumnsType that you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesByColumnValue(String, String)

Get all of the features by passing a columnName and a specified columValue.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> The returnning features matches the columnValue.

Parameters

Name Type Description
columnName String<!– System.String –> The specified columnName to match the columnValue.
columnValue String<!– System.String –> The specified columnValue to match those returning features.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesByColumnValue(String, String, ReturningColumnsType)

Get all of the features by passing a columnName and a specified columValue.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> The returnning features matches the columnValue.

Parameters

Name Type Description
columnName String<!– System.String –> The specified columnName to match the columnValue.
columnValue String<!– System.String –> The specified columnValue to match those returning features.
returningColumnType ReturningColumnsType<!– ThinkGeo.MapSuite.Core.ReturningColumnsType –> This parameter allows you to select a type from the ReturningColumnsType that you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesByColumnValue(String, String, IEnumerable<String>)

Get all of the features by passing a columnName and a specified columValue.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> The returnning features matches the columnValue.

Parameters

Name Type Description
columnName String<!– System.String –> The specified columnName to match the columnValue.
columnValue String<!– System.String –> The specified columnValue to match those returning features.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesByIds(IEnumerable<String>, ReturningColumnsType)

This method returns a collection of InternalFeatures by providing a group of Ids.

Remarks

This method returns a collection of InternalFeatures by providing a group of Ids. The internal implementation calls the GetFeaturesByIdsCore. That method in turn calls the GetAllFeaturesCore. Because of this, if you want a more efficient version of this method, then we highly suggest you override the GetFeaturesByIdsCore method and provide a fast way to find a group of InternalFeatures by their Id.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns a collection of InternalFeatures by providing a group of Ids.

Parameters

Name Type Description
ids IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter represents the group of Ids which uniquely identifies the InternalFeatures in the FeatureSource.
returningColumnNamesType ReturningColumnsType<!– ThinkGeo.MapSuite.Core.ReturningColumnsType –> This parameter allows you to select a type from the ReturningColumnsType that you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesByIds(IEnumerable<String>, IEnumerable<String>)

This method returns a collection of InternalFeatures by providing a group of Ids.

Remarks

This method returns a collection of InternalFeatures by providing a group of Ids. The internal implementation calls the GetFeaturesByIdsCore. That method in turn calls the GetAllFeaturesCore. Because of this, if you want a more efficient version of this method, then we highly suggest you override the GetFeaturesByIdsCore method and provide a fast way to find a group of InternalFeatures by their Id.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns a collection of InternalFeatures by providing a group of Ids.

Parameters

Name Type Description
ids IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter represents the group of Ids which uniquely identifies the InternalFeatures in the FeatureSource.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesByIds(IEnumerable<String>, IEnumerable<String>, IEnumerable<String>)

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –>

Parameters

Name Type Description
ids IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>
filters IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesForDrawing(RectangleShape, Double, Double, ReturningColumnsType)

This method returns the InternalFeatures that will be used for drawing.

Remarks

This method returns all of the InternalFeatures of this FeatureSource that are inside of the specified bounding box. If you are in a transaction and that transaction is live, this method will also take that into consideration.

The default implementation of GetFeaturesForDrawing uses the GetFeaturesInsodeBoundingBoxCore with some optimizations based on the screen width and height. For example, we can determine if a feature is going to draw in only one to four pixels and in that case we may not draw the entire feature but just a subset of it instead.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns the InternalFeatures that will be used for drawing.

Parameters

Name Type Description
boundingBox RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –> This parameter is the bounding box of the InternalFeatures that you want to draw.
screenWidth Double<!– System.Double –> This parameter is the width of the canvas, in screen pixels, that you will draw on.
screenHeight Double<!– System.Double –> This parameter is the height of the canvas, in screen pixels, that you will draw on.
returningColumnNamesType ReturningColumnsType<!– ThinkGeo.MapSuite.Core.ReturningColumnsType –> This parameter allows you to select a type from the ReturningColumnsType you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesForDrawing(RectangleShape, Double, Double, IEnumerable<String>)

This method returns the InternalFeatures that will be used for drawing.

Remarks

This method returns all of the InternalFeatures of this FeatureSource that are inside of the specified bounding box. If you are in a transaction and that transaction is live, this method will also take that into consideration.

The default implementation of GetFeaturesForDrawing uses the GetFeaturesInsodeBoundingBoxCore with some optimizations based on the screen width and height. For example, we can determine if a feature is going to draw in only one to four pixels and in that case we may not draw the entire feature but just a subset of it instead.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns the InternalFeatures that will be used for drawing.

Parameters

Name Type Description
boundingBox RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –> This parameter is the bounding box of the InternalFeatures you want to draw.
screenWidth Double<!– System.Double –> This parameter is the width of the canvas, in screen pixels, that you will draw on.
screenHeight Double<!– System.Double –> This parameter is the height of the canvas, in screen pixels, that you will draw on.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesForDrawing(RectangleShape, Double, Double, IEnumerable<String>, IEnumerable<String>)

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –>

Parameters

Name Type Description
boundingBox RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –>
screenWidth Double<!– System.Double –>
screenHeight Double<!– System.Double –>
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>
filters IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesInsideBoundingBox(RectangleShape, ReturningColumnsType)

This method returns all of the InternalFeatures of this FeatureSource inside of the specified bounding box.

Remarks

This method returns all of the InternalFeatures of this FeatureSource inside of the specified bounding box. If you are in a transaction and that transaction is live, this method will also take that into consideration.

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. That is especially important for this method, as many other default virtual methods use this for their calculations. When you override this method, we highly recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> The returned decimalDegreesValue is a collection of all of the InternalFeatures that are inside of the bounding box.

Parameters

Name Type Description
boundingBox RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –> This parameter represents the bounding box that you wish to find InternalFeatures inside of.
returningColumnNamesType ReturningColumnsType<!– ThinkGeo.MapSuite.Core.ReturningColumnsType –> This parameter allows you to select a type from the ReturningColumnsType that you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesInsideBoundingBox(RectangleShape, IEnumerable<String>)

This method returns all of the InternalFeatures of this FeatureSource inside of the specified bounding box.

Remarks

This method returns all of the InternalFeatures of this FeatureSource inside of the specified bounding box. If you are in a transaction and that transaction is live, this method will also take that into consideration.

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. That is especially important for this method, as many other default virtual methods use this for their calculations. When you override this method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> The returned decimalDegreesValue is a collection of all of the InternalFeatures that are inside of the bounding box.

Parameters

Name Type Description
boundingBox RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –> This parameter represents the bounding box that you wish to find InternalFeatures inside of.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesNearestTo(BaseShape, GeographyUnit, Int32, ReturningColumnsType)

This method returns a user defined number of InternalFeatures that are closest to the TargetShape.

Remarks

This method returns a user defined number of InternalFeatures that are closest to the TargetShape. It is important to note that the TargetShape and the FeatureSource must use the same unit, such as feet or meters. If they do not, then the results will not be predictable or correct. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.

The implementation we provided creates a small bounding box around the TargetShape and then queries the features inside of it. If we reach the number of items to find, then we measure the returned InternalFeatures to find the nearest. If we do not find enough records, we scale up the bounding box and try again. As you can see, this is not the most efficient method. If your underlying data provider exposes a more efficient way, we recommend you override the Core version of this method and implement it.

The default implementation of GetFeaturesNearestCore uses the GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override GetFeaturesInsideBoundingBoxCore method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns a user defined number of InternalFeatures that are closest to the TargetShape.

Parameters

Name Type Description
targetShape BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –> This parameter is the shape you want to find InternalFeatures close to.
unitOfData GeographyUnit<!– ThinkGeo.MapSuite.Core.GeographyUnit –> This parameter is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
maxItemsToFind Int32<!– System.Int32 –> This parameter defines how many close InternalFeatures to find around the TargetShape.
returningColumnNamesType ReturningColumnsType<!– ThinkGeo.MapSuite.Core.ReturningColumnsType –> This parameter allows you to select a type from the ReturningColumnsType that you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesNearestTo(BaseShape, GeographyUnit, Int32, IEnumerable<String>)

This method returns a user defined number of InternalFeatures that are closest to the TargetShape.

Remarks

This method returns a user defined number of InternalFeatures that are closest to the TargetShape. It is important to note that the TargetShape and the FeatureSource must use the same unit, such as feet or meters. If they do not, then the results will not be predictable or correct. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.

The implementation we provided creates a small bounding box around the TargetShape and then queries the features inside of it. If we reach the number of items to find, then we measure the returned InternalFeatures to find the nearest. If we do not find enough records, we scale up the bounding box and try again. As you can see, this is not the most efficient method. If your underlying data provider exposes a more efficient way, we recommend you override the Core version of this method and implement it.

The default implementation of GetFeaturesNearestCore uses the GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override GetFeaturesInsideBoundingBoxCore method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns a user defined number of InternalFeatures that are closest to the TargetShape.

Parameters

Name Type Description
targetShape BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –> This parameter is the shape you want to find InternalFeatures close to.
unitOfFeatureSource GeographyUnit<!– ThinkGeo.MapSuite.Core.GeographyUnit –> This parameter is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
maxItemsToFind Int32<!– System.Int32 –> This parameter defines how many close InternalFeatures to find around the TargetShape.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesNearestTo(Feature, GeographyUnit, Int32, IEnumerable<String>, Double, DistanceUnit)

This method returns a user defined number of InternalFeatures that are closest to the TargetShape.

Remarks

This method returns a user defined number of InternalFeatures that are closest to the TargetShape. It is important to note that the TargetShape and the FeatureSource must use the same unit, such as feet or meters. If they do not, then the results will not be predictable or correct. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.

The implementation we provided creates a small bounding box around the TargetShape and then queries the features inside of it. If we reach the number of items to find, then we measure the returned InternalFeatures to find the nearest. If we do not find enough records, we scale up the bounding box and try again. As you can see, this is not the most efficient method. If your underlying data provider exposes a more efficient way, we recommend you override the Core version of this method and implement it.

The default implementation of GetFeaturesNearestCore uses the GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override GetFeaturesInsideBoundingBoxCore method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns a user defined number of InternalFeatures that are closest to the TargetShape.

Parameters

Name Type Description
targetFeature Feature<!– ThinkGeo.MapSuite.Core.Feature –> This parameter is feature you want to find InternalFeatures close to.
unitOfData GeographyUnit<!– ThinkGeo.MapSuite.Core.GeographyUnit –> This parameter is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
maxItemsToFind Int32<!– System.Int32 –> This parameter defines how many close InternalFeatures to find around the TargetShape.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.
searchRadius Double<!– System.Double –> Limit the maximize distance proximately to search closest records.
unitOfSearchRadius DistanceUnit<!– ThinkGeo.MapSuite.Core.DistanceUnit –> The unit of distanceLimits parameter.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesNearestTo(BaseShape, GeographyUnit, Int32, IEnumerable<String>, Double, DistanceUnit)

This method returns a user defined number of InternalFeatures that are closest to the TargetShape.

Remarks

This method returns a user defined number of InternalFeatures that are closest to the TargetShape. It is important to note that the TargetShape and the FeatureSource must use the same unit, such as feet or meters. If they do not, then the results will not be predictable or correct. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.

The implementation we provided creates a small bounding box around the TargetShape and then queries the features inside of it. If we reach the number of items to find, then we measure the returned InternalFeatures to find the nearest. If we do not find enough records, we scale up the bounding box and try again. As you can see, this is not the most efficient method. If your underlying data provider exposes a more efficient way, we recommend you override the Core version of this method and implement it.

The default implementation of GetFeaturesNearestCore uses the GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override GetFeaturesInsideBoundingBoxCore method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns a user defined number of InternalFeatures that are closest to the TargetShape.

Parameters

Name Type Description
targetShape BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –> This parameter is the shape you want to find InternalFeatures close to.
unitOfData GeographyUnit<!– ThinkGeo.MapSuite.Core.GeographyUnit –> This parameter is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
maxItemsToFind Int32<!– System.Int32 –> This parameter defines how many close InternalFeatures to find around the TargetShape.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.
searchRadius Double<!– System.Double –> Limit the maximize distance proximately to search closest records.
unitOfSearchRadius DistanceUnit<!– ThinkGeo.MapSuite.Core.DistanceUnit –> The unit of searchRadius parameter.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesNearestTo(Feature, GeographyUnit, Int32, ReturningColumnsType)

This method returns a user defined number of InternalFeatures that are closest to the TargetShape.

Remarks

This method returns a user defined number of InternalFeatures that are closest to the TargetShape. It is important to note that the TargetShape and the FeatureSource must use the same unit, such as feet or meters. If they do not, then the results will not be predictable or correct. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.

The implementation we provided creates a small bounding box around the TargetShape and then queries the features inside of it. If we reach the number of items to find, then we measure the returned InternalFeatures to find the nearest. If we do not find enough records, we scale up the bounding box and try again. As you can see, this is not the most efficient method. If your underlying data provider exposes a more efficient way, we recommend you override the Core version of this method and implement it.

The default implementation of GetFeaturesNearestCore uses the GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override GetFeaturesInsideBoundingBoxCore method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns a user defined number of InternalFeatures that are closest to the TargetShape.

Parameters

Name Type Description
targetFeature Feature<!– ThinkGeo.MapSuite.Core.Feature –> This parameter is the target feature you want to find InternalFeatures close to.
unitOfData GeographyUnit<!– ThinkGeo.MapSuite.Core.GeographyUnit –> This parameter is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
maxItemsToFind Int32<!– System.Int32 –> This parameter defines how many close InternalFeatures to find around the TargetShape.
returningColumnNamesType ReturningColumnsType<!– ThinkGeo.MapSuite.Core.ReturningColumnsType –> This parameter allows you to select a type from the ReturningColumnsType that you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesNearestTo(Feature, GeographyUnit, Int32, IEnumerable<String>)

This method returns a user defined number of InternalFeatures that are closest to the TargetShape.

Remarks

This method returns a user defined number of InternalFeatures that are closest to the TargetShape. It is important to note that the TargetShape and the FeatureSource must use the same unit, such as feet or meters. If they do not, then the results will not be predictable or correct. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.

The implementation we provided creates a small bounding box around the TargetShape and then queries the features inside of it. If we reach the number of items to find, then we measure the returned InternalFeatures to find the nearest. If we do not find enough records, we scale up the bounding box and try again. As you can see, this is not the most efficient method. If your underlying data provider exposes a more efficient way, we recommend you override the Core version of this method and implement it.

The default implementation of GetFeaturesNearestCore uses the GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override GetFeaturesInsideBoundingBoxCore method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns a user defined number of InternalFeatures that are closest to the TargetShape.

Parameters

Name Type Description
targetFeature Feature<!– ThinkGeo.MapSuite.Core.Feature –> This parameter is the feature you want to find InternalFeatures close to.
unitOfData GeographyUnit<!– ThinkGeo.MapSuite.Core.GeographyUnit –> This parameter is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
maxItemsToFind Int32<!– System.Int32 –> This parameter defines how many close InternalFeatures to find around the TargetShape.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesOutsideBoundingBox(RectangleShape, ReturningColumnsType)

This method returns all of the InternalFeatures of this FeatureSource outside of the specified bounding box.

Remarks

This method returns all of the InternalFeatures of this FeatureSource outside of the specified bounding box. If you are in a transaction and that transaction is live, this method will also take that into consideration.

The default implementation of GetFeaturesOutsideBoundingBoxCore uses the GetAllRecordsCore method to determine which InternalFeatures are outside of the bounding box. We strongly recommend that you provide your own implementation for this method that will be more efficient.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns all of the InternalFeatures of this FeatureSource outside of the specified bounding box.

Parameters

Name Type Description
boundingBox RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –> This parameter represents the bounding box that you wish to find InternalFeatures outside of.
returningColumnNamesType ReturningColumnsType<!– ThinkGeo.MapSuite.Core.ReturningColumnsType –> This parameter allows you to select a type from the ReturningColumnsType that you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesOutsideBoundingBox(RectangleShape, IEnumerable<String>)

This method returns all of the InternalFeatures of this FeatureSource outside of the specified bounding box.

Remarks

This method returns all of the InternalFeatures of this FeatureSource outside of the specified bounding box. If you are in a transaction and that transaction is live, this method will also take that into consideration.

The default implementation of GetFeaturesOutsideBoundingBoxCore uses the GetAllRecordsCore method to determine which InternalFeatures are outside of the bounding box. We strongly recommend that you provide your own implementation for this method that will be more efficient.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns all of the InternalFeatures of this FeatureSource outside of the specified bounding box.

Parameters

Name Type Description
boundingBox RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –> This parameter represents the bounding box that you wish to find InternalFeatures outside of.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesWithinDistanceOf(BaseShape, GeographyUnit, DistanceUnit, Double, ReturningColumnsType)

This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.

Remarks

This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape. It is important to note that the TargetShape and the FeatureSource must use the same unit, such as feet or meters. If they do not, then the results will not be predictable or correct. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.

The implementation we provided creates a bounding box around the TargetShape using the distance supplied and then queries the features inside of it. This may not be the most efficient method for this operation. If your underlying data provider exposes a more efficient way, we recommend you override the Core version of this method and implement it.

The default implementation of GetFeaturesWithinDistanceOfCore uses the GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override GetFeaturesInsideBoundingBoxCore method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.

Parameters

Name Type Description
targetShape BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –> The shape you wish to find InternalFeatures within a distance of.
unitOfData GeographyUnit<!– ThinkGeo.MapSuite.Core.GeographyUnit –> This parameter is the unit of data that the FeatureSource and TargetShape are in.
distanceUnit DistanceUnit<!– ThinkGeo.MapSuite.Core.DistanceUnit –> This parameter specifies the measurement unit for the distance parameter, such as feet, miles, kilometers, etc.
distance Double<!– System.Double –> This parameter specifies the distance in which to find InternalFeatures around the TargetShape.
returningColumnNamesType ReturningColumnsType<!– ThinkGeo.MapSuite.Core.ReturningColumnsType –> This parameter allows you to select a type from the ReturningColumnsType that you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesWithinDistanceOf(Feature, GeographyUnit, DistanceUnit, Double, IEnumerable<String>)

This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.

Remarks

This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape. It is important to note that the TargetShape and the FeatureSource must use the same unit, such as feet or meters. If they do not, then the results will not be predictable or correct. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.

The implementation we provided creates a bounding box around the TargetShape using the distance supplied and then queries the features inside of it. This may not be the most efficient method for this operation. If your underlying data provider exposes a more efficient way, we recommend you override the Core version of this method and implement it.

The default implementation of GetFeaturesWithinDistanceOfCore uses the GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override GetFeaturesInsideBoundingBoxCore method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.

Parameters

Name Type Description
targetFeature Feature<!– ThinkGeo.MapSuite.Core.Feature –> The feature you wish to find InternalFeatures within a distance of.
unitOfData GeographyUnit<!– ThinkGeo.MapSuite.Core.GeographyUnit –> This parameter is the unit of data that the FeatureSource and TargetShape are in.
distanceUnit DistanceUnit<!– ThinkGeo.MapSuite.Core.DistanceUnit –> This parameter specifies the measurement unit for the distance parameter, such as feet, miles, kilometers, etc.
distance Double<!– System.Double –> This parameter specifies the distance in which to find InternalFeatures around the TargetShape.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesWithinDistanceOf(Feature, GeographyUnit, DistanceUnit, Double, ReturningColumnsType)

This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.

Remarks

This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape. It is important to note that the TargetShape and the FeatureSource must use the same unit, such as feet or meters. If they do not, then the results will not be predictable or correct. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.

The implementation we provided creates a bounding box around the TargetShape using the distance supplied and then queries the features inside of it. This may not be the most efficient method for this operation. If your underlying data provider exposes a more efficient way, we recommend you override the Core version of this method and implement it.

The default implementation of GetFeaturesWithinDistanceOfCore uses the GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override GetFeaturesInsideBoundingBoxCore method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.

Parameters

Name Type Description
targetFeature Feature<!– ThinkGeo.MapSuite.Core.Feature –> The feature you wish to find InternalFeatures within a distance of.
unitOfData GeographyUnit<!– ThinkGeo.MapSuite.Core.GeographyUnit –> This parameter is the unit of data that the FeatureSource and TargetShape are in.
distanceUnit DistanceUnit<!– ThinkGeo.MapSuite.Core.DistanceUnit –> This parameter specifies the measurement unit for the distance parameter, such as feet, miles, kilometers, etc.
distance Double<!– System.Double –> This parameter specifies the distance in which to find InternalFeatures around the TargetShape.
returningColumnNamesType ReturningColumnsType<!– ThinkGeo.MapSuite.Core.ReturningColumnsType –> This parameter allows you to select a type from the ReturningColumnsType that you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesWithinDistanceOf(BaseShape, GeographyUnit, DistanceUnit, Double, IEnumerable<String>)

This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.

Remarks

This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape. It is important to note that the TargetShape and the FeatureSource must use the same unit, such as feet or meters. If they do not, then the results will not be predictable or correct. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.

The implementation we provided creates a bounding box around the TargetShape using the distance supplied and then queries the features inside of it. This may not be the most efficient method for this operation. If your underlying data provider exposes a more efficient way, we recommend you override the Core version of this method and implement it.

The default implementation of GetFeaturesWithinDistanceOfCore uses the GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override GetFeaturesInsideBoundingBoxCore method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.

Parameters

Name Type Description
targetShape BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –> The shape you wish to find InternalFeatures within a distance of.
unitOfData GeographyUnit<!– ThinkGeo.MapSuite.Core.GeographyUnit –> This parameter is the unit of data that the FeatureSource and TargetShape are in.
distanceUnit DistanceUnit<!– ThinkGeo.MapSuite.Core.DistanceUnit –> This parameter specifies the measurement unit for the distance parameter, such as feet, miles, kilometers, etc.
distance Double<!– System.Double –> This parameter specifies the distance in which to find InternalFeatures around the TargetShape.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFirstFeaturesWellKnownType()

This method returns the well known type that represents the first feature from FeatureSource.

Remarks

This method is the concrete wrapper for the virtual method GetFirstFeaturesWellKnownTypeCore. It will return whatever is returned by the GetFirstFeaturesWellKnownTypeCore method, along with any additions or subtractions made if you are in a transaction and that transaction is configured to be live. To determine what the default implementation of the abstract GetCountCore method is, please see the documentation for it.

The default implementation of GetFirstFeaturesWellKnownTypeCore uses the GetAllFeaturesCore method to get WellKnownType of the first feature from all features. We strongly recommend that you provide your own implementation for this method that will be more efficient.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
WellKnownType<!– ThinkGeo.MapSuite.Core.WellKnownType –> This method returns the well known type that represents the first feature from FeatureSource.

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetHashCode()

Return Value

Return Type Description
Int32<!– System.Int32 –>

Parameters

Name Type Description

<!– System.Object –> Go Back

GetInternalProj4ProjectionParametersString()

Return Value

Return Type Description
String<!– System.String –>

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FileGeoDatabaseFeatureSource –> Go Back

GetTableNames(String)

<!– static –>

Return Value

Return Type Description
Collection<String><!– System.Collections.ObjectModel.Collection{System.String} –>

Parameters

Name Type Description
fileGeoDatabasePathName String<!– System.String –>

<!– ThinkGeo.MapSuite.Core.FileGeoDatabaseFeatureSource –> Go Back

GetType()

Return Value

Return Type Description
Type<!– System.Type –>

Parameters

Name Type Description

<!– System.Object –> Go Back

Open()

This method opens the FeatureSource so that it is initialized and ready to use.

Remarks

This method is the concrete wrapper for the abstract method OpenCore. The Open method plays 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 the abstract method, consider opening files for file-based sources, 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.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

RefreshColumns()

This method refresh the columns available for the FeatureSource and caches them.

Return Value

Return Type Description
Void<!– System.Void –> This method refresh the columns available for the FeatureSource.

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

RollbackTransaction()

This method will cancel an existing transaction. It will free up the internal memory cache of any InternalFeatures added, updated or deleted.

Remarks

This method will cancel an existing transaction. It will free up the internal memory cache of any InternalFeatures added, updated or deleted. You will need to ensure that you have started a transaction by calling BeginTransaction.

The Transaction System

The 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 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 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 modifications you perform during a transaction are live from the standpoint of the querying methods on the object.

As 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, 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 would be considered live, though not committed.

In the case where you modify records – such as expanding the size of a polygon – those changes are reflected as well. 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 instead would return the larger records. In this case, the larger records are returned. You can set this property to be false, as well; in which case, all of the spatially related methods would ignore anything that is currently in the transaction buffer waiting to be committed. In such a case, only after committing the transaction would the FeatureSource reflect the changes.

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

SpatialQuery(Feature, QueryType, ReturningColumnsType)

This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.

Remarks

This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified below. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.

<strong>Spatial Query Types:</strong>

<strong>Disjoint</strong> - This method returns InternalFeatures where the specific Feature and the targetShape have no points in common.

<strong>Intersects</strong> - This method returns InternalFeatures where the specific Feature and the targetShape have at least one point in common.

<strong>Touches</strong> - This method returns InternalFeatures where the specific Feature and the targetShape have at least one boundary point in common, but no interior points.

<strong>Crosses</strong> - This method returns InternalFeatures where the specific Feature and the targetShape share some but not all interior points.

<strong>Within</strong> - This method returns InternalFeatures where the specific Feature lies within the interior of the targetShape.

<strong>Contains</strong> - This method returns InternalFeatures where the specific Feature lies within the interior of the current shape.

<strong>Overlaps</strong> - This method returns InternalFeatures where the specific Feature and the targetShape share some but not all points in common.

<strong>TopologicalEqual</strong> - This method returns InternalFeatures where the specific Feature and the target Shape are topologically equal.

The default implementation of SpatialQueryCore uses the GetFeaturesInsideBoundingBoxCore method to pre-filter the spatial query. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override this method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> The returned decimalDegreesValue is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.

Parameters

Name Type Description
feature Feature<!– ThinkGeo.MapSuite.Core.Feature –> This parameter specifies the target feature used in the spatial query.
queryType QueryType<!– ThinkGeo.MapSuite.Core.QueryType –> This parameter specifies what kind of spatial query you wish to perform.
returningColumnNamesType ReturningColumnsType<!– ThinkGeo.MapSuite.Core.ReturningColumnsType –> This parameter allows you to select a type from the ReturningColumnsType that you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

SpatialQuery(BaseShape, QueryType, IEnumerable<String>, IEnumerable<String>)

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –>

Parameters

Name Type Description
targetShape BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –>
queryType QueryType<!– ThinkGeo.MapSuite.Core.QueryType –>
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>
filters IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

SpatialQuery(BaseShape, QueryType, ReturningColumnsType)

This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.

Remarks

This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified below. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.

<strong>Spatial Query Types:</strong>

<strong>Disjoint</strong> - This method returns InternalFeatures where the specific Feature and the targetShape have no points in common.

<strong>Intersects</strong> - This method returns InternalFeatures where the specific Feature and the targetShape have at least one point in common.

<strong>Touches</strong> - This method returns InternalFeatures where the specific Feature and the targetShape have at least one boundary point in common, but no interior points.

<strong>Crosses</strong> - This method returns InternalFeatures where the specific Feature and the targetShape share some but not all interior points.

<strong>Within</strong> - This method returns InternalFeatures where the specific Feature lies within the interior of the targetShape.

<strong>Contains</strong> - This method returns InternalFeatures where the specific Feature lies within the interior of the current shape.

<strong>Overlaps</strong> - This method returns InternalFeatures where the specific Feature and the targetShape share some but not all points in common.

<strong>TopologicalEqual</strong> - This method returns InternalFeatures where the specific Feature and the target Shape are topologically equal.

The default implementation of SpatialQueryCore uses the GetFeaturesInsideBoundingBoxCore method to pre-filter the spatial query. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override this method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> The return decimalDegreesValue is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.

Parameters

Name Type Description
targetShape BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –> This parameter specifies the target shape used in the spatial query.
queryType QueryType<!– ThinkGeo.MapSuite.Core.QueryType –> This parameter specifies what kind of spatial query you wish to perform.
returningColumnNamesType ReturningColumnsType<!– ThinkGeo.MapSuite.Core.ReturningColumnsType –> This parameter allows you to select a type from the ReturningColumnsType that you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

SpatialQuery(Feature, QueryType, IEnumerable<String>)

This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.

Remarks

This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified below. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.

<strong>Spatial Query Types:</strong>

<strong>Disjoint</strong> - This method returns InternalFeatures where the specific Feature and the targetShape have no points in common.

<strong>Intersects</strong> - This method returns InternalFeatures where the specific Feature and the targetShape have at least one point in common.

<strong>Touches</strong> - This method returns InternalFeatures where the specific Feature and the targetShape have at least one boundary point in common, but no interior points.

<strong>Crosses</strong> - This method returns InternalFeatures where the specific Feature and the targetShape share some but not all interior points.

<strong>Within</strong> - This method returns InternalFeatures where the specific Feature lies within the interior of the targetShape.

<strong>Contains</strong> - This method returns InternalFeatures where the specific Feature lies within the interior of the current shape.

<strong>Overlaps</strong> - This method returns InternalFeatures where the specific Feature and the targetShape share some but not all points in common.

<strong>TopologicalEqual</strong> - This method returns InternalFeatures where the specific Feature and the target Shape are topologically equal.

The default implementation of SpatialQueryCore uses the GetFeaturesInsideBoundingBoxCore method to pre-filter the spatial query. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override this method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> The returned decimalDegreesValue is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.

Parameters

Name Type Description
feature Feature<!– ThinkGeo.MapSuite.Core.Feature –> This parameter specifies the target feature used in the spatial query.
queryType QueryType<!– ThinkGeo.MapSuite.Core.QueryType –> This parameter specifies what kind of spatial query you wish to perform.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

SpatialQuery(BaseShape, QueryType, IEnumerable<String>)

This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.

Remarks

This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified below. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.

<strong>Spatial Query Types:</strong>

<strong>Disjoint</strong> - This method returns InternalFeatures where the specific Feature and the targetShape have no points in common.

<strong>Intersects</strong> - This method returns InternalFeatures where the specific Feature and the targetShape have at least one point in common.

<strong>Touches</strong> - This method returns InternalFeatures where the specific Feature and the targetShape have at least one boundary point in common, but no interior points.

<strong>Crosses</strong> - This method returns InternalFeatures where the specific Feature and the targetShape share some but not all interior points.

<strong>Within</strong> - This method returns InternalFeatures where the specific Feature lies within the interior of the targetShape.

<strong>Contains</strong> - This method returns InternalFeatures where the specific Feature lies within the interior of the current shape.

<strong>Overlaps</strong> - This method returns InternalFeatures where the specific Feature and the targetShape share some but not all points in common.

<strong>TopologicalEqual</strong> - This method returns InternalFeatures where the specific Feature and the target Shape are topologically equal.

The default implementation of SpatialQueryCore uses the GetFeaturesInsideBoundingBoxCore method to pre-filter the spatial query. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override this method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

As this is a concrete public method that wraps a Core method, we reserve the right to add events and other logic to pre- or post-process data returned by the Core version of the method. In this way, we leave our framework open on our end, but also allow you the developer to extend our logic to suit your needs. If you have questions about this, please contact our support team as we would be happy to work with you on extending our framework.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> The returned decimalDegreesValue is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.

Parameters

Name Type Description
targetShape BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –> This parameter specifies the target shape used in the spatial query.
queryType QueryType<!– ThinkGeo.MapSuite.Core.QueryType –> This parameter specifies what kind of spatial query you wish to perform.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

ToString()

Return Value

Return Type Description
String<!– System.String –>

Parameters

Name Type Description

<!– System.Object –> Go Back

UpdateColumn(String, FeatureSourceColumn)

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
columnName String<!– System.String –>
newFeatureSourceColumn FeatureSourceColumn<!– ThinkGeo.MapSuite.Core.FeatureSourceColumn –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

UpdateFeature(BaseShape)

This method updates a Feature (composed of the passed-in BaseShape) in an existing transaction.

Remarks

This method updates a Feature (composed of the passed-in BaseShape) in an existing transaction. You will need to ensure that you have started a transaction by calling BeginTransaction.

The Transaction System

The 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 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 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 modifications you perform during a transaction are live from the standpoint of the querying methods on the object.

As 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, 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 would be considered live, though not committed.

In the case where you modify records – such as expanding the size of a polygon – those changes are reflected as well. 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 instead would return the larger records. In this case, the larger records are returned. You can set this property to be false, as well; in which case, all of the spatially related methods would ignore anything that is currently in the transaction buffer waiting to be committed. In such a case, only after committing the transaction would the FeatureSource reflect the changes.

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
shape BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –> The shape that will be used to make the new Feature that you wish to update in the transaction.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

UpdateFeature(Feature)

This method updates a Feature in an existing transaction.

Remarks

This method updates a Feature in an existing transaction. You will need to ensure that you have started a transaction by calling the BeginTransaction.

The Transaction System

The 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 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 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 modifications you perform during a transaction are live from the standpoint of the querying methods on the object.

As 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, 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 would be considered live, though not committed.

In the case where you modify records – such as expanding the size of a polygon – those changes are reflected as well. 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 instead would return the larger records. In this case, the larger records are returned. You can set this property to be false, as well; in which case, all of the spatially related methods would ignore anything that is currently in the transaction buffer waiting to be committed. In such a case, only after committing the transaction would the FeatureSource reflect the changes.

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
feature Feature<!– ThinkGeo.MapSuite.Core.Feature –> The Feature you wish to update in the transaction.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

UpdateFeature(BaseShape, IDictionary<String, String>)

This method updates a Feature (composed of the passed-in BaseShape) in an existing transaction.

Remarks

This method updates a Feature (composed of the passed in BaseShape) in an existing transaction. You will need to ensure that you have started a transaction by calling BeginTransaction.

The Transaction System

The 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 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 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 modifications you perform during a transaction are live from the standpoint of the querying methods on the object.

As 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, 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 would be considered live, though not committed.

In the case where you modify records – such as expanding the size of a polygon – those changes are reflected as well. 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 instead would return the larger records. In this case, the larger records are returned. You can set this property to be false, as well; in which case, all of the spatially related methods would ignore anything that is currently in the transaction buffer waiting to be committed. In such a case, only after committing the transaction would the FeatureSource reflect the changes.

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
shape BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –> The shape that will be used to make the new Feature that you wish to update in the transaction.
columnValues IDictionary<String,String><!– System.Collections.Generic.IDictionary{System.String,System.String} –> This parameter represents the columnValues for the new features that will be added to the transaction.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

Protected Methods

ApplyFiltersCore(IEnumerable<Feature>, IEnumerable<String>, String)

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –>

Parameters

Name Type Description
features IEnumerable<Feature><!– System.Collections.Generic.IEnumerable{ThinkGeo.MapSuite.Core.Feature} –>
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>
linkExpression String<!– System.String –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

CanGetBoundingBoxQuicklyCore()

Return Value

Return Type Description
Boolean<!– System.Boolean –>

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

CanGetCountQuicklyCore()

Return Value

Return Type Description
Boolean<!– System.Boolean –>

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

CloneDeepCore()

Create a copy of a FeatureSource using the deep clone process. The default implementation uses serialization.

Remarks

The difference between deep clone and shallow clone is as follows: In shallow cloning, only the object is copied; the objects within it are not. By contrast, deep cloning copies the cloned object as well as all the objects within.

Return Value

Return Type Description
FeatureSource<!– ThinkGeo.MapSuite.Core.FeatureSource –> A cloned FeatureSource.

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

CloseCore()

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

CommitTransactionCore(TransactionBuffer)

Return Value

Return Type Description
TransactionResult<!– ThinkGeo.MapSuite.Core.TransactionResult –>

Parameters

Name Type Description
transactions TransactionBuffer<!– ThinkGeo.MapSuite.Core.TransactionBuffer –>

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

ConvertToExternalProjection(IEnumerable<RectangleShape>)

This method projects items based on the Projection of the FeatureSource.

Remarks

This is a protected method that is intended to help developers who want to implement or extend one of our FeatureSources. It is important to note that projection, as a general rule, happens inside the non-Core methods and we usually take care of it. However, as a developer, if you wish to add a new public method, then you will need to handle the projection yourself.

With these projection methods it is very easy to handle the projection and de-projection. Remember that when adding your own public methods you always de-project incoming shapes and alway project outgoing shapes. Also remember that the Core methods do not consider projection, and they assume the data being passed into them and out of them is the same unit as the underlying data.

Example of a New Public Method:

public Feature ProcessFeature(Feature incomingFeature) {

//Be sure that you use the FromProjection on the incomingFeatureParameter as the first thing you do in this method.

// Call a Core Method or do your own processing

//Be sure that you call the ToProjection on the return result of the method before you pass it out.

}

Return Value

Return Type Description
Collection<RectangleShape><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.RectangleShape} –> This method projects a Feature based on the Projection of the FeatureSource.

Parameters

Name Type Description
rectangles IEnumerable<RectangleShape><!– System.Collections.Generic.IEnumerable{ThinkGeo.MapSuite.Core.RectangleShape} –> This parameter represents a group of RectangleShapes that you wish to project.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

ConvertToExternalProjection(RectangleShape)

This method projects items based on the Projection of the FeatureSource.

Remarks

This is a protected method that is intended to help developers who want to implement or extend one of our FeatureSources. It is important to note that projection, as a general rule, happens inside the non-Core methods and we usually take care of it. However, as a developer, if you wish to add a new public method, then you will need to handle the projection yourself.

With these projection methods it is very easy to handle the projection and de-projection. Remember that when adding your own public methods you always de-project incoming shapes and alway project outgoing shapes. Also remember that the Core methods do not consider projection, and they assume the data being passed into them and out of them is the same unit as the underlying data.

Example of a New Public Method:

public Feature ProcessFeature(Feature incomingFeature) {

//Be sure that you use the FromProjection on the incomingFeatureParameter as the first thing you do in this method.

// Call a Core Method or do your own processing

//Be sure that you call the ToProjection on the return result of the method before you pass it out.

}

Return Value

Return Type Description
RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –> This method projects a RectangleShape based on the Projection of the FeatureSource.

Parameters

Name Type Description
rectangle RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –> This parameter represents the rectangle you wish to project.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

ConvertToExternalProjection(Feature)

This method projects items based on the Projection of the FeatureSource.

Remarks

This is a protected method that is intended to help developers who want to implement or extend one of our FeatureSources. It is important to note that projection, as a general rule, happens inside the non-Core methods and we usually take care of it. However, as a developer, if you wish to add a new public method, then you will need to handle the projection yourself.

With these projection methods it is very easy to handle the projection and de-projection. Remember that when adding your own public methods you always de-project incoming shapes and alway project outgoing shapes. Also remember that the Core methods do not consider projection, and they assume the data being passed into them and out of them is the same unit as the underlying data.

Example of a New Public Method:

public Feature ProcessFeature(Feature incomingFeature) {

//Be sure that you use the FromProjection on the incomingFeatureParameter as the first thing you do in this method.

// Call a Core Method or do your own processing

//Be sure that you call the ToProjection on the return result of the method before you pass it out.

}

Return Value

Return Type Description
Feature<!– ThinkGeo.MapSuite.Core.Feature –> This method projects a Feature based on the Projection of the FeatureSource.

Parameters

Name Type Description
feature Feature<!– ThinkGeo.MapSuite.Core.Feature –> This parameter represents the Feature you wish to project.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

ConvertToExternalProjection(IEnumerable<Feature>)

This method projects items based on the Projection of the FeatureSource.

Remarks

This is a protected method that is intended to help developers who want to implement or extend one of our FeatureSources. It is important to note that projection, as a general rule, happens inside the non-Core methods and we usually take care of it. However, as a developer, if you wish to add a new public method, then you will need to handle the projection yourself.

With these projection methods it is very easy to handle the projection and de-projection. Remember that when adding your own public methods you always de-project incoming shapes and alway project outgoing shapes. Also remember that the Core methods do not consider projection, and they assume the data being passed into them and out of them is the same unit as the underlying data.

Example of a New Public Method:

public Feature ProcessFeature(Feature incomingFeature) {

//Be sure that you use the FromProjection on the incomingFeatureParameter as the first thing you do in this method.

// Call a Core Method or do your own processing

//Be sure that you call the ToProjection on the return result of the method before you pass it out.

}

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method projects a Feature based on the Projection of the FeatureSource.

Parameters

Name Type Description
features IEnumerable<Feature><!– System.Collections.Generic.IEnumerable{ThinkGeo.MapSuite.Core.Feature} –> This parameter represents a group of Features that you wish to project.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

ConvertToInternalProjection(BaseShape)

This method de-projects items based on the Projection of the FeatureSource.

Remarks

This is a protected method that is intended to help developers who want to implement or extend one of our FeatureSources. It is important to note that projection, as a general rule, happens inside the non-Core methods and we usually take care of it. However, as a developer, if you wish to add a new public method, then you will need to handle the projection yourself.

With these projection methods it is very easy to handle the projection and de-projection. Remember that when adding your own public methods you always de-project incoming shapes and alway project outgoing shapes. Also remember that the Core methods do not consider projection, and they assume the data being passed into them and out of them is the same unit as the underlying data.

Example of a New Public Method:

public Feature ProcessFeature(Feature incomingFeature) {

//Be sure that you use the FromProjection on the incomingFeatureParameter as the first thing you do in this method.

// Call a Core Method or do your own processing

//Be sure that you call the ToProjection on the return result of the method before you pass it out.

}

Return Value

Return Type Description
BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –> This method de-projects a BaseShape based on the Projection of the FeatureSource.

Parameters

Name Type Description
baseShape BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –> This parameter represents the BaseShape you wish to de-project.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

ConvertToInternalProjection(RectangleShape)

This method de-projects items based on the Projection of the FeatureSource.

Remarks

This is a protected method that is intended to help developers who want to implement or extend one of our FeatureSources. It is important to note that projection, as a general rule, happens inside the non-Core methods and we usually take care of it. However, as a developer, if you wish to add a new public method, then you will need to handle the projection yourself.

With these projection methods it is very easy to handle the projection and de-projection. Remember that when adding your own public methods you always de-project incoming shapes and alway project outgoing shapes. Also remember that the Core methods do not consider projection, and they assume the data being passed into them and out of them is the same unit as the underlying data.

Example of a New Public Method:

public Feature ProcessFeature(Feature incomingFeature) {

//Be sure that you use the FromProjection on the incomingFeatureParameter as the first thing you do in this method.

// Call a Core Method or do your own processing

//Be sure that you call the ToProjection on the return result of the method before you pass it out.

}

Return Value

Return Type Description
RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –> This method de-projects a RectangleShape based on the Projection of the FeatureSource.

Parameters

Name Type Description
rectangle RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –> This parameter represents the rectangle you wish to de-project.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

ConvertToInternalProjection(IEnumerable<RectangleShape>)

This method de-projects items based on the Projection of the FeatureSource.

Remarks

This is a protected method that is intended to help developers who want to implement or extend one of our FeatureSources. It is important to note that projection, as a general rule, happens inside the non-Core methods and we usually take care of it. However, as a developer, if you wish to add a new public method, then you will need to handle the projection yourself.

With these projection methods it is very easy to handle the projection and de-projection. Remember that when adding your own public methods you always de-project incoming shapes and alway project outgoing shapes. Also remember that the Core methods do not consider projection, and they assume the data being passed into them and out of them is the same unit as the underlying data.

Example of a New Public Method:

public Feature ProcessFeature(Feature incomingFeature) {

//Be sure that you use the FromProjection on the incomingFeatureParameter as the first thing you do in this method.

// Call a Core Method or do your own processing

//Be sure that you call the ToProjection on the return result of the method before you pass it out.

}

Return Value

Return Type Description
Collection<RectangleShape><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.RectangleShape} –> This method de-projects a BaseShape based on the Projection of the FeatureSource.

Parameters

Name Type Description
rectangles IEnumerable<RectangleShape><!– System.Collections.Generic.IEnumerable{ThinkGeo.MapSuite.Core.RectangleShape} –> This parameter represents a group of RectangleShapes that you wish to de-project.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

ConvertToInternalProjection(Feature)

This method de-projects items based on the Projection of the FeatureSource.

Remarks

This is a protected method that is intended to help developers who want to implement or extend one of our FeatureSources. It is important to note that projection, as a general rule, happens inside the non-Core methods and we usually take care of it. However, as a developer, if you wish to add a new public method, then you will need to handle the projection yourself.

With these projection methods it is very easy to handle the projection and de-projection. Remember that when adding your own public methods you always de-project incoming shapes and alway project outgoing shapes. Also remember that the Core methods do not consider projection, and they assume the data being passed into them and out of them is the same unit as the underlying data.

Example of a New Public Method:

public Feature ProcessFeature(Feature incomingFeature) {

//Be sure that you use the FromProjection on the incomingFeatureParameter as the first thing you do in this method.

// Call a Core Method or do your own processing

//Be sure that you call the ToProjection on the return result of the method before you pass it out.

}

Return Value

Return Type Description
Feature<!– ThinkGeo.MapSuite.Core.Feature –> This method de-projects a Feature based on the Projection of the FeatureSource.

Parameters

Name Type Description
feature Feature<!– ThinkGeo.MapSuite.Core.Feature –> This parameter represents the Feature you wish to de-project.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

ConvertToInternalProjection(IEnumerable<Feature>)

This method de-projects items based on the Projection of the FeatureSource.

Remarks

This is a protected method that is intended to help developers who want to implement or extend one of our FeatureSources. It is important to note that projection, as a general rule, happens inside the non-Core methods and we usually take care of it. However, as a developer, if you wish to add a new public method, then you will need to handle the projection yourself.

With these projection methods it is very easy to handle the projection and de-projection. Remember that when adding your own public methods you always de-project incoming shapes and alway project outgoing shapes. Also remember that the Core methods do not consider projection, and they assume the data being passed into them and out of them is the same unit as the underlying data.

Example of a New Public Method:

public Feature ProcessFeature(Feature incomingFeature) {

//Be sure that you use the FromProjection on the incomingFeatureParameter as the first thing you do in this method.

// Call a Core Method or do your own processing

//Be sure that you call the ToProjection on the return result of the method before you pass it out.

}

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method de-projects a Feature based on the Projection of the FeatureSource.

Parameters

Name Type Description
features IEnumerable<Feature><!– System.Collections.Generic.IEnumerable{ThinkGeo.MapSuite.Core.Feature} –> This parameter represents the group of Features that you wish to de-project.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

ExecuteNonQueryCore(String)

Return Value

Return Type Description
Int32<!– System.Int32 –>

Parameters

Name Type Description
sqlStatement String<!– System.String –>

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

ExecuteQueryCore(String)

Return Value

Return Type Description
DataTable<!– System.Data.DataTable –>

Parameters

Name Type Description
sqlStatement String<!– System.String –>

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

ExecuteScalarCore(String)

Return Value

Return Type Description
Object<!– System.Object –>

Parameters

Name Type Description
sqlStatement String<!– System.String –>

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

Finalize()

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description

<!– System.Object –> Go Back

GetAllFeaturesCore(IEnumerable<String>, Int32, Int32)

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –>

Parameters

Name Type Description
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>
startIndex Int32<!– System.Int32 –>
takeCount Int32<!– System.Int32 –>

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

GetAllFeaturesCore(IEnumerable<String>)

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –>

Parameters

Name Type Description
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

GetBoundingBoxByIdCore(String)

Return Value

Return Type Description
RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –>

Parameters

Name Type Description
id String<!– System.String –>

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

GetBoundingBoxCore()

Return Value

Return Type Description
RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –>

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

GetColumnNamesInsideFeatureSource(IEnumerable<String>)

This method returns the field names that are in the FeatureSource from a list of provided field names.

Remarks

This is a protected method that is intended to help developers who want to implement or extend one of our FeatureSources. It is important to note that, as a general rule, returning column data of a Feature or a set of InternalFeatures happens inside the non-Core methods and we usually take care of it. However, as a developer, if you wish to add a new public method, then you will need to handle the projection yourself.

Let's say, for example, that you want to add a new Find method called FindLargeFeatures. You pass in a group of columns to return. Most of the time, the requested columns will actually be in the FeatureSource, but sometimes they will not. The way we allow users to get data from outside of the Feature Source is by raising an event called CustomColumnFetch. This way, we allow people to provide data that is outside of the FeatureSource. Since you will be implementing your own public method, you will want to support this as all of our other public methods do.

When you first enter the public method, you will want to separate out the fields that are in the FeatureSource from those that are not. You can call this method and the GetColumnNamesOutsideFeatureSource. If inside your public method you need to call any of our Core methods, then you need to make sure that you only pass in the list of column names that are in the FeatureSource. We assume that Core methods are simple and they do not handle this complexity.

With the list of non-FeatureSource column names, you simply loop through each column name for each record and call the OnCustomColumnFetch method while passing in the proper parameters. This will allow you give the user a chance to provide the values for the Feature's fields that were not in the FeatureSource. After that, you combine your results and pass them back out as the return.

public Collection&lt;Feature&gt; FindLargeFeatures(double AreaSize, IEnumerable &lt;string&gt; columnsToReturn) {

//Step 1: Separate the columns that are in the FeatureSource from those that are not.

// Step 2: Call any Core Methods and only pass in the columns that are in the FeatureSource

//Step3: For Each feature/column name combination, call the OnCustomFiedlFetch and allow your user to provide the custom data.

// Step4: Integrate the custom data with the result of the Core method plus any processing you did. Then return the consolidated result.

}

Return Value

Return Type Description
Collection<String><!– System.Collections.ObjectModel.Collection{System.String} –> This method returns the field names that are in the FeatureSource from a list of provided field names.

Parameters

Name Type Description
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter is a list of column names, where not every field name may be in the FeatureSource.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetColumnNamesOutsideFeatureSource(IEnumerable<String>)

This method returns the field names that are not in the FeatureSource from a list of provided field names.

Remarks

This is a protected method that is intended to help developers who want to implement or extend one of our FeatureSources. It is important to note that, as a general rule, returning column data of a Feature or a set of InternalFeatures happens inside the non-Core methods and we usually take care of it. However, as a developer, if you wish to add a new public method, then you will need to handle the projection yourself.

Let's say, for example, that you want to add a new Find method called FindLargeFeatures. You pass in a group of columns to return. Most of the time, the requested columns will actually be in the FeatureSource, but sometimes they will not. The way we allow users to get data from outside of the Feature Source is by raising an event called CustomColumnFetch. This way, we allow people to provide data that is outside of the FeatureSource. Since you will be implementing your own public method, you will want to support this as all of our other public methods do.

When you first enter the public method, you will want to separate out the fields that are in the FeatureSource from those that are not. You can call this method and the GetColumnNamesOutsideFeatureSource. If inside your public method you need to call any of our Core methods, then you need to make sure that you only pass in the list of column names that are in the FeatureSource. We assume that Core methods are simple and they do not handle this complexity.

With the list of non-FeatureSource column names, you simply loop through each column name for each record and call the OnCustomColumnFetch method while passing in the proper parameters. This will allow you give the user a chance to provide the values for the Feature's fields that were not in the FeatureSource. After that, you combine your results and pass them back out as the return.

public Collection&lt;Feature&gt; FindLargeFeatures(double AreaSize, IEnumerable &lt;string&gt; columnsToReturn) {

//Step 1: Separate the columns that are in the FeatureSource from those that are not.

// Step 2: Call any Core Methods and only pass in the columns that are in the FeatureSource

//Step3: For Each feature/column name combination, call the OnCustomFiedlFetch and allow your user to provide the custom data.

// Step4: Integrate the custom data with the result of the Core method plus any processing you did. Then return the consolidated result.

}

Return Value

Return Type Description
Collection<String><!– System.Collections.ObjectModel.Collection{System.String} –> This method returns the field names that are not in the FeatureSource from a list of provided field names.

Parameters

Name Type Description
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter is a list of field names, where not every field name may be in the FeatureSource.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetColumnsCore()

Return Value

Return Type Description
Collection<FeatureSourceColumn><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.FeatureSourceColumn} –>

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

GetCountCore()

Return Value

Return Type Description
Int32<!– System.Int32 –>

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

GetDistinctColumnValuesCore(String)

Return Value

Return Type Description
Collection<DistinctColumnValue><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.DistinctColumnValue} –>

Parameters

Name Type Description
columnName String<!– System.String –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesByColumnValueCore(String, String, IEnumerable<String>)

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –>

Parameters

Name Type Description
columnName String<!– System.String –>
columnValue String<!– System.String –>
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

GetFeaturesByIdsCore(IEnumerable<String>, IEnumerable<String>)

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –>

Parameters

Name Type Description
ids IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

GetFeaturesForDrawingCore(RectangleShape, Double, Double, IEnumerable<String>)

This method returns the InternalFeatures that will be used for drawing.

Remarks

This method returns all of the InternalFeatures of this FeatureSource that are 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 concrete version of this method.

The default implementation of GetFeaturesForDrawingCore uses the GetFeaturesInsodeBoundingBoxCore with some optimizations based on the screen width and height. For example, we can determine if a feature is going to draw in only one to four pixels and in that case we may not draw the entire feature but just a subset of it instead.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns the InternalFeatures that will be used for drawing.

Parameters

Name Type Description
boundingBox RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –> This parameter is the bounding box of the InternalFeatures that you want to draw.
screenWidth Double<!– System.Double –> This parameter is the width of the canvas, in screen pixels, that you will draw on.
screenHeight Double<!– System.Double –> This parameter is the height of the canvas, in screen pixels, that you will draw on.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesInsideBoundingBoxCore(RectangleShape, IEnumerable<String>)

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –>

Parameters

Name Type Description
boundingBox RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –>
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –>

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

GetFeaturesNearestToCore(BaseShape, GeographyUnit, Int32, IEnumerable<String>)

This method returns a user defined number of InternalFeatures that are closest to the TargetShape.

Remarks

This method returns a user defined number of InternalFeatures that are closest to the TargetShape. It is important to note that the TargetShape and the FeatureSource must use the same unit, such as feet or meters. If they do not, then the results will not be predictable or correct. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.

The implementation we provided creates a small bounding box around the TargetShape and then queries the features inside of it. If we reach the number of items to find, then we measure the returned InternalFeatures to find the nearest. If we do not find enough records, we scale up the bounding box and try again. As you can see, this is not the most efficient method. If your underlying data provider exposes a more efficient way, we recommend you override the Core version of this method and implement it.

The default implementation of GetFeaturesNearestCore uses the GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override GetFeaturesInsideBoundingBoxCore method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns a user defined number of InternalFeatures that are closest to the TargetShape.

Parameters

Name Type Description
targetShape BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –> This parameter is the shape you want to find InternalFeatures close to.
unitOfData GeographyUnit<!– ThinkGeo.MapSuite.Core.GeographyUnit –> This parameter is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
maxItemsToFind Int32<!– System.Int32 –> This parameter defines how many close InternalFeatures to find around the TargetShape.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesOutsideBoundingBoxCore(RectangleShape, IEnumerable<String>)

This method returns all of the InternalFeatures of this FeatureSource outside of the specified bounding box.

Remarks

This method returns all of the InternalFeatures of this FeatureSource outside of the specified bounding box. If you are in a transaction and that transaction is live, this method will also take that into consideration.

The default implementation of GetFeaturesOutsideBoundingBoxCore uses the GetAllRecordsCore method to determine which InternalFeatures are outside of the bounding box. We strongly recommend that you provide your own implementation for this method that will be more efficient.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns all of the InternalFeatures of this FeatureSource outside of the specified bounding box.

Parameters

Name Type Description
boundingBox RectangleShape<!– ThinkGeo.MapSuite.Core.RectangleShape –> This parameter represents the bounding box that you wish to find InternalFeatures outside of.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFeaturesWithinDistanceOfCore(BaseShape, GeographyUnit, DistanceUnit, Double, IEnumerable<String>)

This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.

Remarks

This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape. It is important to note that the TargetShape and the FeatureSource must use the same unit, such as feet or meters. If they do not, then the results will not be predictable or correct. If there is a current transaction and it is marked as live, then the results will include any transaction Feature that applies.

The implementation we provided creates a bounding box around the TargetShape using the distance supplied and then queries the features inside of it. This may not be the most efficient method for this operation. If your underlying data provider exposes a more efficient way, we recommend you override the Core version of this method and implement it.

The default implementation of GetFeaturesWithinDistanceOfCore uses the GetFeaturesInsideBoundingBoxCore method for speed. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override GetFeaturesInsideBoundingBoxCore method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> This method returns a collection of InternalFeatures that are within a certain distance of the TargetShape.

Parameters

Name Type Description
targetShape BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –> The shape you wish to find InternalFeatures within a distance of.
unitOfData GeographyUnit<!– ThinkGeo.MapSuite.Core.GeographyUnit –> This parameter is the unit of data that the FeatureSource and TargetShape are in.
distanceUnit DistanceUnit<!– ThinkGeo.MapSuite.Core.DistanceUnit –> This parameter specifies the measurement unit for the distance parameter, such as feet, miles, kilometers, etc.
distance Double<!– System.Double –> This parameter specifies the distance in which to find InternalFeatures around the TargetShape.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GetFirstFeaturesWellKnownTypeCore()

Return Value

Return Type Description
WellKnownType<!– ThinkGeo.MapSuite.Core.WellKnownType –>

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

GetReturningColumnNames(ReturningColumnsType)

Get returning columnNames according to the returningColumnType.

Remarks

The concreted FeatureSource can override this logic if needed.

Return Value

Return Type Description
Collection<String><!– System.Collections.ObjectModel.Collection{System.String} –> The returning ColumnNames based on the given returningColumnNamesType.

Parameters

Name Type Description
returningColumnNamesType ReturningColumnsType<!– ThinkGeo.MapSuite.Core.ReturningColumnsType –> The passed in returningColumnType.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

MemberwiseClone()

Return Value

Return Type Description
Object<!– System.Object –>

Parameters

Name Type Description

<!– System.Object –> Go Back

OnAppliedFilters(AppliedFiltersFeatureSourceEventArgs)

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
e AppliedFiltersFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.AppliedFiltersFeatureSourceEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

OnApplyingFilters(ApplyingFiltersFeatureSourceEventArgs)

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
e ApplyingFiltersFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.ApplyingFiltersFeatureSourceEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

OnClosedFeatureSource(ClosedFeatureSourceEventArgs)

This method allows you to raise the ClosedFeatureSource event from a derived class.

Remarks

You can call this method from a derived class to enable it to raise the ClosedFeatureSource event. This may be useful if you plan to extend the FeatureSource and you need access to the event.

Details on the event:

This event is called after the closing of the FeatureSource. Technically, this event is called after the calling of the Close method on the FeatureSource and after the protected CloseCore method.

It is typical that the FeatureSource may be opened and closed may times during the life cycle of your application. The type of control the MapEngine is embedded in will dictate how often this happens. For example, in the case of the Web Edition, each time a FeatureSource is in the Ajax or Post Back part of the page cycle, it will close the FeatureSource before returning back to the client. This is to conserve resources, as the web is a connection-less environment. In the case of the Desktop Edition, we can keep the FeaureSources open, knowing that we can maintain a persistent connection.

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
e ClosedFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.ClosedFeatureSourceEventArgs –> This parameter is the event arguments which define the parameters passed to the recipient of the event.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

OnClosingFeatureSource(ClosingFeatureSourceEventArgs)

This method allows you to raise the ClosingFeatureSource event from a derived class.

Remarks

You can call this method from a derived class to enable it to raise the ClosingFeatureSource event. This may be useful if you plan to extend the FeatureSource and you need access to the event.

Details on the event:

This event is called before the closing of the FeatureSource. Technically, this event is called after the calling of the Close method on the FeatureSource, but before the protected CloseCore method.

It is typical that the FeatureSource may be opened and closed may times during the life cycle of your application. The type of control the MapEngine is embedded in will dictate how often this happens. For example, in the case of the Web Edition, each time a FeatureSource is in the Ajax or Post Back part of the page cycle, it will close the FeatureSource before returning back to the client. This is to conserve resources, as the web is a connection-less environment. In the case of the Desktop Edition, we can keep the FeaureSources open, knowing that we can maintain a persistent connection.

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
e ClosingFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.ClosingFeatureSourceEventArgs –> This parameter is the event arguments which define the parameters passed to the recipient of the event.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

OnCommittedTransaction(CommittedTransactionEventArgs)

This method allows you to raise the CommittedTransaction event from a derived class.

Remarks

You can call this method from a derived class to enable it to raise the CommittedTransaction event. This may be useful if you plan to extend the FeatureSource and you need access to the event.

Details on the event:

This event is raised after the CommitTransactionCore is called and allows you access to the TransactionBuffer and the TransactionResults object before CommitTransaction method is returned.

With this event, you can analyze the results of the transaction and do any cleanup code necessary. In the event some of the records did not commit, you can handle these items here. The TransactionResults object is passed out of the CommitTransaction method so you could analyze it then; however, this is the only place where you have access to both the TransactionResults object and the TransactionBuffer object at the same time. These are useful together to try and determine what went wrong and possibly try and re-commit them.

At the time of this event, you will technically be out of the current transaction.

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
e CommittedTransactionEventArgs<!– ThinkGeo.MapSuite.Core.CommittedTransactionEventArgs –> This parameter is the event arguments which define the parameters passed to the recipient of the event.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

OnCommittingTransaction(CommittingTransactionEventArgs)

This method allows you to raise the CommittingTransaction event from a derived class.

Remarks

You can call this method from a derived class to enable it to raise the CommittingTransaction event. This may be useful if you plan to extend the FeatureSource and you need access to the event.

Details on the event:

This event is raised before the CommitTransactionCore is called and allows you access to the TransactionBuffer before the transaction is committed. It also allows you to cancel the pending transaction. The TransactionBuffer is the object that stores all of the pending transactions and is accessible through this event to allow you either add, remove or modify transactions.

In the event that you cancel the CommitTransaction method, the transaction remains intact and you will still be editing. This makes it a nice place to possibly check for connectivity before the TransactionCore code is run, which is where the records are actually committed. Calling the RollBackTransaction method is the only way to permanently cancel a pending transaction without committing it.

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
e CommittingTransactionEventArgs<!– ThinkGeo.MapSuite.Core.CommittingTransactionEventArgs –> This parameter is the event arguments which define the parameters passed to the recipient of the event.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

OnCustomColumnFetch(CustomColumnFetchEventArgs)

This method allows you to raise the CustomColumnFetch event from a derived class.

Remarks

You can call this method from a derived class to enable it to raise the CustomColumnFetch event. This may be useful if you plan to extend the FeatureSource and you need access to user-definable field data.

Details on the event:

This event is raised when fields are requested in a feature source method that do not exist in the feature source. It allows you supplement the data from any outside source you may have.

It is used primarily when you have data relating to a particular feature or set of features that is not within source of the data. For example, you may have a shape file of the world whose .dbf component describes the area and population of each country. Additionally, in an outside SQL Server table, you may also have data about the countries, and it is this data that you wish to use for determining how you want to color each country.

To integrate this SQL data, you simply create a file name that does not exist in the .dbf file. Whenever Map Suite is queried to return records that specifically require this field, the FeatureSource will raise this event and allow you the developer to supply the data. In this way, you can query the SQL table and store the data in some sort of collection, and then when the event is raised, simply supply that data.

As this is an event, it will raise for each feature and field combination requested. This means that the event can be raised quite often, and we suggest that you cache the data you wish to supply in memory. We recommend against sending out a new SQL query each time this event is raised. Image that you are supplementing two columns and your query returns 2,000 rows. This means that if you requested those fields, the event would be raised 4,000 times.

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
e CustomColumnFetchEventArgs<!– ThinkGeo.MapSuite.Core.CustomColumnFetchEventArgs –> This parameter is the event arguments which define the parameters passed to the recipient of the event.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

OnDrawingProgressChanged(DrawingProgressChangedEventArgs)

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
e DrawingProgressChangedEventArgs<!– ThinkGeo.MapSuite.Core.DrawingProgressChangedEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

OnGettingColumns(GettingColumnsFeatureSourceEventArgs)

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
e GettingColumnsFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.GettingColumnsFeatureSourceEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

OnGettingFeaturesByIds(GettingFeaturesByIdsFeatureSourceEventArgs)

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
e GettingFeaturesByIdsFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.GettingFeaturesByIdsFeatureSourceEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

OnGettingFeaturesForDrawing(GettingFeaturesForDrawingFeatureSourceEventArgs)

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
e GettingFeaturesForDrawingFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.GettingFeaturesForDrawingFeatureSourceEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

OnGottenColumns(GottenColumnsFeatureSourceEventArgs)

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
e GottenColumnsFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.GottenColumnsFeatureSourceEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

OnOpenedFeatureSource(OpenedFeatureSourceEventArgs)

This method allows you to raise the OpenedFeatureSource event from a derived class.

Remarks

You can call this method from a derived class to enable it to raise the OpenedFeatureSource event. This may be useful if you plan to extend the FeatureSource and you need access to the event.

Details on the event:

This event is called after the opening of the FeatureSource. Technically, this event is called after the calling of the Open method on the FeatureSource and after the protected OpenCore method is called.

It is typical that the FeatureSource may be opened and closed may times during the life cycle of your application. The type of control the MapEngine is embedded in will dictate how often this happens. For example, in the case of the Web Edition, each time a FeatureSource is in the Ajax or Post Back part of the page cycle, it will close the FeatureSource before returning back to the client. This is to conserve resources, as the web is a connection-less environment. In the case of the Desktop Edition, we can keep the FeaureSources open, knowing that we can maintain a persistent connection.

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
e OpenedFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.OpenedFeatureSourceEventArgs –> This parameter is the event arguments which define the parameters passed to the recipient of the event.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

OnOpeningFeatureSource(OpeningFeatureSourceEventArgs)

This method allows you to raise the OpeningFeatureSource event from a derived class.

Remarks

You can call this method from a derived class to enable it to raise the OpeningFeatureSource event. This may be useful if you plan to extend the FeatureSource and you need access to the event.

Details on the event:

This event is called before the opening of the FeatureSource. Technically, this event is called after the calling of the Open method on the FeatureSource, but before the protected OpenCore method.

It is typical that the FeatureSource may be opened and closed may times during the life cycle of your application. The type of control the MapEngine is embedded in will dictate how often this happens. For example, in the case of the Web Edition, each time a FeatureSource is in the Ajax or Post Back part of the page cycle, it will close the FeatureSource before returning back to the client. This is to conserve resources, as the web is a connection-less environment. In the case of the Desktop Edition, we can keep the FeaureSources open, knowing that we can maintain a persistent connection.

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description
e OpeningFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.OpeningFeatureSourceEventArgs –> This parameter is the event arguments which define the parameters passed to the recipient of the event.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

OpenCore()

Return Value

Return Type Description
Void<!– System.Void –>

Parameters

Name Type Description

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

SpatialQueryCore(BaseShape, QueryType, IEnumerable<String>)

This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified.

Remarks

This method returns all of the InternalFeatures based on the target Feature and the spatial query type specified below. If you override this method, you do not need to consider transactions. It is suggested that if you are looking to speed up this method that you first override the GetFeaturesInsideBoundingBoxCore and then re-test this method, as it relies heavily on that method internally. See more information below.

<strong>Spatial Query Types:</strong>

<strong>Disjoint</strong> - This method returns InternalFeatures where the specific Feature and the targetShape have no points in common.

<strong>Intersects</strong> - This method returns InternalFeatures where the specific Feature and the targetShape have at least one point in common.

<strong>Touches</strong> - This method returns InternalFeatures where the specific Feature and the targetShape have at least one boundary point in common, but no interior points.

<strong>Crosses</strong> - This method returns InternalFeatures where the specific Feature and the targetShape share some but not all interior points.

<strong>Within</strong> - This method returns InternalFeatures where the specific Feature lies within the interior of the targetShape.

<strong>Contains</strong> - This method returns InternalFeatures where the specific Feature lies within the interior of the current shape.

<strong>Overlaps</strong> - This method returns InternalFeatures where the specific Feature and the targetShape share some but not all points in common.

<strong>TopologicalEqual</strong> - This method returns InternalFeatures where the specific Feature and the target Shape are topologically equal.

The default implementation of SpatialQueryCore uses the GetFeaturesInsideBoundingBoxCore method to pre-filter the spatial query. We strongly recommend that you provide your own implementation for this method that will be more efficient. When you override this method, we recommend that you use any spatial indexes you have at your disposal to make this method as fast as possible.

Return Value

Return Type Description
Collection<Feature><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.Feature} –> The return decimalDegreesValue is a collection of InternalFeatures that match the spatial query you executed based on the TargetShape.

Parameters

Name Type Description
targetShape BaseShape<!– ThinkGeo.MapSuite.Core.BaseShape –> This parameter specifies the target shape used in the spatial query.
queryType QueryType<!– ThinkGeo.MapSuite.Core.QueryType –> This parameter specifies what kind of spatial query you wish to perform.
returningColumnNames IEnumerable<String><!– System.Collections.Generic.IEnumerable{System.String} –> This parameter allows you to select the field names of the column data you wish to return with each Feature.

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

Public Properties

CanExecuteSqlQuery

This property specifies whether the FeatureSource can excute a SQL query or not. If it is false, then it will throw exception when these APIs are calleds: ExecuteScalar, ExecuteNonQuery, ExecuteQuery

Remarks

The default implementation is false.

Return Value

Return Type
Boolean<!– System.Boolean –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

CanModifyColumnStructure

Return Value

Return Type
Boolean<!– System.Boolean –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

FeatureIdColumn

This property gets or sets the name of the column that holds the unique feature Id.

Return Value

Return Type
String<!– System.String –>

<!– ThinkGeo.MapSuite.Core.FileGeoDatabaseFeatureSource –> Go Back

FeatureIdsToExclude

A collection of strings representing record id of features not to get in the Layer.

Remarks

This string collection is a handy place to specify what records not to get from the source. Suppose you have a shape file of roads and you want to hide the roads within a particular rectangle, simply execute GetFeaturesInsideBoundingBox() and add the id of the return features to the collection and forget about them. Since you can set this by Layer it makes is easy to determine what to and what not to.

Return Value

Return Type
Collection<String><!– System.Collections.ObjectModel.Collection{System.String} –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

Filters

Return Value

Return Type
Collection<String><!– System.Collections.ObjectModel.Collection{System.String} –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GeoCache

The cache system.

Remarks

You must set IsActive to true for the Cache system. The default is not active.

Return Value

Return Type
FeatureCache<!– ThinkGeo.MapSuite.Core.FeatureCache –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GeometryValidationMode

Return Value

Return Type
GeometryValidationMode<!– ThinkGeo.MapSuite.Core.GeometryValidationMode –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

Id

Return Value

Return Type
String<!– System.String –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

IsEditable

Return Value

Return Type
Boolean<!– System.Boolean –>

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

IsInTransaction

This property returns true if the FeatureSource is in a transaction and false if it is not.

Remarks

To enter a transaction, you must first call the BeginTransaction method of the FeatureSource. It is possible that some FeatureSources are read-only and do not allow edits. To end a transaction, you must either call CommitTransaction or RollbackTransaction.

Return Value

Return Type
Boolean<!– System.Boolean –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

IsOpen

This property returns true if the FeatureSource is open and false if it is not.

Remarks

Various methods on the FeatureSource require that it be in an open state. If one of those methods is called when the state is not open, then the method will throw an exception. To enter the open state, you must call the FeatureSource's Open method. The method will raise an exception if the current FeatureSource is already open.

Return Value

Return Type
Boolean<!– System.Boolean –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

IsTransactionLive

This property returns true if the features currently modified in a transaction are expected to reflect their state when calling other methods on the FeatureSource, such as spatial queries.

Remarks

The live transaction concept means that all of the modifications you perform during a transaction are live from the standpoint of the querying methods on the object.

As 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, 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 would be considered live, though not committed.

In the case where you modify records – such as expanding the size of a polygon – those changes are reflected as well. 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 instead would return the larger records. In this case, the larger records are returned. You can set this property to be false, as well; in which case, all of the spatially related methods would ignore anything that is currently in the transaction buffer waiting to be committed. In such a case, only after committing the transaction would the FeatureSource reflect the changes.

Return Value

Return Type
Boolean<!– System.Boolean –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

LinkExpressions

Return Value

Return Type
Collection<String><!– System.Collections.ObjectModel.Collection{System.String} –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

LinkSources

Return Value

Return Type
Collection<LinkSource><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.LinkSource} –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

MaxRecordsToDraw

Return Value

Return Type
Int32<!– System.Int32 –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

PathName

Return Value

Return Type
String<!– System.String –>

<!– ThinkGeo.MapSuite.Core.FileGeoDatabaseFeatureSource –> Go Back

Projection

This property holds the projection object that is used within the FeatureSource to ensure that features inside of the FeatureSource are projected.

Remarks

By default this property is null, meaning that the data being passed back from any methods on the FeatureSource will be in the coordinate system of the raw data. When you specify a projection object in the property, all incoming and outgoing method calls will subject the features to projection.

For example, if the spatial database you are using has all of its data stored in decimal degrees, but you want to see the data in UTM, you would create a projection object that goes from decimal degrees to UTM and set that as the projection. With this one property set, we will ensure that it will seem to you the developer that all of the data in the FeatureSource is in UTM. That means every spatial query will return UTM projected shapes. You can even pass in UTM shapes for the parameters. Internally, we will ensure that the shapes are converted to and from the projection without any intervention on the developer's part.

In fact, even when you override virtual or abstract core methods in the FeatureSource, you will not need to know about projections at all. Simply work with the data in its native coordinate system. We will handle all of the projection at the high level method.

Return Value

Return Type
Projection<!– ThinkGeo.MapSuite.Core.Projection –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

TableName

Return Value

Return Type
String<!– System.String –>

<!– ThinkGeo.MapSuite.Core.FileGeoDatabaseFeatureSource –> Go Back

TransactionBuffer

The TransactionBuffer used in the Transaction System.

Remarks

The Transaction System

The 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 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 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 modifications you perform during a transaction are live from the standpoint of the querying methods on the object.

As 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, 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 would be considered live, though not committed.

In the case where you modify records – such as expanding the size of a polygon – those changes are reflected as well. 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 instead would return the larger records. In this case, the larger records are returned. You can set this property to be false, as well; in which case, all of the spatially related methods would ignore anything that is currently in the transaction buffer waiting to be committed. In such a case, only after committing the transaction would the FeatureSource reflect the changes.

Return Value

Return Type
TransactionBuffer<!– ThinkGeo.MapSuite.Core.TransactionBuffer –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

Protected Properties

CanExecuteSqlQueryCore

Return Value

Return Type
Boolean<!– System.Boolean –>

<!– ThinkGeo.MapSuite.Core.FeatureSource(overriden) –> Go Back

CanModifyColumnStructureCore

Return Value

Return Type
Boolean<!– System.Boolean –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

FeatureSourceColumns

This property gets the columns of the feature source.

Remarks

None.

Return Value

Return Type
Collection<FeatureSourceColumn><!– System.Collections.ObjectModel.Collection{ThinkGeo.MapSuite.Core.FeatureSourceColumn} –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

IsOpenCore

This property returns true if the FeatureSource is open and false if it is not.

Remarks

Various methods on the FeatureSource require that it be in an open state. If one of those methods is called when the state is not open, then the method will throw an exception. To enter the open state, you must call the FeatureSource's Open method. The method will raise an exception if the current FeatureSource is already open.

Return Value

Return Type
Boolean<!– System.Boolean –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

Public Events

AppliedFilters

Event Arguments

Event Arguments
AppliedFiltersFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.AppliedFiltersFeatureSourceEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

ApplyingFilters

Event Arguments

Event Arguments
ApplyingFiltersFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.ApplyingFiltersFeatureSourceEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

ClosedFeatureSource

This event is called after the closing of the FeatureSource.

Remarks

This event is called after the closing of the FeatureSource. Technically, this event is called after the calling of the Close method on the FeatureSource and after the protected CloseCore method.

It is typical that the FeatureSource may be opened and closed may times during the life cycle of your application. The type of control the MapEngine is embedded in will dictate how often this happens. For example, in the case of the Web Edition, each time a FeatureSource is in the Ajax or Post Back part of the page cycle, it will close the FeatureSource before returning back to the client. This is to conserve resources, as the web is a connection-less environment. In the case of the Desktop Edition, we can keep the FeaureSources open, knowing that we can maintain a persistent connection.

Event Arguments

Event Arguments
ClosedFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.ClosedFeatureSourceEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

ClosingFeatureSource

This event is called before the closing of the FeatureSource.

Remarks

This event is called before the closing of the FeatureSource. Technically, this event is called after the calling of the Close method on the FeatureSource, but before the protected CloseCore method.

It is typical that the FeatureSource may be opened and closed may times during the life cycle of your application. The type of control the MapEngine is embedded in will dictate how often this happens. For example, in the case of the Web Edition, each time a FeatureSource is in the Ajax or Post Back part of the page cycle, it will close the FeatureSource before returning back to the client. This is to conserve resources, as the web is a connection-less environment. In the case of the Desktop Edition, we can keep the FeaureSources open, knowing that we can maintain a persistent connection.

Event Arguments

Event Arguments
ClosingFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.ClosingFeatureSourceEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

CommittedTransaction

This event is raised after the CommitTransaction and the CommitTransactionCore are called and allows you access to the TransactionBuffer and the TransactionResults object before CommitTransaction method is returned.

Remarks

This event is raised after the CommitTransactionCore is called and allows you access to the TransactionBuffer and the TransactionResults object before CommitTransaction method is returned.

With this event, you can analyse the results of the transaction and do any cleanup code necessary. In the event some of the records did not commit, you can handle those items here. The TransactionResults object is passed out of the CommitTransaction method so you could analyze it then; however, this is the only place where you have access to both the TransactionResults object and the TransactionBuffer object at the same time. These are useful together to try and determine what went wrong and possibly try and re-commit them.

At the time of this event you will technically be out of the current transaction.

Event Arguments

Event Arguments
CommittedTransactionEventArgs<!– ThinkGeo.MapSuite.Core.CommittedTransactionEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

CommittingTransaction

This event is raised after the CommitTransaction method is called, but before the CommitTransactionCore is called. This allows you access to the TransactionBuffer before the transaction is committed. It also allows you to cancel the pending commit of the transaction.

Remarks

This event is raised before the CommitTransactionCore is called and allows you access to the TransactionBuffer before the transaction is committed. It also allows you to cancel the pending transaction. The TransactionBuffer is the object that stores all of the pending transactions and is accessible through this event to allow you to either add, remove or modify transactions.

In the event that you cancel the CommitTransaction method, the transaction remains intact and you will still be editing. This makes it a nice place to possibly check for connectivity before the TransactionCore code is run, which is where the records are actually committed. Calling the RollBackTransaction method is the only way to permanently cancel a pending transaction without committing it.

Event Arguments

Event Arguments
CommittingTransactionEventArgs<!– ThinkGeo.MapSuite.Core.CommittingTransactionEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

CustomColumnFetch

This event is raised when fields are requested in a feature source method that do not exist in the feature source. It allows you to supplement the data from any outside source you have.

Remarks

This event is raised when fields are requested in a feature source method that do not exist in the feature source. It allows you to supplement the data from any outside source you have.

It is used primarily when you have data relating to a particular feature or set of features that is not within source of the data. For example, you may have a shape file of the world whose .dbf component describes the area and population of each country. Additionally, in an outside SQL Server table, you may also have data about the countries, and it is this data that you wish to use for determining how you want to color each country.

To integrate this SQL data, you simply create a file name that does not exist in the .dbf file. Whenever Map Suite is queried to return records that specifically require this field, the FeatureSource will raise this event and allow you the developer to supply the data. In this way, you can query the SQL table and store the data in some sort of collection, and then when the event is raised, simply supply that data.

As this is an event, it will raise for each feature and field combination requested. This means that the event can be raised quite often, and we suggest that you cache the data you wish to supply in memory. We recommend against sending out a new SQL query each time this event is raised. Image that you are supplementing two columns and your query returns 2,000 rows. This means that if you requested those fields, the event would be raised 4,000 times.

Event Arguments

Event Arguments
CustomColumnFetchEventArgs<!– ThinkGeo.MapSuite.Core.CustomColumnFetchEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

DrawingProgressChanged

Event Arguments

Event Arguments
DrawingProgressChangedEventArgs<!– ThinkGeo.MapSuite.Core.DrawingProgressChangedEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GettingColumns

Event Arguments

Event Arguments
GettingColumnsFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.GettingColumnsFeatureSourceEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GettingFeaturesByIds

Event Arguments

Event Arguments
GettingFeaturesByIdsFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.GettingFeaturesByIdsFeatureSourceEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GettingFeaturesForDrawing

Event Arguments

Event Arguments
GettingFeaturesForDrawingFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.GettingFeaturesForDrawingFeatureSourceEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

GottenColumns

Event Arguments

Event Arguments
GottenColumnsFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.GottenColumnsFeatureSourceEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

OpenedFeatureSource

This event is called after the opening of the FeatureSource.

Remarks

This event is called after the opening of the FeatureSource. Technically, this event is called after the calling of the Open method on the FeatureSource and after the protected OpenCore method is called.

It is typical that the FeatureSource may be opened and closed may times during the life cycle of your application. The type of control the MapEngine is embedded in will dictate how often this happens. For example, in the case of the Web Edition, each time a FeatureSource is in the Ajax or Post Back part of the page cycle, it will close the FeatureSource before returning back to the client. This is to conserve resources, as the web is a connection-less environment. In the case of the Desktop Edition, we can keep the FeaureSources open, knowing that we can maintain a persistent connection.

Event Arguments

Event Arguments
OpenedFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.OpenedFeatureSourceEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

OpeningFeatureSource

This event is called before the opening of the FeatureSource.

Remarks

This event is called before the opening of the FeatureSource. Technically, this event is called after the calling of the Open method on the FeatureSource, but before the protected OpenCore method.

It is typical that the FeatureSource may be opened and closed may times during the life cycle of your application. The type of control the MapEngine is embedded in will dictate how often this happens. For example, in the case of the Web Edition, each time a FeatureSource is in the Ajax or Post Back part of the page cycle, it will close the FeatureSource before returning back to the client. This is to conserve resources, as the web is a connection-less environment. In the case of the Desktop Edition, we can keep the FeaureSources open, knowing that we can maintain a persistent connection.

Event Arguments

Event Arguments
OpeningFeatureSourceEventArgs<!– ThinkGeo.MapSuite.Core.OpeningFeatureSourceEventArgs –>

<!– ThinkGeo.MapSuite.Core.FeatureSource –> Go Back

NOTOC MapSuiteCore ThinkGeo.MapSuite.Core UpdateDocumentation

thinkgeo.mapsuite.core.filegeodatabasefeaturesource.1440040128.txt.gz · Last modified: 2015/09/17 09:00 (external edit)