Ttnavsdk3 Manual
Ttnavsdk3 Manual
i
5.2.11. Function GetFavoriteName( aFavorite As Long) As String 17
5.2.12. Function GetFavoriteDescription( aFavorite As Long) As String 17
5.2.13. Function GetFavoriteLongitude( aFavorite As Long) As Long 18
5.2.14. Function GetFavoriteLatitude( aFavorite As Long) As Long 18
5.2.15. Sub NavigateToFavorite( aFavorite As Long) 18
5.2.16. Sub ShowCoordinateOnMap( aLongitude As Long, aLatitude As
Long) 18
5.2.17. Sub ShowRectangleOnMap( aLongitudeW As Long, aLatitudeS As
Long, aLongitudeE As Long, aLatitudeN As Long) 19
5.2.18. Sub SendDirectCommand( aCommand As Long) 19
5.2.19. Sub GetCurrentPosition( ) 20
5.2.20. Sub MakePoiVisible( aPoiTypeID As Long, aVisibility As Boolean) 20
5.2.21. Sub AddPoi( aFilename As String, aLongitude As Long, aLatitude
As Long, aName As String, anId As String) 22
5.2.22. Sub DeleteClosestPoi( aFilename As String, aLongitude As Long,
aLatitude As Long) 23
5.2.23. Sub DeleteAllPoi( aFilename As String) 23
5.2.24. Sub MakeUserPoiVisible( aFilename As String, aVisibility As
Boolean) 23
5.2.25. Sub MoveClosestPoi( aFilename As String, aLongitude As Long,
aLatitude As Long, aNewLongitude As Long, aNewLatitude As Long) 23
5.2.26. Sub Geocode( aCity As String, aStreet As String, aHouseNr As
String) 24
5.2.27. Sub GeocodeEx( aCity As String, aStreet As String, aHouseNr As
String, aPostcode As String) 25
5.2.28. Sub GetDataSetInfo( ) 25
5.2.29. Sub GetRouteInfo( ) 25
5.2.30. Sub GetRouteCoordinates( aFileName As String) 26
5.2.31. Sub UseGFFile( aFilename As String) 26
5.2.32. Sub EnableGFRecord( aRecordID As Long, aState As Boolean) 26
6. Communicating with TomTom Navigator from C++ 27
6.1. Introduction 27
6.2. Supported API calls 27
6.2.1. INT GetSdkVersionInfoV01( TNavVersionInfoV01& aVersionInfo) 27
6.2.2. INT GetNavigatorVersionInfoV01( TNavVersionInfoV01&
aVersionInfo) 28
6.2.3. INT BringNavigatorToForeground( ) 28
6.2.4. INT SwitchToNavigatorView( ) 28
6.2.5. INT TryCloseCurrentOpenedDialogs( ) 28
6.2.6. INT SwitchMap( LPCTSTR aFileName) 28
6.2.7. INT GetLocationInfoV01( long aLongitude, long aLatitude,
TLocationInfoV01 & aLocInfo) 28
6.2.8. INT GetLocationInfoV02( long aLongitude, long aLatitude, int
&aLocType, TCHAR aStreetName[128], int &aHouseNr1, int
&aHouseNr2) 29
6.2.9. INT NavigateToCoordinate( long aLongitude, long aLatitude,
LPCTSTR aName) 29
6.2.10. INT ClearFavorite( INT aIndex) 29
ii
6.2.11. INT SetFavoriteV01( INT aIndex, TFavouriteRecV01 & aFavorite) 30
6.2.12. INT GetFavoriteV01( INT aIndex, TFavouriteRecV01& aFavorite) 30
6.2.13. INT NavigateToFavorite( INT aIndex) 30
6.2.14. INT ShowCoordinateOnMap( long aLongitude, long aLatitude) 30
6.2.15. INT ShowRectangleOnMap( long aLongitudeW, long aLatitudeS,
long aLongitudeE, long aLatitudeN) 31
6.2.16. INT SendDirectCommand( EDirectCommands aCommand) 31
6.2.17. INT GetCurrentPositionV01( EGpsStatus & aStatus,
TTTnLocationV01 & aLocation) 31
6.2.18. INT MakePoiVisible( EPoiTypeCode aPoiID, INT aVisibility) 32
6.2.19. INT AddPoi( LPCTSTR aFilename, long aLongitude, long
aLatitude, LPCTSTR aName, LPCTSTR anId) 32
6.2.20. INT DeleteClosestPoi( LPCTSTR aFilename, long aLongitude, long
aLatitude) 33
6.2.21. INT DeleteAllPoi( LPCTSTR aFilename) 33
6.2.22. INT MakeUserPoiVisible( LPCTSTR aFilename, INT aVisibility) 33
6.2.23. INT MoveClosestPoi( LPCTSTR aFilename, long aLongitude, long
aLatitude, long aNewLongitude, long aNewLatitude) 33
6.2.24. INT AddAvoidRect( long aLongitudeW, long aLatitudeS, long
aLongitudeE, long aLatitudeN) 34
6.2.25. INT ClearAvoidRect( long aLongitudeW, long aLatitudeS, long
aLongitudeE, long aLatitudeN) 34
6.2.26. INT ClearAllAvoids( ) 34
6.2.27. INT AddItineraryLocationV01( int aIndex, TItineraryLocRecV01&
aLoc) 34
6.2.28. INT AddItineraryLocationV02( int aIndex, LPCTSTR aName, long
aLongitude, long aLatitude, int aFlags) 35
6.2.29. INT SetItineraryLocationV01( int aIndex, TItineraryLocRecV01&
aLoc) 35
6.2.30. INT SetItineraryLocationV02( int aIndex, LPCTSTR aName, long
aLongitude, long aLatitude, int aFlags) 35
6.2.31. INT GetItineraryLocationV01( int aIndex, TItineraryLocRecV01&
aLoc) 35
6.2.32. INT GetItineraryLocationV02( int aIndex, TCHAR aName[128], long
aLongitude, long aLatitude, int aFlags) 36
6.2.33. INT DeleteItineraryLocation( int aIndex) 36
6.2.34. INT EnableItineraryLocation( int aIndex, INT aState) 36
6.2.35. INT IsItineraryLocationEnabled( int aIndex, INT & aState) 36
6.2.36. INT IsItineraryLocationInMap( int aIndex, INT & aInMap) 36
6.2.37. INT SetItineraryDefaultDepartureV01( TItineraryLocRecV01 &
aLoc) 37
6.2.38. INT SetItineraryDefaultDepartureV02( int aIndex, LPCTSTR aName,
long aLongitude, long aLatitude, int aFlags) 37
6.2.39. INT GetItineraryDefaultDepartureV01( TItineraryLocRecV01 &
aLoc) 37
6.2.40. INT GetItineraryDefaultDepartureV02( TCHAR aName[128], long &
aLongitude, long & aLatitude, int & aFlags) 37
6.2.41. INT SaveItinerary( LPCTSTR aFileName) 37
iii
6.2.42. INT LoadItinerary( LPCTSTR aFileName) 38
6.2.43. INT ClearItinerary( ) 38
6.2.44. INT NavigateToNextStopover( ) 38
6.2.45. INT AbortItineraryLeg( ) 38
6.2.46. INT GetItineraryState( int & aState) 38
6.2.47. INT GetCurrentStopover( int & aStopover) 38
6.2.48. INT GetNrOfItineraryLocations( int & aNrOfLocs) 38
6.2.49. INT SetNavigatorProperty( EProperty aProperty, long aValue) 39
6.2.50. INT GeocodeV01( LPCTSTR aCity, LPCTSTR aStreet, LPCTSTR
aHouseNr, TGeocodeInfoV01& aGeocodeInfo) 39
6.2.51. INT GeocodeExV01( LPCTSTR aCity, LPCTSTR aStreet, LPCTSTR
aHouseNr, LPCTSTR aPostcode, TGeocodeInfoV01& aGeocodeInfo) 40
6.2.52. INT GetDataSetInfoV01( TDataSetInfoV01& aDataSetInfo) 40
6.2.53. INT GetRouteInfoV01( TRouteInfoV01& aRouteInfo) 40
6.2.54. INT GetRouteCoordinates( LPCTSTR aFileName) 40
6.2.55. INT UseGFFile( LPCTSTR aFilename) 41
6.2.56. INT EnableGFRecord( long aRecordID, INT aState) 41
6.3. Structures and enumerations from the API 41
6.3.1. TNavVersionInfoV01 structure 41
6.3.2. TFavouriteRecV01 structure 41
6.3.3. EDirectCommands enumeration 41
6.3.4. TTTnLocationV01 structure 42
6.3.5. EGpsStatus enumeration 42
6.3.6. TGeocodeInfoV01 structure 42
6.3.7. TLocationInfoV01 structure 43
6.3.8. EPoiTypeCode enumeration 43
6.3.9. TDataSetInfoV01 structure 44
6.3.10. TRouteInfoV01 structure 44
6.3.11. TItineraryLocRecV01 structure 45
6.3.12. EProperty enumeration 45
7. Graphic Information Files 48
7.1. About GF Files 48
7.2. GF File Format 48
7.2.1. Basics of the File Format 48
7.2.2. Supported Record Types 49
8. Deployment 52
9. External GPS Drivers 53
9.1. About External GPS Drivers 53
9.2. Providing GPS information 53
9.2.1. Configuring TomTom Navigator 53
9.2.2. Providing your own feed 53
9.2.3. DWORD AttachToTomTomGPSEngine( ) 54
9.2.4. VOID DetachFromTomTomGPSEngine( DWORD aHandle) 54
9.2.5. BOOL CopyDataToTomTomGPSEngine( DWORD aHandle, DWORD
aNumberOfBytes, LPBYTE aBuffer) 54
iv
1. Installation and Getting Started
1.1. Introduction
This manual explains how to install and use the software developer’s kit (SDK) of TomTom Navigator.
The SDK offers access to functions to add your own points of interest, and to send commands to TomTom
Navigator through a dynamic link library in C++ or an ActiveX control in Visual Basic.
1.3. Installation
1.3.1. ActiveX and DLL components
The ActiveX component and DLL are required to make function calls from C++ or Visual Basic. The
\Sdk\TTNCom\install\ contains SETUP.EXE, which will install the DLL and ActiveX components on your
PDA.
1
1. Installation and Getting Started
TTNControl.ocx can be found in the directory \sdk\TTNCom\OcxDesktop\. To install it, just copy it to any
suitable place in your hard disk and, if you are installing a new version of the Navigator SDK over an old
one, register it with the Windows registry. If you are installing the Navigator SDK for the first time, you
needn’t register the control explicitly. Assuming your current directory is the directory where you copied
TTNControl.ocx, the command line to perform the registration would be:
regsvr32.exe TTNControl.ocx
When you start a new eMbedded Visual Basic project, you need to add the TomTom Navigator SDK
ActiveX component to it. To do this, select "Components..." from the "Project" menu and, in the "Controls"
tab, check the box "TomTom Navigator SDK 2.X." If that box is not present you will need to click on the
"Browse..." button and search for TTNControl.ocx on your hard disk.
1.4. License
1.4.1. ATTENTION
Use of our software is subject to the TOMTOM BV License and Limited Warranty terms set forth
below. If you do not accept these terms, you cannot install our software and you are not entitled to use our
software.
2
1. Installation and Getting Started
be indicated in the end user license agreement of the product that was developed using the SOFTWARE
together with a statement that the software can only be used in combination with a valid TomTom
Navigator license.
4) OTHER RESTRICTIONS: Unauthorised hiring, lending, public performance and broadcasting is
prohibited, but you may transfer your rights under this TomTom License Agreement on a permanent basis
provided you transfer all copies of the SOFTWARE and all written materials and the recipient agrees to the
terms of this License. You are not permitted to fully or partly modify the SOFTWARE, to analyse it by
means of reverse−engineering, to decompile or disassemble the SOFTWARE, or to make products derived
from it. You are explicitly prohibited from downloading the digital maps and programs contained in the
SOFTWARE or from transferring these to another data carrier or computer.
3
2. Providing your own Points of Interest
to TomTom Navigator
It is possible to add new Points of Interest (POI) to TomTom Navigator. This section explains how.
Warning:
(1) No information stored in OV2 format, or extracted from files in OV2
format (using whatever means, tools or techniques, based upon either
published or self−discovered knowledge about the OV2 format), nor
any knowledge about the OV2 format itself, may be
− sold in any form, unless with written permission from the owner
of the original (raw) information,
− used from within any application other than a TomTom product,
commercial or otherwise, without explicit written permission
from a director of either Palmtop BV or TomTom Inc, unless
(a) that application has the sole purpose of providing
additional functionality to TomTom Navigator or TomTom
Citymaps, and
(b) that application only functions on devices on which TomTom
Navigator or TomTom Citymaps is installed, and
(c) that application is accompanied by a warning similar to
this warning.
(2) Furthermore,
− we will not provide support about the format, or any related
tools or documentation,
− we do not guarantee correctness or completeness of the either
the format, the tools or the documentation,
− we hold the right to change or extend the format without notice,
− we do not guarantee that details of future, changed or extended
formats will be made available,
− we do not guarantee that future, changed or extended formats will
be compatible with the current format,
− we do not promise that we will allow the same things for future,
changed or extended formats.
(3) Finally, please note that
− the POI data that is distributed as part of TomTom products is
(a) not in OV2 format, (b) expressly not allowed to be accessed
in any way whatsoever, and (c) protected by international
copyright laws.
4
2. Providing your own Points of Interest to TomTom Navigator
6
2. Providing your own Points of Interest to TomTom Navigator
7
3. Itinerary files
It is possible to create your own itinerary files outside Navigator, and then use them from within. This
section explains the file format. Refer to the C++ API for itinerary−related API−functions.
IsItineraryLocationInMap
SetItineraryDefaultDepartureV01
SetItineraryDefaultDepartureV02
GetItineraryDefaultDepartureV01
GetItineraryDefaultDepartureV02
SaveItinerary
LoadItinerary
ClearItinerary
AbortItineraryLeg
GetItineraryState
GetNrOfItineraryLocations
Refer to the C++ API documentation for more information on these functions.
9
4. Extending the Location−sensitive
Menu
This section explains how to extend the location−sensitive menu of Navigator with external commands.
10
4. Extending the Location−sensitive Menu
«cmd line 1»
«cmd line 2»
Where empty lines and lines starting with ";" or "/" are ignored, and:
• «app version number» is the integer version number of the external application,
• «app exe name» is the name of the executable file of the external application,
• «app path» is the default path to the executable file (used only if Navigator fails to locate the
external application by other means),
• «app main wnd title» is the title of the main window of the external application (used to send request
notifications),
• «external poi file» is the name of the optional external POI file,
• «app tmt file» is the pathname of the optional .TMT file that contains the icon for the external
application,
• and «cmd line 1» and «cmd line 2» contain the description of the external commands.
The line that describes an external command has the following format:
COMMAND|«cmd type»|«cmd name»|«cmd tmt file»|«dutch title»|«english title»|¬
«french title»|«italian title»|«german title»|«spanish title»|¬
«US english title»|
Where:
• «cmd type» is either "GEO" (for commands available on arbitrary locations) or "POI" (for
commands available on associated points of interest),
• «cmd name» is the name of the external command as stored in requests,
• «cmd tmt file» is the pathname of the optional .TMT file that contains the icon for the external
command,
• and «dutch title», «english title», etc. is the title of the external command in various languages as
displayed in the location−sensitive menu.
To locate the executable file for the external application, Navigator first tries to find one of the
following entries in the registry:
HKLM\Software\Apps\«app name»\InstallDir
HKLM\Software\Apps\«app main wnd title»\InstallDir
Where «app name» is the name of the executable file without the extension ".EXE" and «app main wnd
title» is the title of the main window, as given in the .CAP file. If this fails, Navigator will try to use the
default path in the .CAP file.
Please note that Microsoft’s application manager will create during installation of an application the
following entry in the registry:
HKLM\Software\Apps\«Provider» «AppName»\InstallDir
Where «Provider» and «AppName» are defined in the setup .INF file. If the title of the main window of
the external application is "Acme Guide", for example, its .INF file should contain the lines:
Provider = "Acme"
And:
AppName = "Guide"
Example: \TomTom\Acme.cap
Version|100|
AppName|Acme Guide.exe|
AppPath|\Program Files\Acme Guide\|
11
4. Extending the Location−sensitive Menu
AppPoiFile|Acme.poi|
AppIconFile|\TomTom\Acme.tmt|
AppMainTitle|Acme Guide|
COMMAND|GEO|FindNearby|\TomTom\AcmeCmd001.tmt|Dichtstbijzijnde plaatsen|¬
Find places nearby|Points d’intérêt voisins|¬
Punti di interesse nelle vicinanze|Nahe gelegene betriebe|¬
Puntos de interés cercanos|Find places nearby|
COMMAND|POI|Details|\TomTom\AcmeCmd002.tmt|Toon gedetailleerde info|¬
Show details|Détails|Dettagli|Details|Detalles|Show details|
Please note that each command has to be exactly one line of text, although here they have been
reproduced in several lines for readability.
POI type codes 9993 through 9999. External applications can, therefore, provide Navigator with up to
seven additional POI types. The data for the POI of these types has to be packaged in a file placed in the
\TomTom\ directory of the Pocket PC. The format of this external POI file is the following:
Index
POI data for type 1
...
POI data for type N
The index has the following structure:
4 bytes N = Number of POI types
4 bytes Type code for POI type 1
...
4 bytes Type code for POI type N
4 bytes File position of POI data for type 1
...
4 bytes File position of POI data for type N
4 bytes Total file size
Where file positions are byte offsets from the start of the file, and all quantities are stored as
little−endian integers.
The POI data section for an individual POI type has the same structure as the .OV2 files, with the
exception that only extended POI records and skipper records can be used, since the unique ID field, used
to identify each point of interest to the external application, is not present in a simple POI record.
Moreover, each POI type in an external POI file can optionally have a user−friendly name and an icon.
The icon must be a .BMP file in the same directory as the external POI file. It is recommended that icons
have a size of 22 by 22 pixels. For a POI type to have a user−friendly name and an icon, a special record of
type 100 must be present at the beginning of the corresponding POI data section. This type of record
consists of the following fields:
1 byte T: type (always 100)
4 bytes L: length of this record in bytes (including the T and L fields)
P bytes Name: zero−terminated ASCII string specifying the name of the POI type
L−P−5 bytes Icon: zero−terminated ASCII string specifying the name of the
.BMP file
Where the name of the POI type is subdivided into several strings corresponding to different languages:
POINAME|«dutch translation»|«english translation»|«french translation»|¬
«italian translation»|«german translation»|«spanish translation»|¬
«US english translation»|
Please keep the strings for each language shorter than 25 characters, approximately.
You can use the utilities SinglePoi.exe and ZipPoi.exe to associate a name and an icon with each POI
type and create the final external POI file from the individual files for each POI type. If we have one .OV2
file for each POI type, named poi.«nnnn», where «nnnn» is the POI type code in four decimal digits (9993
thru 9999), the following command will give it a name and an icon:
singlepoi "«name»" «icon».bmp poi.«nnnn»
Where «name» is the user−friendly name of the POI type and «icon» is the name of the .BMP file to be
used as its icon. This has to be done for each poi.«nnnn» file.
NOTE: using SinglePoi.exe is not strictly necessary. The POI type will have a generic name and icon if
this step is omitted.
13
4. Extending the Location−sensitive Menu
Finally, to package all the POI types into a single external POI file, the following command can be
used:
zippoi «path» «result».poi
Where «path» is the pathname of the directory where the files for the individual POI types are located
and «result» is the desired name of the resulting external POI file. The input files must have a name with
the form poi.«nnnn».
14
5. Communicating with TomTom
Navigator from Visual Basic
5.1. Introduction
The TTNControl.ocx ActiveX control allows Visual Basic developers to create applications that can
send commands to and request information from TomTom Navigator. To do this you simply have to place
an instance of the TTNControl.ocx ActiveX control in the forms of your Visual Basic application. The
control should be made invisible, since it has no interest for the user interface: all the work is carried out
programmatically through OLE automation commands sent to it.
Please note that Pocket PC emulators do not always emulate real devices. Also, compatibility conflicts
can arise with emulators that do not occur when running an application directly on a Pocket PC device. We
therefore recommend to run applications directly on the device.
TTNControl.ocx defines a class called "TomTomNavigator", which is the ActiveX control that you
have to instantiate. Besides the properties common to all ActiveX controls, the "TomTomNavigator" class
defines a number of functions to enable communication with the TomTom Navigator application. You can
view these functions using the Object Browser from within the eMbedded Visual Basic development
environment. All these functions can raise errors at run time that need to be handled using the standard
Visual Basic error handling mechanism.
For example, if the name given to the instance of TTNControl.ocx in your form is "TTNav", the
following lines of code will request the version number of the TomTom Navigator SDK:
Dim sdkVersion As String
sdkVersion = TTNav.GetSdkVersionInfo
Switches TomTom Navigator to the navigation view. Useful because various API calls only work in the
navigation view.
16
5. Communicating with TomTom Navigator from Visual Basic
NavigateToAmsterdam_Exit:
Exit Sub
NavigateToAmsterdam_Error:
MsgBox "Navigation to Amsterdam failed"
Resume NavigateToAmsterdam_Exit
End Sub
See Also: NavigateToFavorite, ShowCoordinateOnMap
18
5. Communicating with TomTom Navigator from Visual Basic
ShowAmsterdam_Error:
MsgBox "Failed to center around a point in Amsterdam"
Resume ShowAmsterdam_Exit
End Sub
See Also: NavigateToCoordinate
19
5. Communicating with TomTom Navigator from Visual Basic
20
5. Communicating with TomTom Navigator from Visual Basic
21
5. Communicating with TomTom Navigator from Visual Basic
22
5. Communicating with TomTom Navigator from Visual Basic
24
5. Communicating with TomTom Navigator from Visual Basic
End Sub
25
5. Communicating with TomTom Navigator from Visual Basic
26
6. Communicating with TomTom
Navigator from C++
6.1. Introduction
This SDK allows third−party application developers to communicate with TomTom Navigator.
The SDK comes with a library that allows external applications to communicate with TomTom
Navigator. The first version of TomTom Navigator to fully support this library is 1.42.
To use the library, link the executable C++ application with the library "TTNCom.lib" (this library is
provided for ARM, MIPS and SH3), and include the header file TTNCom.h.
The library contains a class CTomTomNavigatorCom with static methods which can perform the
communication request.
27
6. Communicating with TomTom Navigator from C++
28
6. Communicating with TomTom Navigator from C++
29
6. Communicating with TomTom Navigator from C++
30
6. Communicating with TomTom Navigator from C++
if (error)
{
::AfxMessageBox(TEXT("Failed to center around a point in Amsterdam"));
}
See Also: NavigateToCoordinate, ShowRectangleOnMap
31
6. Communicating with TomTom Navigator from C++
EGpsStatus status;
TTTnLocationV01 loc;
INT error = CTomTomNavigatorCom::GetCurrentPositionV01(status, loc);
if (error)
{
::AfxMessageBox(TEXT("Failed to get the current location"));
}
else
{
if (status >= 0 && loc.iSpeedKMh > 120)
{
::AfxMessageBox(TEXT("You are driving too fast!"));
}
}
32
6. Communicating with TomTom Navigator from C++
33
6. Communicating with TomTom Navigator from C++
The point of interest to be moved is the closest one to the given old co−ordinates among the points of
interest that are within a distance of 100 meters from there.
See Also: AddPoi, DeleteClosestPoi, DeleteAllPoi, MakeUserPoiVisible
34
6. Communicating with TomTom Navigator from C++
35
6. Communicating with TomTom Navigator from C++
36
6. Communicating with TomTom Navigator from C++
37
6. Communicating with TomTom Navigator from C++
39
6. Communicating with TomTom Navigator from C++
40
6. Communicating with TomTom Navigator from C++
41
6. Communicating with TomTom Navigator from C++
42
6. Communicating with TomTom Navigator from C++
• KGeocodeStreetAmbiguous − the given street name was ambiguous, tried to make smart selection
• KGeocodeHouseNrIgnored − the house number was ignored, either because there was no house
number data available or because the given house number was not found
43
6. Communicating with TomTom Navigator from C++
• KPoiTypeShop
• KPoiTypeShoppingCenter
• KPoiTypeStadium
• KPoiTypeTheatre
• KPoiTypeTouristInformationOffice
• KPoiTypeZoo
• KPoiTypeSportsCentre
• KPoiTypePoliceStation
• KPoiTypeEmbassy
• KPoiTypeCollegeUniversity
• KPoiTypeCashDispenser
• KPoiTypeBeach
• KPoiTypeIceSkatingRing
• KPoiTypeTennisCourt
• KPoiTypeWaterSport
• KPoiTypeDoctor
• KPoiTypeDentist
• KPoiTypeVeterinarian
• KPoiTypeNightlife
• KPoiTypeAmusementPark
• KPoiTypeLibrary
Versions 2.0 and later of TomTom Navigator also support the following POI types:
• KPoiTypeCarRepairFacility
• KPoiTypePharmacy
• KPoiTypeScenicPanoramicView
• KPoiTypeSwimmingPool
• KPoiTypeWinery
• KPoiTypeCampingGround
• KPoiTypeParkRecreationArea
• KPoiTypeConventionCentre
• KPoiTypeLeisureCentre
• KPoiTypeYachtBasin
• long iDestination.iLatitude −
• long iEnclosingLongitudeW − rectangle enclosing the route (co−ordinates in millionths of degree,
WGS84 format)
• long iEnclosingLatitudeS −
• long iEnclosingLongitudeE −
• long iEnclosingLatitudeN −
• long iLength − length of the route in meters
• long iDuration − duration of the route in seconds
• long iDistanceToDestination − distance from current position to destination in meters
• long iTimeToDestination − time from current position to destination in seconds
The status field can contain the following flags:
• KDepartureSet − the departure point has been set
• KDestinationSet − the destination point has been set
• KCalculatingRoute − in the process of calculating a route
• KRoutePlanned − there is a valid route planned
• KLeftToDestinationAvailable − time and distance to destination are available
• KPropertyMainMenuCmd5
• KPropertyMore1MenuCmd1 − command icons to display in the second menu
• KPropertyMore1MenuCmd2
• KPropertyMore1MenuCmd3
• KPropertyMore1MenuCmd4
• KPropertyMore1MenuCmd5
• KPropertyMore2MenuCmd1 − command icons to display in the third menu
• KPropertyMore2MenuCmd2
• KPropertyMore2MenuCmd3
• KPropertyMore2MenuCmd4
• KPropertyMore2MenuCmd5
• KPropertyHardwareButton1 − command to assign to the hardware buttons
• KPropertyHardwareButton2
• KPropertyHardwareButton3
• KPropertyHardwareButton4
• KPropertyEnterButton
• KPropertyUpButton
• KPropertyDownButton
• KPropertyLeftButton
• KPropertyRightButton
• KPropertyMaxPoiOnMap − Maximum number of POI to display on the map
• KPropertyPoiQuickMenuCmd1 − POI to display in this quick menu
• KPropertyPoiQuickMenuCmd2
• KPropertyPoiQuickMenuCmd3
• KPropertyPoiQuickMenuCmd4
You can use the following colour styles:
• KColorStyleBelgica
• KColorStyleBrittanica
• KColorStyleGermanica
• KColorStyleGreys
• KColorStyleAmerica
• KColorStyleAstra
• KColorStyleAfrica
• KColorStyleAntarctica
The following values can be used for the indicators on the screen:
• KIndicatorTimeToDestination − Time left to destination
• KIndicatorCurrentTime − Current time (clock)
• KIndicatorArrivalTime − Expected time of arrival
• KIndicatorDistanceToDestination − Distance to destination
• KIndicatorNone − none
The following commands are available for the menus and the hardware buttons:
• KQuickCmdNone − none. Can only be used for navigator menus.
• KQuickCmdAlternative − Alternative route menu
• KQuickCmdAlternativeRoutes − Alternative route
• KQuickCmdAvoidRoadblock − avoid road block
• KQuickCmdDemonstrateRoute − Demonstrate route
• KQuickCmdExitApplication − Exit application
46
6. Communicating with TomTom Navigator from C++
47
7. Graphic Information Files
This section explains how to create graphic information files, also called GF files.
48
7. Graphic Information Files
50
7. Graphic Information Files
NOTE: When the user taps on a warning icon, a message will be sent to the specified callback window
with the given parameters. The callback window is the top−level window with the given name. On the MS
Pocket PC, the message sent is the registered message with the given name, obtained by using the
Windows OS function "RegisterWindowMessage", and the two message parameters correspond to the
WPARAM and LPARAM fields of the message structure, respectively.
NOTE: TomTom Navigator will never show more than 3 warning icons. No matter how many icons
match the specified criteria, only the first three will be displayed and activated. Please note that each string
needs to be less than 256 characters, and this INCLUDES the zero−terminator.
51
8. Deployment
To deploy a VB or C++ application that makes use of the TomTom Navigator SDK, the appropriate
CAB file from the directory
sdk\TTNCom\install\sdk\pocketpc\dll
needs to be installed on the device. A CAB file for ARM, MIPS and SH3 devices is provided (note that
all Pocket PC 2002 devices use the ARM processor).
The CAB files provided are:
• TTNControl.ARM.cab (for the ARM CPU)
• TTNControl.MIPS.cab (for the MIPS CPU)
• TTNControl.SH3.cab. (for the SH3 CPU)
The CAB file will install the components
• TTNCom.dll
• TTNControl.ocx
and set settings in the registry to configure the SDK components.
Please be warned that the installation must take place in the default install directory. If the file
TTNCom.dll is not installed in the \Windows\ directory, it will not be accessible. Also, using the .CAB file
will ensure that TTNControl.ocx is properly registered with the Windows CE registry.
52
9. External GPS Drivers
This section explains how to feed TomTom Navigator with your own GPS information (position, speed,
direction).
53
9. External GPS Drivers
54