User Tools

Site Tools


api:thinkgeo.mapsuite.routing.routingsource

ThinkGeo.MapSuite.Routing.RoutingSource

Inheritance Hierarchy

Members Summary

Public Constructors

Protected Constructors

RoutingSource()

  • This is the default constructor for the abstract RoutingSource class.
Remarks
  • As this method is protected, you may only add code to this method if you override it from an inheriting class.
Parameters

Public Methods

GetRouteSegmentCount()

  • N/A
Remarks
  • This method is the concrete wrapper for the virtual method GetRouteSegmentCountCore. It will return whatever is returned by the GetRouteSegmentCountCore 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 virtual GetRouteSegmentCountCore method is, please see the documentation for it. The default implementation of GetRouteSegmentCountCore returns 0. We strongly recommend that you provide your own implementation for this method.
Return Value
  • Type:Int32
  • Description:This method returns the count of the number of records in this RoutingSource.
Parameters

Open()

  • N/A
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 RoutingSource. Most methods on the RoutingSource will throw an exception if the state of the RoutingSource is not opened. When the map draws each layer, it will open the RoutingSource 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 RoutingSource. When implementing this 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 RoutingSource. 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
  • Type:Void
  • Description:None
Parameters

Close()

  • N/A
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 RoutingSource. 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 a call to a closed RoutingSource is ignored and does not generate an error. We also suggest that in the Close you free all resources that have been opened. Remember that the object will not be destroyed, but will be re-opened possibly in the near future.
Return Value
  • Type:Void
  • Description:None
Parameters

GetRouteSegmentByFeatureId(String)

  • N/A
Remarks
Return Value
  • Description:A RouteSegment based on a specific ID.
Parameters
  • featureId
    • Type:String
    • Description:This parameter is the feature ID that uniquely identifies it in the RoutingSource.

GetRouteSegmentsNearestTo(BaseShape,FeatureSource,GeographyUnit,Int32)

  • N/A
Remarks
  • This method returns a user defined number of Route Segments 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.
Return Value
  • Type:Collection<RouteSegment>
  • Description:This method returns a user defined number of Route Segments that are closest to the TargetShape.
Parameters
  • targetShape
    • Type:BaseShape
    • Description:This parameter is the shape you want to find Route Segments close to.
  • featureSource
    • Description:This parameter defines the FeatureSource that is used to get information of RouteSegments
  • unitOfFeatureSource
    • Description:This parameter is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
  • numberOfItemsToFind
    • Type:Int32
    • Description:This parameter defines how many close Route Segments to find around the TargetShape.

BeginTransaction()

  • N/A
Remarks
  • This method is used to start a transaction, assuming that the RoutingSource 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 RoutingSource has been opened. The Transaction System 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 RouteSegment 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 RoutingSource is responsible for integrating your changes into the underlying RoutingSource.
Return Value
  • Type:Void
  • Description:None
Parameters

CommitTransaction()

  • N/A
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 RoutSegments added, updated or deleted. You will need to ensure that you have started a transaction by calling BeginTransaction.
Return Value
  • Description: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

RollbackTransaction()

  • N/A
Remarks
  • This method will cancel an existing transaction. It will free up the internal memory cache of any RoutingSegments added, updated or deleted. You will need to ensure that you have started a transaction by calling BeginTransaction.The Transaction System 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 RouteSegment 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 RoutingSource is responsible for integrating your changes into the underlying RoutingSource.
Return Value
  • Type:Void
  • Description:None
Parameters

AddRouteSegment(RouteSegment)

  • N/A
Remarks
  • This method adds a new RouteSegment to an existing transaction. You will need to ensure that you have started a transaction by calling BeginTransaction. The Transaction System 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 RouteSegment 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 RoutingSource is responsible for integrating your changes into the underlying RoutingSource.
Return Value
  • Type:Void
  • Description:N/A
Parameters
  • routeSegment
    • Description:This parameter represents the routeSegment that will be added to the transaction.

UpdateRouteSegment(RouteSegment)

  • N/A
Remarks
  • This method update a RouteSegment to an existing transaction. You will need to ensure that you have started a transaction by calling BeginTransaction. The Transaction System 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 RouteSegment 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 RoutingSource is responsible for integrating your changes into the underlying RoutingSource.
Return Value
  • Type:Void
  • Description:None
Parameters
  • routeSegment
    • Description:The RouteSegment that will be updated to an existing transaction

DeleteRouteSegment(String)

  • N/A
Remarks
  • This method delete a RouteSegment from an existing transaction. You will need to ensure that you have started a transaction by calling BeginTransaction. The Transaction System 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 RouteSegment 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 RoutingSource is responsible for integrating your changes into the underlying RoutingSource.
Return Value
  • Type:Void
  • Description:None
Parameters
  • id
    • Type:String
    • Description:This string is the fature Id of the RouteSegment in the RoutingSource you wish to delete.

ToString()

  • N/A
Remarks
  • N/A
Return Value
  • Type:String
  • Description:N/A
Parameters

Equals(Object)

  • N/A
Remarks
  • N/A
Return Value
  • Type:Boolean
  • Description:N/A
Parameters
  • obj
    • Type:Object
    • Description:N/A

GetHashCode()

  • N/A
Remarks
  • N/A
Return Value
  • Type:Int32
  • Description:N/A
Parameters

GetType()

  • N/A
Remarks
  • N/A
Return Value
  • Type:Type
  • Description:N/A
Parameters

Protected Methods

OnCommittingTransaction(RoutingCommittingTransactionEventArgs)

  • N/A
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 RoutingSource 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
  • Type:Void
  • Description:None
Parameters

OnCommittedTransaction(RoutingCommittedTransactionEventArgs)

  • N/A
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 RoutingSource 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
  • Type:Void
  • Description:None
Parameters

GetRouteSegmentCountCore()

  • N/A
Remarks
  • This protected virtual method is called from the concrete public method GetCount. It does not take into account any transaction activity, as this is the responsibility of the concrete public method GetRouteSegmentCount. This way, as a developer, if you choose to override this method you do not have to consider transactions at all. The default implementation of GetRouteSegmentCountCore returns 0. We strongly recommend that you provide your own implementation for this method.
Return Value
  • Type:Int32
  • Description:This method returns the count of the number of records in this RoutingSource.
Parameters

OpenCore()

  • N/A
Remarks
  • This protected virtual method is called from the concrete public method Open. The Open method plays an important role, as it is responsible for initializing the RoutingSource. Most methods on the RoutingSource will throw an exception if the state of the RoutingSource is not opened. When the map draws each layer, it will open the RoutingSource 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 RoutingSource. When implementing this virtual 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 RoutingSource.
Return Value
  • Type:Void
  • Description:None
Parameters

CloseCore()

  • N/A
Remarks
  • This protected virtual method is called from the concrete public method Close. The Close method plays an important role in the life cycle of the RoutingSource. 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 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 RoutingSource is ignored and does not generate an error. We also suggest that in the Close you free all resources that have been opened. Remember that the object will not be destroyed, but will be re-opened possibly in the near future.
Return Value
  • Type:Void
  • Description:None
Parameters

GetRouteSegmentByFeatureIdCore(String)

  • N/A
Remarks
Return Value
  • Description:A RouteSegment based on a specific ID.
Parameters
  • featureId
    • Type:String
    • Description:This parameter is the feature ID that uniquely identifies it in the RoutingSource.

GetRouteSegmentsNearestToCore(BaseShape,FeatureSource,GeographyUnit,Int32)

  • N/A
Remarks
  • This method returns a user defined number of Route Segments 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.
Return Value
  • Type:Collection<RouteSegment>
  • Description:This method returns a user defined number of Route Segments that are closest to the TargetShape.
Parameters
  • targetShape
    • Type:BaseShape
    • Description:This parameter is the shape you want to find Route Segments close to.
  • featureSource
    • Description:This parameter defines the FeatureSource that is used to get information of RouteSegments
  • unitOfFeatureSource
    • Description:This parameter is the unit of measurement that the TargetShape and the FeatureSource are in, such as feet, meters, etc.
  • numberOfItemsToFind
    • Type:Int32
    • Description:This parameter defines how many close Route Segments to find around the TargetShape.

BeginTransactionCore()

  • N/A
Remarks
  • N/A
Return Value
  • Type:Void
  • Description:N/A
Parameters

CommitTransactionCore(RoutingTransactionBuffer)

  • N/A
Remarks
  • 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 RoutSegments added, updated or deleted. You will need to ensure that you have started a transaction by calling BeginTransaction.
Return Value
  • Description: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

RollbackTransactionCore()

  • N/A
Remarks
  • N/A
Return Value
  • Type:Void
  • Description:N/A
Parameters

Finalize()

  • N/A
Remarks
  • N/A
Return Value
  • Type:Void
  • Description:N/A
Parameters

MemberwiseClone()

  • N/A
Remarks
  • N/A
Return Value
  • Type:Object
  • Description:N/A
Parameters

Public Properties

IsOpen

  • N/A
Remarks
  • Various methods on the RoutingSource 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 RoutingSource's Open method.
Return Value
  • Type:Boolean

IsInTransaction

  • N/A
Remarks
  • To enter a transaction, you must first call the BeginTransaction method of the RoutingSource. It is possible that some RoutingSource are read-only and do not allow edits. To end a transaction, you must either call CommitTransaction or RollbackTransaction.
Return Value
  • Type:Boolean

IsEditable

  • N/A
Remarks
  • This property is useful to check if a specific RoutingSource accepts editing. If you call BeginTransaction and this property is false, then an exception will be raised. For developers who are creating or extending a RoutingSource, it is expected that you override this virtual method if the new RoutingSource you are creating allows edits.
Return Value
  • Type:Boolean

Protected Properties

TransactionBuffer

  • N/A
Remarks
  • N/A
Return Value

Public Events

CommittingTransaction

  • N/A
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:RoutingCommittingTransactionEventArgs

CommittedTransaction

  • N/A
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:RoutingCommittedTransactionEventArgs

api/thinkgeo.mapsuite.routing.routingsource.txt · Last modified: 2017/01/12 02:38 (external edit)