×
Namespaces

Variants
Actions
(Difference between revisions)

Getting position data from TPositionInfoBase

From Nokia Developer Wiki
Jump to: navigation, search
seppo_fn (Talk | contribs)
m (Protected "CS001412 - Getting position data from TPositionInfoBase" ([edit=sysop] (indefinite) [move=sysop] (indefinite)))
hamishwillee (Talk | contribs)
m (Hamishwillee - Adding missing translation link)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
__NOTOC__
+
[[Category:Location]][[Category:Symbian C++]][[Category:Code Snippet]]
__NOEDITSECTION__
+
{{ArticleMetaData <!-- v1.2 -->
{{KBCS}}
+
|sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) -->
{{CodeSnippet
+
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) -->
|id=CS001412
+
|devices= Nokia 5800 XpressMusic
|platform=S60 3rd Edition <br>S60 5th Edition
+
|sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) -->
|devices=Nokia 5800 XpressMusic
+
|platform= S60 3rd Edition <br>S60 5th Edition
|category=Symbian C++
+
|devicecompatability= <!-- Compatible devices (e.g.: All* (must have GPS) ) -->
|subcategory=Location Based Services
+
|dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 -->
|creationdate=June 9, 2009
+
|signing= <!-- Empty or one of Self-Signed, DevCert, Manufacturer -->
|keywords=TPositionInfoBase, TPosition
+
|capabilities= Location
 +
|keywords= TPositionInfoBase, TPosition
 +
|language= <!-- Language category code for non-English topics - e.g. Lang-Chinese -->
 +
|translated-by= <!-- [[User:XXXX]] -->
 +
|translated-from-title= <!-- Title only -->
 +
|translated-from-id= <!-- Id of translated revision -->
 +
|review-by= <!-- After re-review: [[User:username]] -->
 +
|review-timestamp= <!-- After re-review: YYYYMMDD -->
 +
|update-by= <!-- After significant update: [[User:username]]-->
 +
|update-timestamp= <!-- After significant update: YYYYMMDD -->
 +
|creationdate= 20090506
 +
|author= [[User:Tepaa]]
 +
<!-- The following are not in current metadata -->
 +
|id= CS001412
 
}}
 
}}
  
 
==Overview==
 
==Overview==
  
This snippet demonstrates two ways of using <tt>TPositionInfoBase</tt>:
+
This snippet demonstrates two ways of using {{Icode|TPositionInfoBase}}:
 
+
* getting the {{Icode|TPosition}} class from {{Icode|TPositionInfoBase}}
* getting the <tt>TPosition</tt> class from <tt>TPositionInfoBase</tt>
+
* showing {{Icode|TPosition}} in textual format
* showing <tt>TPosition</tt> in textual format
+
  
  
Line 27: Line 39:
 
The following libraries and capabilities are required:
 
The following libraries and capabilities are required:
 
<code>
 
<code>
CAPABILITY     Location
+
CAPABILITY Location
LIBRARY       lbs.lib
+
LIBRARY lbs.lib
 
</code>
 
</code>
  
Line 166: Line 178:
 
==Postconditions==
 
==Postconditions==
  
Position data is read from <tt>TPositionInfoBase</tt>.
+
Position data is read from {{Icode|TPositionInfoBase}}.
  
 +
{{VersionHint}}
 +
[[Category:S60 3rd Edition (initial release)]] [[Category:S60 3rd Edition FP1]] [[Category:S60 3rd Edition FP2]]
 +
[[Category:S60 5th Edition]]
  
 
==See also==
 
==See also==
  
* [[CS001376 - Retrieving GPS location]]
+
* [[Retrieving location information using Symbian C++]]
* [http://www.forum.nokia.com/info/sw.nokia.com/id/b8bf64b5-97b0-48bc-9ea2-8f20430c34c0/S60_Platform_Location_Example.html S60 Platform Location Example]
+
* [http://www.developer.nokia.com/info/sw.nokia.com/id/b8bf64b5-97b0-48bc-9ea2-8f20430c34c0/S60_Platform_Location_Example.html S60 Platform Location Example]
+
<!-- Translation --> [[zh-hans:从TPositionInfoBase获得位置数据]]
 
+
 
+
[[Category:Symbian C++]][[Category:Code Examples]][[Category:Location Based Services]]
+

Latest revision as of 08:59, 18 September 2012

Article Metadata
Tested with
Devices(s): Nokia 5800 XpressMusic
CompatibilityPlatform Security
Capabilities: Location
Article
Keywords: TPositionInfoBase, TPosition
Created: tepaa (06 May 2009)
Last edited: hamishwillee (18 Sep 2012)

Contents

[edit] Overview

This snippet demonstrates two ways of using TPositionInfoBase:

  • getting the TPosition class from TPositionInfoBase
  • showing TPosition in textual format


Note: The Location capability is included in the self-signing capabilities of S60 3rd Edition, Feature Pack 2 and newer platforms.


[edit] MMP file

The following libraries and capabilities are required:

CAPABILITY Location
LIBRARY lbs.lib


[edit] Header

#include <LbsPositionInfo.h> 
#include <LbsPosition.h>
 
// Degrees sign delimeter used in formatting methods
_LIT(KDelimDegree,"\xb0"); // "°" symbol
 
// Dot delimeter used in formatting methods
_LIT(KDelimDot,"\x2e"); // "." symbol
 
// Plus sign delimeter used in formatting methods
_LIT(KDelimPlus,"\x2b"); // "+" symbol
 
// Minus sign delimeter used in formatting methods
_LIT(KDelimMinus,"\x2d"); // "-" symbol
 
// Quotation sign delimeter used in formatting methods
_LIT(KDelimQuot,"\x22"); // "\"" symbol
 
// Apostrophe sign delimeter used in formatting methods
_LIT(KApostrophe,"\x27"); // "'" symbol
 
const TInt KDegreeLength = 19;


[edit] Source

void CMyClass::PositionUpdated(TPositionInfoBase& aPosInfo)
{
// Check if position information class type is TPositionInfo
if (aPosInfo.PositionClassType() & EPositionInfoClass)
{
// Cast the TPositionInfoBase object to TPositionInfo
TPositionInfo* posInfo = static_cast<TPositionInfo*>(&aPosInfo);
 
// Get position
TPosition position;
posInfo->GetPosition(position);
 
// Convert positions to the descriptors
TBuf<KDegreeLength> latitudeDegr;
GetDegreesString(position.Latitude(), latitudeDegr);
 
// Convert positions to the descriptors
TBuf<KDegreeLength> longitudeDegr;
GetDegreesString(position.Longitude(), longitudeDegr);
}
}


void CMyClass::GetDegreesString(
const TReal64& aDegrees,TBuf<KDegreeLength>& aDegreesString) const
{
const TReal KSecondsInMinute = 60.0;
const TInt KNumWidth = 3;
 
// If the aDegree is a proper number
if ( !Math::IsNaN(aDegrees) )
{
// Integer part of the degrees
TInt intDegrees = static_cast<TInt>(aDegrees);
 
// Positive float of the degrees
TReal64 realDegrees = aDegrees;
 
// Convert to positive values
if ( intDegrees < 0 )
{
intDegrees = -intDegrees;
realDegrees = -realDegrees;
}
 
// Minutes
TReal64 realMinutes = (realDegrees - intDegrees) * KSecondsInMinute;
 
// Integer part of the minutes
TInt intMinutes = static_cast<TInt>(realMinutes);
 
// Seconds
TReal64 realSeconds = (realMinutes - intMinutes) * KSecondsInMinute;
TInt intSeconds = static_cast<TInt>((realMinutes - intMinutes) * KSecondsInMinute);
 
// Check the sign of the result
if ( aDegrees >= 0 )
{
aDegreesString.Append(KDelimPlus);
}
else
{
aDegreesString.Append(KDelimMinus);
}
 
// Add the degrees
TInt64 value = intDegrees;
aDegreesString.AppendNum(value);
 
// Add the separator
aDegreesString.Append(KDelimDegree);
 
// Add the minutes
value = intMinutes;
aDegreesString.AppendNum(value);
 
// Add the separator
aDegreesString.Append(KApostrophe);
 
// Add the seconds
value = intSeconds;
aDegreesString.AppendNum(value);
 
// Add the separator
aDegreesString.Append(KDelimQuot);
 
// Add the separator
aDegreesString.Append(KDelimDot);
 
// Get six last digits
realSeconds -= intSeconds;
realSeconds *= 1000;
 
// Add the seconds
aDegreesString.AppendNumFixedWidth(static_cast<TInt>(realSeconds),
EDecimal, KNumWidth);
}
}


[edit] Postconditions

Position data is read from TPositionInfoBase.

[edit] Version Hint

Windows Phone: [[Category:Windows Phone]]
[[Category:Windows Phone 7.5]]
[[Category:Windows Phone 8]]

Nokia Asha: [[Category:Nokia Asha]]
[[Category:Nokia Asha Platform 1.0]]

Series 40: [[Category:Series 40]]
[[Category:Series 40 1st Edition]] [[Category:Series 40 2nd Edition]]
[[Category:Series 40 3rd Edition (initial release)]] [[Category:Series 40 3rd Edition FP1]] [[Category:Series 40 3rd Edition FP2]]
[[Category:Series 40 5th Edition (initial release)]] [[Category:Series 40 5th Edition FP1]]
[[Category:Series 40 6th Edition (initial release)]] [[Category:Series 40 6th Edition FP1]] [[Category:Series 40 Developer Platform 1.0]] [[Category:Series 40 Developer Platform 1.1]] [[Category:Series 40 Developer Platform 2.0]]

Symbian: [[Category:Symbian]]
[[Category:S60 1st Edition]] [[Category:S60 2nd Edition (initial release)]] [[Category:S60 2nd Edition FP1]] [[Category:S60 2nd Edition FP2]] [[Category:S60 2nd Edition FP3]]
[[Category:S60 3rd Edition (initial release)]] [[Category:S60 3rd Edition FP1]] [[Category:S60 3rd Edition FP2]]
[[Category:S60 5th Edition]]
[[Category:Symbian^3]] [[Category:Symbian Anna]] [[Category:Nokia Belle]]

[edit] See also

This page was last modified on 18 September 2012, at 08:59.
141 page views in the last 30 days.
×