⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpsposition.cpp

📁 symbian s60上的GPS
💻 CPP
字号:

#include "GpsPosition.h"


EXPORT_C TGpsPosition::TGpsPosition( void ) 
{
	Reset();
}

EXPORT_C TGpsPosition::TGpsPosition( const TReal & aLongitude, const TReal & aLatitude ) 
{
	Reset();
	Set( aLongitude, aLatitude );
}

EXPORT_C TGpsPosition::TGpsPosition( const TGpsPosition & aGpsPosition ) 
{
	Set( aGpsPosition );
}

EXPORT_C void TGpsPosition::Reset( void ) 
{
	iLongitude = iLatitude	= 0;
	iPositionDataValid		= EFalse;
	iNumberOfSatellites		= 0;
	iHdop					= 0;
	iUtcTime				= 0;
	iTickCount				= 0;
	iHeading				= 0;
	iSpeedInKnots			= 0;
	iCourseDataValid		= EFalse;
}

EXPORT_C void TGpsPosition::Set( const TReal & aLongitude, const TReal & aLatitude ) 
{
	iLongitude				= aLongitude;
	iLatitude				= aLatitude;

	ValidatePosition();
}

EXPORT_C void TGpsPosition::Set( const TGpsPosition & aPosition ) 
{
	iLongitude				= aPosition.iLongitude;
	iLatitude				= aPosition.iLatitude;
	iPositionDataValid		= aPosition.iPositionDataValid;
	iNumberOfSatellites		= aPosition.iNumberOfSatellites;
	iHdop					= aPosition.iHdop;
	iUtcTime				= aPosition.iUtcTime;
	iTickCount				= aPosition.iTickCount;
	iHeading				= aPosition.iHeading;
	iSpeedInKnots			= aPosition.iSpeedInKnots;
	iCourseDataValid		= aPosition.iCourseDataValid;
}

EXPORT_C void TGpsPosition::SetExtendedInfo( TBool aValidFixFlag, TInt aNumberOfSatellites, const TReal & aHdop ) 
{
	iNumberOfSatellites		= aNumberOfSatellites;
	iHdop					= aHdop;
	iPositionDataValid		= aValidFixFlag;
}

EXPORT_C void TGpsPosition::SetTimeInfo( const TReal & aUtcTime, TUint aTickCount )
{
	iUtcTime				= aUtcTime;
	iTickCount				= aTickCount;
}

EXPORT_C void TGpsPosition::SetCourseData( const TReal & aHeading, const TReal & aSpeedInKnots, TBool aValidFlag ) 
{
	iHeading				= aHeading;
	iSpeedInKnots			= aSpeedInKnots;
	iCourseDataValid		= aValidFlag;
}

EXPORT_C const TDesC & TGpsPosition::ToStringL( void ) const 
{
	_LIT( KInvalid, "invalid" );

	if ( iPositionDataValid == EFalse )
		return( KInvalid );

	_LIT( KPositionFormat, "%.8lf %.8lf");

	TBuf< 100 > temp;
	temp.Format( KPositionFormat, iLongitude, iLatitude );

	return( temp );
}

void TGpsPosition::ValidatePosition( void ) 
{
	TBool valid = ETrue;

	if ( iLongitude < -180 || iLongitude > 180 )
		valid = EFalse;

	else if ( iLatitude < -90 || iLatitude > 90 )
		valid = EFalse;

	iPositionDataValid = valid;
}

EXPORT_C const TReal & TGpsPosition::Longitude( void ) const 
{
	return( iLongitude );
}

EXPORT_C const TReal & TGpsPosition::Latitude( void ) const 
{
	return( iLatitude );
}

EXPORT_C TInt TGpsPosition::Satellites( void ) const 
{
	return( iNumberOfSatellites );
}

EXPORT_C const TReal & TGpsPosition::Hdop( void ) const 
{
	return( iHdop );
}

EXPORT_C const TReal & TGpsPosition::UtcTime( void ) const 
{
	return( iUtcTime );
}

EXPORT_C TUint TGpsPosition::TickCount( void ) const 
{
	return( iTickCount );
}

EXPORT_C const TReal & TGpsPosition::Heading( void ) const 
{
	return( iHeading );
}

EXPORT_C const TReal & TGpsPosition::SpeedInKnots( void ) const 
{
	return( iSpeedInKnots );
}

EXPORT_C const TReal TGpsPosition::SpeedInKmh( void ) const 
{
	return( iSpeedInKnots * 1.846 );
}

EXPORT_C TBool TGpsPosition::CourseDataValid( void ) const 
{ 
	return( iCourseDataValid );
}

EXPORT_C const TReal & TGpsPosition::Wgs84Longitude( void ) const 
{ 
	return( iLongitude );
}

EXPORT_C const TReal & TGpsPosition::Wgs84Latitude( void ) const 
{ 
	return( iLatitude ); 
}

EXPORT_C TBool TGpsPosition::IsValid( void ) const 
{
	return( iPositionDataValid );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -