tsc_StationCalcMultiBacksight

Use this class for computing the position of a station using a known station point and at least one backsight to at least one known point.

Typically there will be multiple observations to multiple known backsights on both faces - in this respect the calculation is very similar to resection with the main difference being the known station coordinate.

Once the orientation and scale factor have been resolved, the standard SurveyCore resection method will be invoked to solve the station elevation if it is missing for the known station coordinate - if this fails (perhaps due to a lack of vertical data) then the X_ComputeStationElevation error code is returned, this error code does not indicate that the orientation and scale factor solution is faulty and can be viewed as a partial success code.

Constructor

tsc_StationCalcMultiBacksight (class tsc_StationSetup& station);

Constructs an instance for computing the given station using a single backsight observation.  The station must be "in progress" - it must have been started but not ended or aborted.

 

Public methods

virtual tsc_StationResults  CalculateStation();

Computes the station orientation from all of the backsight observations and returns the results.  The results are not stored anywhere but reside in the tsc_StationResults instance.  Depending on the current state of the station setup in the database, some (or all) values may have null values.

Residuals, MTAs and MTA residuals will be calculated.

The first backsight in the list will be taken as the backbearing reference.

The returned tsc_StationResults will contain the backsight that was used for the station, including a reference to the observation and the calculated residuals.

The results may be used to update the station by calling the UpdateStation() method on tsc_StationSetup, and the residuals may be written to the database by using the WriteResiduals() method also in tsc_StationSetup.  It is normal to only write the MTAs and residuals once, at the end of the station setup.

virtual tsc_StationResults CalculateStationWithFreeScale();

virtual tsc_StationResults CalculateStationWithFreeScale (const tsc_BacksightList& useBacksights);

This overload allows the scale factor to be calculated along with other station parameters.

Where a backsight list is supplied only backsights to the first known point will be considered.

virtual tsc_StationResults CalculateStationWithFixedScale(const double& scaleFactor = 1.0);

virtual tsc_StationResults CalculateStationWithFixedScale (const tsc_BacksightList& useBacksights, double fixedScaleFactor);

This overload allows the scale factor to be fixed at the supplied value.  If the given value is double_Null, the scale factor will be calculated.

virtual void UpdateStation (const tsc_StationResults& results);

From the results of the calculation, updates the station record and the backbearing record.