Methods of customizing navigation systems

Methods of providing customizable access to a navigation device, and a navigation device, are disclosed herein. For example, in at least one embodiment, the method may include providing a software development kit (SDK), including at least one application programming interface and at least one platform independent procedure call library; processing a navigation application on the navigation device, the navigation application maintaining a plurality of platform independent procedure calls based on the at least one platform independent procedure call library; and processing a customized application on the navigation device, the customized application using at least one of the plurality of platform independent procedure calls to access navigation specific information provided by the navigation application.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
CO-PENDING APPLICATIONS

The following applications are being filed concurrently with the present applications. The entire contents of each of the following applications is hereby incorporated herein by reference: A NAVIGATION DEVICE AND METHOD FOR STORING AND UTILIZING A LAST DOCKED LOCATION (Attorney docket number 06P057US 16) filed on even date herewith; A METHOD AND DEVICE FOR UTILIZING A SELECTABLE LOCATION MARKER FOR RELATIONAL DISPLAY OF POINT OF INTEREST ENTRIES (Attorney docket number 06P057US15) filed on even date herewith; A METHOD AND DEVICE FOR MAP SWITCHING (Attorney docket number 06P057US 14) filed on even date herewith; A NAVIGATION DEVICE AND METHOD FOR CONVEYING INFORMATION RELATIONSHIPS (Attorney docket number 06P057US20) filed on even date herewith; A NAVIGATION DEVICE AND METHOD OF UPDATING INFORMATION ON A NAVIGATION DEVICE (Attorney docket number 06P057US 18) filed on even date herewith; A NAVIGATION DEVICE, SERVER, AND METHOD FOR COMMUNICATING THEREBETWEEN (Attorney docket number 06P057US 17) filed on even date herewith; A METHOD AND DEVICE FOR PROVIDING PREFERENCES DURING ROUTE TRAVEL CALCULATION ON A NAVIGATION DEVICE (Attorney docket number 06P057US13) filed on even date herewith; A NAVIGATION DEVICE AND METHOD OF ACTIVATING INFORMATION ON A NAVIGATION DEVICE (Attorney docket number 06P057US12) filed on even date herewith; AUTOMATIC DISCOVERY OF WIRELESS COMMUNICATION SETTINGS (Attorney docket number 06P057US04) filed on even date herewith; A NAVIGATION DEVICE AND METHOD OF IMPLEMENTING AUDIO FEATURES IN A NAVIGATION DEVICE (Attorney docket number 06P057US21) filed on even date herewith; and A NAVIGATION DEVICE AND METHOD FOR SEQUENTIAL MAP DISPLAY (Attorney docket number 06P057US22) filed on even date herewith.

PRIORITY STATEMENT

The present application hereby claims priority under 35 U.S.C. § 119 on each of Great Britain Patent Application numbers 0604709.6 filed Mar. 8, 2006; 0604708.8 filed Mar. 8, 2006; 0604710.4 filed Mar. 8, 2006; 0604704.7 filed Mar. 8, 2006; and 0604706.2 filed Mar. 8, 2006, the entire contents of each of which is hereby incorporated herein by reference.

FIELD

The present application generally relates navigation systems. For example, the present application may relate to customization of navigation systems using a software development kit (SDK).

BACKGROUND

Conventionally, a stand-alone navigation device may be equipped with a GPS antenna such that the navigation device may provide a geographical location of the device to a user of the device. Such navigation devices may be used within transportation vehicles to provide position information associated with geographical location of the vehicles. The navigation devices may also provide displays which provide visual information to the users of the devices. Some navigation devices can communicate audibly with the users, for example, through the use of a stereo or a radio within the vehicle. Furthermore, the navigation devices may be equipped with a stand-alone navigation application which provides routing information and/or navigation specific information to aid a user in locating a desired geographical location on a visual representation of a map displayed on the navigation device. Conventionally, navigation devices are stand-alone devices providing primarily only navigation information to the users, without other information services such as internet access or telephone access.

It can be appreciated that a stand-alone navigation device, although providing necessary geographic information, may not provide all information necessary to the user of the device. The user of the navigation device may require additional information such as customized weather conditions, road conditions, routing information for a plurality of points of interest, route information for a delivery route or service route, or other information necessary to a particular user.

Therefore, a user may wish to use a have a customized navigation application to add features to a navigation device.

For example, a fleet of delivery trucks for a shipping company may require specific functionality not readily available on the navigation device, such as overall routing for a plurality of locations (e.g., traveling salesman problem). Furthermore, the shipping company may require routing information for all delivery trucks to be integrated with current systems employed at the shipping company. However, in conventional programming approaches, a user needs to program complex subroutines using specific algorithms to stably determine navigation specific information. These algorithms are compiled into a new navigation application which runs on the navigation device. It will be appreciated that the new navigation application may be cumbersome and difficult to debug, as the additional modules have been compiled onto the application.

It will also be appreciated that stand-alone navigation devices may only include a single navigation application with limited functionality. As such, conventional navigation devices may be packaged/distributed with little or no customization options respective to the existing stand-alone navigation application. Furthermore, customization of the stand-alone navigation application for a plurality of users before distribution may include expensive and time consuming software development for the developer of the navigation application and navigation device.

Therefore, conventional navigation systems lack features which may be difficult to include in the stand-alone navigation application.

SUMMARY

As described above, the inventors have recognized that it may be desirable to have increased customization options available for navigation systems. The above-mentioned issues with customization of navigation devices and stand-alone navigation applications may be addressed through example embodiments as disclosed in the following specification.

According to example embodiments, methods and systems are provided to enable customization of navigation device using a software development kit (SDK).

According to example embodiments, methods of providing customizable access to a navigation device are disclosed herein. For example, in at least one embodiment, the method may include providing a software development kit (SDK), including at least one application programming interface and at least one platform independent procedure call library; processing a navigation application on the navigation device, the navigation application maintaining a plurality of platform independent procedure calls based on the at least one platform independent procedure call library; and processing a customized application on the navigation device, the customized application using at least one of the plurality of platform independent procedure calls to access navigation specific information provided by the navigation application.

According to example embodiments, a navigation device may include means for processing a navigation application on the navigation device, the navigation application maintaining a plurality of platform independent procedure calls based on at least one platform independent procedure call library; and means for processing a customized application on the navigation device, the customized application using at least one of the plurality of platform independent procedure calls to access navigation specific information provided by the navigation application.

Further, according to example embodiments, a navigation device may include a processor to process a navigation application on the navigation device, the navigation application maintaining a plurality of platform independent procedure calls based on a at least one platform independent procedure call library, and to process a customized application on the navigation device, the customized application using at least one of the plurality of platform independent procedure calls to access navigation specific information provided by the navigation application.

BRIEF DESCRIPTION OF THE DRAWINGS

The present application will be described in more detail below by using example embodiments, which will be explained with the aid of the drawings, in which:

FIG. 1 illustrates an example view of a Global Positioning System (GPS);

FIG. 2 illustrates an example block diagram of components of a navigation device of an example embodiment of the present application;

FIG. 3 illustrates an example block diagram of a server, navigation device and connection therebetween of an example embodiment of the present application;

FIG. 4 illustrates a method of providing customizable application access to a navigation device, according to an example embodiment;

FIG. 5 illustrates a software development kit, according to an example embodiment;

FIG. 6 illustrates a customized navigation device, according to an example embodiment; and

FIG. 7 illustrates a customized navigation system, according to an example embodiment.

DETAILED DESCRIPTION OF THE EXAMPLE EMBODIMENTS

The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the present invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “includes” and/or “including” , when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

In describing example embodiments illustrated in the drawings, specific terminology is employed for the sake of clarity. However, the disclosure of this patent specification is not intended to be limited to the specific terminology so selected and it is to be understood that each specific element includes all technical equivalents that operate in a similar manner.

Some portions of the detailed descriptions contained herein are presented in terms of algorithms, operations, function, and symbolic representations of operations within a computer device or navigation device. These algorithmic descriptions and representations will be apparent to those skilled in the art of computer processing and computer programming arts such that these descriptions may most effectively convey there aspects to those skilled in the art.

Furthermore, as used herein, a portable navigation device may include one more processing elements coupled with a computer readable memory which may be volatile or non-volatile or any combination thereof. The navigation device in example embodiments may be a handheld computing device which may be mounted or used in a personal vehicle for transportation. In some example embodiments, the navigation device is a combination of devices integrated into single portable electronic device. For example, the navigation device may include a typical GPS receiver, a palm top or personal digital assistant, a laptop, a mobile phone or cellular telephone, or any other device which may be integrated with the GPS device. Furthermore, in example embodiments, computer devices may utilize any number of API library platform independent procedure calls to create customized applications which access geographic or navigation specific information from a navigation application of a navigation device, for at least the purpose of resolving a present geographic location or other information associated with the geographic location of the navigation device.

Additionally, as used herein, the term “customized” refers to software executable instructions which may be tailored to use operations or functions included in a navigation device and/or navigation application. The term “customize” may refer to existing software executable instructions which may have been altered or enhanced by third-party developers including algorithms, operations, or functions to be included in a customized application to access navigation specific information from a navigation device. Moreover, the phrases “customized module” and “customized application” may be used synonymously herein.

As used herein the phrase “navigation information,” and/or “navigation specific information,” refers to operations or functions related to navigation including guidance operations, route generate operations, mapping operations, geographic positioning operations, and similar operations which result in information pertaining to geographic location. Furthermore, application programming interface libraries described herein need not be in singular form and may include additional libraries or application programming interfaces, including independent libraries separate from any particular application programming interface. The application programming interfaces and/or independent libraries may be included in a software development kit which may be shared by one or more third-party software developers and distributed accordingly.

As an example, included herein for the purpose of understanding application programming interfaces and not to be construed as limiting, in the MICROSOFT WINDOWS computer environment, an API library may be provided as a dynamic link library. Additionally, in UNIX, LINUX, or APPLE OSX computing environments, an API library may be provided as a shared library.

Referencing the drawings, wherein like reference numerals designate identical or corresponding parts throughout the several views, example embodiments of the present patent application are hereafter described.

FIG. 1 illustrates an example view of Global Positioning System (GPS), usable by navigation devices, including the navigation device of embodiments of the present application. Such systems are known and are used for a variety of purposes. In general, GPS is a satellite-radio based navigation system capable of determining continuous position, velocity, time, and in some instances direction information for an unlimited number of users.

Formerly known as NAVSTAR, GPS incorporates a plurality of satellites which work with the earth in very precise orbits. Based on these precise orbits, GPS satellites may relay their location to any number of receiving units.

The GPS system is implemented when a device, specially equipped to receive GPS data, begins scanning radio frequencies for GPS satellite signals. Upon receiving a radio signal from a GPS satellite, the device determines the precise location of that satellite via one of a plurality of different conventional methods. The device will continue scanning, in most instances, for signals until it has acquired at least three different satellite signals (noting that position is not normally, but can be determined, with only two signals using other triangulation techniques). Implementing geometric triangulation, the receiver utilizes the three known positions to determine its own two-dimensional position relative to the satellites. This can be done in a known manner. Additionally, acquiring a fourth satellite signal will allow the receiving device to calculate its three dimensional position by a substantially similar geometrical calculation in a known manner. The position and velocity data can be updated in real time on a continuous basis by an unlimited number of users.

As shown in FIG. 1, the GPS system is denoted generally by reference numeral 100. A plurality of satellites 120 are in orbit about the earth 124. The orbit of each satellite 120 is not necessarily synchronous with the orbits of other satellites 120 and, in fact, is likely asynchronous. A GPS receiver 140, usable in embodiments of navigation devices of the present application, is shown receiving spread spectrum GPS satellite signals 160 from the various satellites 120.

The spread spectrum signals 160, continuously transmitted from each satellite 120, utilize a highly accurate frequency standard accomplished with an extremely accurate atomic clock. Each satellite 120, as part of its data signal transmission 160, transmits a data stream indicative of that particular satellite 120. It is appreciated by those skilled in the relevant art that the GPS receiver device 140 generally acquires spread spectrum GPS satellite signals 160 from at least three satellites 120 for the GPS receiver device 140 to calculate its two-dimensional position by triangulation. Acquisition of an additional signal, resulting in signals 160 from a total of four satellites 120, permits the GPS receiver device 140 to calculate its three-dimensional position in a known manner.

FIG. 2 illustrates an example block diagram of electronic components of a navigation device 200 of an example embodiment of the present application, in block component format. It should be noted that the block diagram of the navigation device 200 is not inclusive of all components of the navigation device, but is only representative of many example components.

The navigation device 200 is located within a housing (not shown). The housing includes a processor 210 connected to an input device 220 and a display screen 240. The input device 220 can include a keyboard device, voice input device, and/or any other known input device utilized to input information; and the display screen 240 can include any type of display screen such as an LCD display, for example. In at least one embodiment of the present application, the input device 220 and display screen 240 are integrated into an integrated input and display device, including a touchpad or touch-screen input wherein a user need only touch a portion of the display screen 240 to select one of a plurality of display choices or to activate one of a plurality of virtual buttons.

In addition, other types of output devices 250 can also include, including but not limited to, an audible output device. As output device 250 can produce audible information to a user of the navigation device 200, it is equally understood that input device 240 can also include a microphone and software for receiving input voice commands as well.

In the navigation device 200, processor 210 is operatively connected to and set to receive input information from input device 220 via a connection 225, and operatively connected to at least one of display screen 240 and output device 250, via output connections 245, to output information thereto. Further, the processor 210 is operatively connected to memory 230 via connection 235 and is further adapted to receive/send information from/to input/output (I/O) ports 270 via connection 275, wherein the I/O port 270 is connectible to an I/O device 280 external to the navigation device 200. The external I/O device 270 may include, but is not limited to an external listening device such as an earpiece for example. The connection to I/O device 280 can further be a wired or wireless connection to any other external device such as a car stereo unit for hands-free operation and/or for voice activated operation for example, for connection to an ear piece or head phones, and/or for connection to a mobile phone for example, wherein the mobile phone connection may be used to establish a data connection between the navigation device 200 and the internet or any other network for example, and/or to establish a connection to a server via the internet or some other network for example. The connection 275 may be embodied as a BLUETOOTH connection, a serial connection, or any suitable connection for interfacing to an external device.

FIG. 2 further illustrates the processor 210 operatively connected to memory 230 through channel 235. Memory 230 may store a plurality of programs, applications, and/or a navigation application. The processor, using the applications from memory 230, may process the navigation application and other applications. For example, the processor 210 may process a customized application according to example embodiments. The processor may further process the navigation application, and facilitate a platform independent communication protocol between the navigation application and customized application. The navigation application, being processed by processor 210, may maintain a plurality of platform independent procedure calls. Therefore, procedure calls made by the customized application may be readily interpreted by the navigation application. In this manner, the customized application may retrieve navigation specific information from the navigation application.

As such, the navigation device 200 may facilitate customizable access thereto, thereby allowing a user to customize the navigation device 200.

FIG. 2 further illustrates an operative connection between the processor 210 and database 290. For example, the database 290 may store information pertaining to settings on the navigation device, or other information including additional applications or platform independent procedure calls. The procedure calls may also be stored in memory, at least in a form suitable for the navigation application to maintain the procedure calls such that procedure calls made by the customized application are readily interpreted.

FIG. 2 further illustrates an operative connection between the processor 210 and an antenna/receiver 260 via connection 265, wherein the antenna/receiver 260 can be a GPS antenna/receiver for example. It will be understood that the antenna and receiver designated by reference numeral 260 are combined schematically for illustration, but that the antenna and receiver may be separately located components, and that the antenna may be a GPS patch antenna or helical antenna for example.

Further, it will be understood by one of ordinary skill in the art that the electronic components shown in FIG. 2 are powered by power sources (not shown) in a conventional manner. As will be understood by one of ordinary skill in the art, different configurations of the components shown in FIG. 2 are considered within the scope of the present application. For example, in one embodiment, the components shown in FIG. 2 may be in communication with one another via wired and/or wireless connections and the like. Thus, the scope of the navigation device 200 of the present application includes a portable or handheld navigation device 200.

In addition, the portable or handheld navigation device 200 of FIG. 2 can be connected or “docked” in a known manner to a motorized vehicle such as a car or boat for example. Such a navigation device 200 is then removable from the docked location for portable or handheld navigation use, for example, while walking or sitting.

FIG. 3 illustrates an example block diagram of a server 302 and a navigation device 200 of the present application, via a generic communications channel 318, of an example embodiment of the present application. The server 302 and a navigation device 200 of the present application can communicate when a connection via communications channel 318 is established between the server 302 and the navigation device 200 (noting that such a connection can be a data connection via mobile device, a direct connection via personal computer via the internet, etc.).

The server 302 includes, in addition to other components which may not be illustrated, a processor 304 operatively connected to a memory 306 and further operatively connected, via a wired or wireless connection 314, to a mass data storage device 312. The processor 304 is further operatively connected to transmitter 308 and receiver 310, to transmit and send information to and from navigation device 200 via communications channel 318. The signals sent and received may include data, communication, and/or other propagated signals. The transmitter 308 and receiver 310 may be selected or designed according to the communications requirement and communication technology used in the communication design for the navigation system 200. Further, it should be noted that the functions of transmitter 308 and receiver 310 may be combined into a signal transceiver.

Server 302 is further connected to (or includes) a mass storage device 312, noting that the mass storage device 312 may be coupled to the server 302 via communication link 314. The mass storage device 312 contains a store of navigation data and map information, and can again be a separate device from the server 302 or can be incorporated into the server 302.

The navigation device 200 is adapted to communicate with the server 302 through communications channel 318, and includes processor, memory, etc. as previously described with regard to FIG. 2, as well as transmitter 320 and receiver 322 to send and receive signals and/or data through the communications channel 318, noting that these devices can further be used to communicate with devices other than server 302. Further, the transmitter 320 and receiver 322 are selected or designed according to communication requirements and communication technology used in the communication design for the navigation device 200 and the functions of the transmitter 320 and receiver 322 may be combined into a single transceiver.

Software stored in server memory 306 provides instructions for the processor 304 and allows the server 302 to provide services to the navigation device 200. One service provided by the server 302 involves processing requests from the navigation device 200 and transmitting navigation data from the mass data storage 312 to the navigation device 200. According to at least one embodiment of the present application, another service provided by the server 302 includes processing the navigation data using various algorithms for a desired application and sending the results of these calculations to the navigation device 200.

The communication channel 318 generically represents the propagating medium or path that connects the navigation device 200 and the server 302. According to at least one embodiment of the present application, both the server 302 and navigation device 200 include a transmitter for transmitting data through the communication channel and a receiver for receiving data that has been transmitted through the communication channel.

The communication channel 318 is not limited to a particular communication technology. Additionally, the communication channel 318 is not limited to a single communication technology; that is, the channel 318 may include several communication links that use a variety of technology. For example, according to at least one embodiment, the communication channel 318 can be adapted to provide a path for electrical, optical, and/or electromagnetic communications, etc. As such, the communication channel 318 includes, but is not limited to, one or a combination of the following: electric circuits, electrical conductors such as wires and coaxial cables, fiber optic cables, converters, radio-frequency (rf) waves, the atmosphere, empty space, etc. Furthermore, according to at least one various embodiment, the communication channel 318 can include intermediate devices such as routers, repeaters, buffers, transmitters, and receivers, for example.

In at least one embodiment of the present application, for example, the communication channel 318 includes telephone and computer networks. Furthermore, in at least one embodiment, the communication channel 318 may be capable of accommodating wireless communication such as radio frequency, microwave frequency, infrared communication, etc. Additionally, according to at least one embodiment, the communication channel 318 can accommodate satellite communication.

The communication signals transmitted through the communication channel 318 include, but are not limited to, signals as may be required or desired for given communication technology. For example, the signals may be adapted to be used in cellular communication technology such as Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), etc. Both digital and analogue signals can be transmitted through the communication channel 318. According to at least one embodiment, these signals may be modulated, encrypted and/or compressed signals as may be desirable for the communication technology.

The mass data storage 312 includes sufficient memory for the desired navigation applications. Examples of the mass data storage 312 may include magnetic data storage media such as hard drives for example, optical storage media such as CD-Roms for example, charged data storage media such as flash memory for example, molecular memory, etc.

According to at least one embodiment of the present application, the server 302 includes a remote server accessible by the navigation device 200 via a wireless channel. According to at least one other embodiment of the application, the server 302 may include a network server located on a local area network (LAN), wide area network (WAN), virtual private network (VPN), etc.

According to at least one embodiment of the present application, the server 302 may include a personal computer such as a desktop or laptop computer, and the communication channel 318 may be a cable connected between the personal computer and the navigation device 200. Alternatively, a personal computer may be connected between the navigation device 200 and the server 302 to establish an internet connection between the server 302 and the navigation device 200. Alternatively, a mobile telephone or other handheld device may establish a wireless connection to the internet, for connecting the navigation device 200 to the server 302 via the internet.

The navigation device 200 may be provided with information from the server 302 via information downloads which may be periodically updated upon a user connecting navigation device 200 to the server 302 and/or may be more dynamic upon a more constant or frequent connection being made between the server 302 and navigation device 200 via a wireless mobile connection device and data connection for example. For many dynamic calculations, the processor 304 in the server 302 may be used to handle the bulk of the processing needs, however, processor 210 of navigation device 200 can also handle much processing and calculation, oftentimes independent of a connection to a server 302.

The mass storage device 312 connected to the server 302 can include volumes more cartographic and route data than that which is able to be maintained on the navigation device 200 itself, including maps, etc. The server 302 may process, for example, the majority of the devices of a navigation device 200 which travel along the route using a set of processing algorithms. Further, the cartographic and route data stored in memory 312 can operate on signals (e.g. GPS signals), originally received by the navigation device 200.

For example, the navigation device 200 may be used in a larger navigation system, such that a user may interact with, or utilize, addition features not normally available to a stand-alone navigation device. Furthermore, the navigation device may include a customized program or application, being processed with a navigation application provided with the navigation device. A method of providing customizable access to a navigation device will be described in detail below.

FIG. 4 illustrates a method of providing customizable access to a navigation device, according to an example embodiment. As illustrated in FIG. 4, the method may include providing platform independent procedure calls in a software development kit. A software development kit is a piece of technology that may allow third-party software developers to integrate customized applications within a navigation device 200. For example, a software development kit may include at least one application programming interface. The at least one application programming interface may further include at least one library including the platform independent procedure calls. Using the platform independent procedure calls, the third-party software developers may program or customize an existing application to use the platform independent procedure calls. The platform independent procedure calls, as used in the customized application, allow access to a navigation application processed by a navigation device. For example, as illustrated in FIG. 4, third-party software developers may use the software development kit to develop a customized application.

However, example embodiments are not limited to software development kits including a plurality of application programming interfaces and a plurality of libraries. Alternatively, a single application programming interface and/or a single library may be applied as well. Similarly, a plurality of application programming interfaces and a plurality of platform independent procedure call libraries may be provided. Therefore, example embodiments may provide a software developments kit which allows a user to develop a customized application using at least one application programming interface and at least one platform independent procedure call library.

The customized application may be programmed using well known methods, and may include the platform independent procedure calls of the library of the application programming interface. Subsequent to development of the customized application, the third-party software developers may compile the customized application using the software development kit. For example, the third-party software developers may compile the customized application using a known compiler such as a C++or visual basic compiler in a computer device, or may alternatively compile the customized application with a cross-chain compiler or other suitable compiler provided in the software development kit.

Subsequent to compilation, the third-party software developers may download and store the customized application on the navigation device 200. In order to download and store the customized application, the third-party software developers may utilize a serial interface from a computer device to the navigation device 200. The serial interface may include, for example, a RS-232 serial protocol, universal serial bus USB protocol, or any suitable serial communication protocol.

Alternatively, the software developers, or a user of the navigation device 200, may download the customized application to a removable storage medium such as a computer disk or memory card, for example. The storage medium, containing the customized application, may be inserted or connected to the navigation device 200 such that the navigation device 200 may process the customized application. Examples of storage mediums will be discussed later.

Subsequent to compiling and storing the customized application on the navigation device 200, or on the storage medium, the navigation device 200 may process the customized application. During processing, or during the process of processing (e.g., there may be gaps in which the application is not processed), the customized application may use the platform independent procedure calls to access navigation specific information on the navigation device 200. For example, the platform independent procedure calls may allow communication between an existing navigation application and the customized application on the navigation device 200. To better understand a software development kit which allows customizable access to a navigation device 200, a software development kit of an example embodiment will be described with reference to FIG. 5 below.

FIG. 5 illustrates a software development kit, according to an example embodiment. As illustrated in FIG. 5, a software development kit may include at least one application programming interface, documentation, and a compiler. However, it should be noted that the software development kit may include additional features such as a stand-alone application, additional libraries, header files, and additional documentation. For example, the software development kit may include an application to aid third-party software developers to develop customized applications such as a code editor, program editor, or emulator to simulate the navigation application and/or navigation device 200.

With reference to FIG. 5, an application programming interface may include a plurality of libraries 511, 522, 51n, 51m. For example, libraries regarding navigation specific information may include clear route libraries, location sensitive libraries, itinerary related libraries, points of interest (POI) libraries, custom menus libraries, and navigation coordinate libraries. It should be noted however, that the application programming interfaces may include more libraries (or alternatively, less libraries) depending on the functionality of the navigation device. For example, the application programming interface may further include libraries regarding hands-free operation of a mobile device, audio access information for a vehicle's stereo or radio, or any other suitable libraries pertaining to a specific navigation device 200. Similarly, the application programming interface may include one library, or at least one library, organized to include a plurality of procedure calls related to the different libraries described above. Therefore, according to example embodiments, a software development kit may include at least one library.

With regards to the libraries of the application programming interface, each library may include a plurality of platform independent procedure calls such that software developers may develop customized applications. Each platform independent procedure call may include a procedure name and a list of variables associated with the procedure call. For example, Table 1 below sets forth an example listing of a possible “Itinerary Related” library's procedure calls.

TABLE 1 1 int SaveItinerary(Terror *err, char* a FileName) 2 int LoadItinerary(Terror *err, char* a FileName) 3 int ClearItinerary(Terror *err) 4 int NavigateToNextStopover (Terror *err) 5 int AbortIteneraryLeg(Terror *err) 6 int GetCurrentStopover(Terror *err, IIteneraryIndex *index)

As shown above in Table 1, an API library may include a plurality of platform independent procedure calls. The platform independent procedure call located under Table 1, Index 1, named “SaveItinerary,” may enable storing a current itinerary to a file such that it may be read later by a navigation application. Shown above in standard C/C++format, the SaveItinerary procedure call includes two input arguments and an integer return field. For example, the integer returned may represent a successful store of the itinerary written to the itinerary file. Therefore, itinerary related information may be written to a file by the customized application, read by the navigation application, and processed by the navigation application without the need for complex algorithms for altering or entering a new itinerary to be included in the customized application. As such, the complexity of a compiled customized application may be reduced if compared to a conventional approach.

It should be noted that specific examples of arguments and procedure calls have been given above in Table 1 for purposes of illustration only, and the embodiments of the present application should not be limited as such. For example, more or less arguments or different functionality may likewise be included in the aforementioned procedure calls.

Hereinafter, a more detailed explanation of example navigation specific libraries will be described.

For example the plurality of libraries 511, 522, 51n, 5m may include clear route library 511, location sensitive library 512, itinerary related library 513, points of interest library 514, custom menus library 515, navigation coordinates library 516, custom buttons library 51n, and user interface tools library 51m. However, as noted above, the application programming interface may include one or more libraries. For example, at least one library may include a plurality of platform independent procedure calls related to the libraries listed above.

Using the plurality of libraries, a customized application may access at least a current geographical location of the navigation device, an estimated time of arrival to a point of interest, a currently selected point of interest, and a distance between the current geographical location of the navigation device 200 and the currently selected point of interest. Additional information may be accessed using the procedure calls and libraries, and therefore, example embodiments should not be limited to only those examples listed above.

In at least one example embodiment, the clear route library 511 may include platform independent procedure calls to clear a route actively traversed by the navigation device 200. For example, a present route may be loaded onto the user interface of the navigation device 200. If the customized application makes a platform independent procedure call from the clear route library 511, the present route may be cleared and the navigation device 200 may return to a default route state. Furthermore, if active operations in the navigation operation application are busy processing a present route, the clear route procedure call may return an error such that the customized application may make the appropriate correction.

In at least one example embodiment, itinerary related library 513 may include platform independent calls such as those listed above in Table 1, for example.

In at least one example embodiment, custom menus library 515 may allow a customized application to define a customized menu through the navigation application. For example, using custom menus library 515, a customized application may make procedure calls to produce customized menus within the user interface of the navigation device 200. The customized menus facilitated by the procedure calls may mimic the look and feel of the navigation application interface, such that a seamless integration may occur. For example, the customized menus may be reproduced in the user interface by the customized application, such that the customized application appears as the navigation application. It will be appreciated that providing access to the appearance of the navigation application interface may aid in retaining the familiar interface to facilitate easier interaction with a customized application.

In at least one example embodiment, location sensitive library 512 may include platform independent procedure calls which allow retrieval of location sensitive information from the navigation application processed by the navigation device 200. For example, the customized application may use platform independent procedure calls from location sensitive library 512 to extract present coordinates or desired coordinates from the navigation application.

In at least one example embodiment, points of interest library 514 may include platform independent procedure calls to extract or communicate points of interest to/from a customized application. For example, points of interest may include geographical locations of interest to a user of the navigation device 200. These points of interest may be in list form, or may be indexed in a database on the navigation device 200, such that the customized application may use procedure calls from points of interest libraries 514 to access points of interest information from the navigation application. Furthermore, each point of interest stored on the navigation device 200 may include a plurality of information associated therewith. For example, the information may include a telephone number associated with a location, a restaurant or hotel location close to the point of interest, or similar information which may be relevant to the point of interest. Using points of interest library 514, the customized application may be able to access this relevant point of interest information using platform independent procedure calls. Similarly, using points of interest library 514, a customized application may send or update new points of interest to the navigation application, for storage on the navigation device 200.

In at least one example embodiment, navigation coordinates library 516 includes platform independent procedure calls such that a customized application may direct the navigation application to a particular navigation coordinate. For example, navigation coordinates may include latitude and longitude, or any relevant information such that the navigation application may provide routing information to the customized application. For example, a procedure call from navigation coordinates library 516 to an off-road or off-route location may result in the navigation application providing a theoretical line drawn from the present geographic location of the navigation device 200 to the navigation coordinate submitted to the navigation application. Using this theoretical line, the customized application may process any required attributes of the theoretical line and continue communication to the navigation application through navigation coordinate procedure calls. It will be appreciated that using similar procedure calls in a customized application may result in enhancement of conventional navigation device utility. More clearly, using a procedure call to direct the navigation device to a specific location, and retrieving a theoretical line representing a route to the specific location, a customized application may have added the ability to traverse off-road or previously un-routed territory using the navigation device.

It should be noted that additional libraries may be included in software development kits without the departing from the scope of example embodiments.

Furthermore, the platform independent procedure calls 1-6 depicted in Table 1 are shown as examples for navigation specific communications between a customized application and navigation application only, and are not to be construed as limiting. Hereinafter, a platform independent communication protocol applied to a customized navigation device will be explained with reference to FIG. 6.

FIG. 6 illustrates a customized navigation device 200, according to an example embodiment. According to example embodiments, the software development kit allows developers to create customized applications for a navigation device 200 and to integrate the customized applications with the navigation application.

For example, a navigation device 200 may include a user interface 600. For example, the user interface 600 may be embodied as a graphical user interface or a text-based user interface such that user may interact with the navigation device 200. For example, the user interface 600 may include a plurality of touch sensitive buttons displayed on a touch sensitive screen such that a user may simply depress a graphical representation of a button and thereby enable operations of a custom application 610 and/or a navigation application 620. Alternatively, the user interface may display information as text on screen such that a user may select or enter an appropriate option with an input device, such as a stylus or a finger for example.

As further illustrated in FIG. 6, the navigation device 200 may process a customized application 610 and a navigation application 620 in the application layer 660. It should be noted that a navigation device 200 according to example embodiments is not limited to layered abstraction. For example, any appropriate programming hierarchy may be used, or alternatively, an approach without an application layer may be appropriate as well.

The customized application 610 may be a third-party customized application stored on the navigation device 200. For example, the customized application 610 may, using platform independent procedure calls, communicate to navigation application 620 via the platform independent communication layer 670. As shown in FIG. 6, the platform independent communication layer 670 may include file communication or socket communication between applications.

Hereinafter, a more detailed explanation of implementation of platform independent communication with file communication will be given.

With regards to file communication, file communication between applications may include writing and reading a plurality of files stored on the navigation device 200. The file communication between two applications may function through a client/server model, where the navigation application acts as a server receiving commands from the customized application, sending back results if necessary. The commands may be written in message files and sent to the navigation application, which may send back responses written in other files or the same files.

If an application is to communicate, or is programmed to communicate, with another application being processed by the navigation device 200, the application to communicate may simply write arguments to files in the platform independent communication layer. For example, with reference to Table 1, the “SaveItinerary” platform independent procedure call may write arguments to a file, for example, file 675. The “SaveItinerary” file (e.g., 675) may be accessed by customized application 610.

Additionally, a customized application may communicate with the navigation application by setting up a communication object. The communication object may allow procedure calls to be processed for communications purposes. The procedure calls may be made synchronously as well as asynchronously, due to the nature of file writing. For example, because a file may be written and stored to memory, the file may be read later, depending upon implementation, allowing for asynchronous procedure calls. Similarly, a file may be read at substantially the same time as writing, thereby facilitating synchronous procedure calls as well.

Subsequent to a procedure call writing to file 675, navigation application 620 may access file 675 to retrieve the arguments issued by customized application 610. The navigation application may use or process the application arguments retrieved from file 675 and process them as programmed in the navigation application. For example, if using a “SaveItinerary” function call by a customized application, the navigation application may use the arguments stored in the written file (e.g., 675) to extrapolate an itinerary desired by the customized application. The navigation application, using the retrieved itinerary, may display itinerary results using the user interface 600. Therefore, the arguments in the “SaveItinerary” file may be read and processed by the navigation application, without complex algorithms for itinerary modification included in the customized application.

In this manner, a customized application 610 may retrieve and write communication arguments to navigation application 620 such that customized application 610 accesses the features of navigation application 620.

According to example embodiments, a navigation device 200 may include a processor to process a navigation application on the navigation device 200, the navigation application maintaining a plurality of platform independent procedure calls based on a at least one platform independent procedure call library, and to process a customized application on the navigation device 200, the customized application using at least one of the plurality of platform independent procedure calls to access navigation specific information provided by the navigation application.

Hereinafter, a more detailed explanation of implementation of platform independent communication with socket communications will be given.

With regards to socket communications, socket communications may enable a customized application to communicate with a navigation application on a navigation device 200. For example, in contrast to the file communication protocol described above, a customized application may issue arguments and procedure calls using a socket. A socket may be a communications end-point for establishing two-way communication between entities. According to example embodiments, platform independent communication including socket communications is substantially similar to file communications except in issuing and receiving arguments. For example, a client/server model may be used as described above, and similar procedure calls may enable communications. In contrast however, sockets may be read/written from/to for communication instead of files.

Hereinafter, a customized navigation system employing a software development kit will be described with reference to FIG. 7.

FIG. 7 illustrates a customized navigation system, according to an example embodiment. As illustrated in FIG. 7 a customized application may include a navigation device 710 (noting that navigation device 200 equally applies, wherein navigation device 200 and 710 may be one in the same, with only a new number being denoted to correlate with new FIG. 7), a software development kit, and a computer device/terminal 740. The customized navigation system may further include a mobile unit 720 enabling communications to the internet for example. Furthermore, the computer device/terminal 740 may be in communication with the internet. Therefore, navigation device 710 may be connected to the internet through computer device/terminal 740 and/or mobile unit 720. The connection with mobile unit 720 may enable navigation device 710 to access information from the internet using the internet connection of mobile unit 720. Furthermore, navigation device 710 may transmit information to the internet using the internet connection of mobile unit 720.

Although the computer device 740 and software development kit 730 have been illustrated in FIG. 7 as being separate entities, it would be understood that the software development kit may be used independently on a separate terminal, or in combination with terminal 740 to program and customize an application.

Using the software development kit 730, computer device 740 may download a customized application to navigation device 710. The navigation device 710 may process the customized application such that it may transmit information to a navigation application being processed on the navigation device 710. For example, the customized application may transmit information including an IP address and relevant information to the navigation application such that the navigation device 710 may transmit the application information from the customized application to computer device/terminal 740. The transmission may be facilitated by the internet using the mobile unit 720, or alternatively, through a direct connection between the navigation device 710 and computer device/terminal 740.

Furthermore, utilizing the connection between the navigation device 710 and computer device/terminal 740, debugging may be enhanced. For example, a user may debug the customized application on the computer device/terminal connected to the navigation device 710, while the customized application is being processed by the navigation device 710. Similarly, the customized application may be adapted to transmit performance related logs to the computer device/terminal 740. Therefore, the performance of an implementation of a customized application may be recorded at the computer device/terminal 740.

Additionally, the customized application may access navigation specific information from the navigation application, and transmit the navigation specific information to computer device/terminal 740.

Therefore, in the customized navigation system 700 of FIG. 7, a customized application may be implemented such that navigation specific information is transmitted to a terminal which is independent from navigation device 710. Therefore, as will be appreciated, a software development kit may be used in connection with navigation devices such that navigation specific information may be transmitted regardless of location. Therefore, numerous applications of the software development kit may be developed to suit a user's needs, thereby facilitating customizable access to a navigation device.

As an example, given for the purpose of illustration only, a delivery service such as a shipping service may use a software development kit 730 to program a customized shipping application which tracks the progress of shipping orders. Using navigation device 710 processing the customized shipping application, the shipping service may readily retrieve and transmit navigation specific information relating to packages being shipped such that a terminal 740 (located in a shipping center for example) may retrieve shipping information from the navigation device 710. As such, a need for a custom-made navigation device 710, tailored to a particular application or service, may be obviated as a customized application may be developed using software development kit 730 according to example embodiments. Therefore, using software development kits according to example embodiments, typical navigation devices may be more easily customized for any particular application or use.

Furthermore, using software developments kits according to example embodiments, a third-party software developer may more easily access navigation specific information from a navigation device 710. For example, because example embodiments set forth platform independent procedure calls for communication with an existing navigation application, rather than stand-alone custom applications with complex algorithms, necessary knowledge of complex calculations for determining navigation specific information is reduced as an existing navigation application provides the information through platform independent procedure calls. Additionally, debugging of a customized application may be reduced as complex calculations for navigation specific information are processed by the navigation application rather than the customized application.

Thus, according to example embodiments, methods of providing customizable access to a navigation device 200/710 are disclosed herein. For example, in at least one embodiment, the method may include providing a software development kit (SDK), including at least one application programming interface and at least one platform independent procedure call library; processing a navigation application on the navigation device, the navigation application maintaining a plurality of platform independent procedure calls based on the at least one platform independent procedure call library; and processing a customized application on the navigation device 200/710, the customized application using at least one of the plurality of platform independent procedure calls to access navigation specific information provided by the navigation application.

Furthermore, the methods of at least one embodiment expressed above may be implemented as a computer data signal embodied in a carrier wave or propagated signal that represents a sequence of instructions which, when executed by a processor (such as processor 304 of server 302, and/or processor 210 of navigation device 200/710 for example) causes the processor 210 to perform a respective method. In at least one other embodiment, at least one method provided above may be implemented above as a set of instructions contained on a computer readable or computer accessible medium, such as one of the memory devices previously described, for example, to perform the respective method when executed by a processor 210 or other computer device. In varying embodiments, the medium may be a magnetic medium, electronic medium, optical medium, etc.

Even further, any of the aforementioned methods may be embodied in the form of a program. The program may be stored on a computer readable media and is adapted to perform any one of the aforementioned methods when run on a computer device (a device including a processor). Thus, the storage medium or computer readable medium is adapted to store information and is adapted to interact with a data processing facility or computer device to perform the method of any of the above mentioned embodiments.

The storage medium may be a built-in medium installed inside a computer device main body or a removable medium arranged so that it can be separated from the computer device main body. Examples of the built-in medium include, but are not limited to, rewriteable non-volatile memories, such as ROMs and flash memories, and hard disks. Examples of the removable medium include, but are not limited to, optical storage media such as CD-ROMS and DVDs; magneto-optical storage media, such as MOs; magnetism storage media, including but not limited to floppy disks (trademark), cassette tapes, and removable hard disks; media with a built-in rewriteable non-volatile memory, including but not limited to memory cards; and media with a built-in ROM, including but not limited to ROM cassettes; etc. Furthermore, various information regarding stored images, for example, property information, may be stored in any other form, or it may be provided in other ways.

As one of ordinary skill in the art will understand upon reading the disclosure, the electronic components of the navigation device 200 and/or the components of the server 302 can be embodied as computer hardware circuitry or as a computer readable program, or as a combination of both.

The system and method of embodiments of the present application include software operative on the processor to perform at least one of the methods according to the teachings of the present application. One of ordinary skill in the art will understand, upon reading and comprehending this disclosure, the manner in which a software program can be launched from a computer readable medium in a computer based system to execute the functions found in the software program. One of ordinary skill in the art will further understand the various programming languages which may be employed to create a software program designed to implement and perform at least one of the methods of the present application.

The programs can be structured in an object-orientation using an object-oriented language including but not limited to JAVA, Smalltalk, C++, etc., and the programs can be structured in a procedural-orientation using a procedural language including but not limited to COBAL, C, etc. The software components can communicate in any number of ways that are well known to those of ordinary skill in the art, including but not limited to by application of program interfaces (API), interprocess communication techniques, including but not limited to report procedure call (RPC), common object request broker architecture (CORBA), Component Object Model (COM), Distributed Component Object Model (DCOM), Distributed System Object Model (DSOM), and Remote Method Invocation (RMI). However, as will be appreciated by one of ordinary skill in the art upon reading the present application disclosure, the teachings of the present application are not limited to a particular programming language or environment.

The above systems, devices, and methods have been described by way of example and not by way of limitation with respect to improving accuracy, processor speed, and ease of user interaction, etc. with a navigation device 200.

Further, elements and/or features of different example embodiments may be combined with each other and/or substituted for each other within the scope of this disclosure and appended claims.

Still further, any one of the above-described and other example features of the present invention may be embodied in the form of an apparatus, method, system, computer program and computer program product. For example, of the aforementioned methods may be embodied in the form of a system or device, including, but not limited to, any of the structure for performing the methodology illustrated in the drawings.

Example embodiments being thus described, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the present invention, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims.

Claims

1. A method of providing customizable access to a navigation device, comprising:

providing a software development kit (SDK), including at least one application programming interface with at least one platform independent procedure call library;
processing a navigation application on the navigation device, the navigation application maintaining a plurality of platform independent procedure calls based on the at least one platform independent procedure call library; and
processing a customized application on the navigation device, the customized application using at least one of the plurality of platform independent procedure calls to access navigation specific information provided by the navigation application.

2. The method of claim 1, wherein the processing of the navigation application includes processing at least one customized user interface option provided by the plurality of application programming interfaces.

3. The method of claim 2, wherein the at least one customized user interface option includes a touch-sensitive button to launch features of the customized application.

4. The method of claim 1, wherein the processing of the customized application further includes:

communicating with the navigation application by writing and reading to files on the navigation device using at least one of the plurality of platform independent procedure calls.

5. The method of claim 1, wherein the processing of the customized application further includes:

accessing non-navigation specific information provided by the navigation application using at least one of the plurality of platform independent procedure calls.

6. The method of claim 5, wherein the non-navigation specific information includes information obtained by the navigation application from the internet.

7. The method of claim 1, wherein the processing of the customized application further includes:

communicating non-navigation specific information to the navigation application using at least one of the plurality of platform independent procedure calls.

8. The method of claim 7, wherein the non-navigation specific information includes information to be transmitted to the internet by the navigation application.

9. The method of claim 1, further comprising:

creating the customized application with the software development kit on a computer device;
transferring the customized application to the navigation device from the computer device; and
debugging the customized application on a computer terminal connected to the navigation device, while the customized application is being processed by the navigation device.

10. The method of claim 1, wherein the navigation specific information includes at least one of a current geographical location of the navigation device, an estimated time of arrival to a point of interest, a currently selected point of interest, and a distance between the current geographical location of the navigation device and the currently selected point of interest.

11. The method of claim 10, wherein the customized application accesses the current geographical location using at least one of the plurality of platform independent procedure calls.

12. The method of claim 10, wherein the customized application accesses the estimated time of arrival using at least one of the plurality of platform independent procedure calls.

13. The method of claim 10, wherein the customized application accesses the currently selected point of interest using at least one of the plurality of platform independent procedure calls.

14. The method of claim 10, wherein the customized application communicates new points of interest to the navigation application using at least one of the plurality of platform independent procedure calls.

15. The method of claim 1, wherein the at least one platform independent procedure call library includes an itinerary related library.

16. The method of claim 1, wherein the at least one platform independent procedure call library includes a location sensitive library.

17. The method of claim 1, wherein the at least one platform independent procedure call library includes a points of interest library.

18. The method of claim 1, wherein the at least one platform independent procedure call library includes a custom menus library.

19. The method of claim 1, wherein the at least one platform independent procedure call library includes a navigation coordinates library.

20. The method of claim 1, wherein the at least one platform independent procedure call library includes a clear route library.

21. A computer readable medium including program segments for, when executed on a processor of a navigation device, causing the navigation device to implement the method of claim 1.

22. A navigation device, comprising:

means for processing a navigation application on the navigation device, the navigation application maintaining a plurality of platform independent procedure calls based on a at least one platform independent procedure call library; and
means for processing a customized application on the navigation device, the customized application using at least one of the plurality of platform independent procedure calls to access navigation specific information provided by the navigation application.

23. The navigation device of claim 22, further comprising:

means for storing files on the navigation device, for facilitating access to navigation specific information provided by the navigation application.

24. The navigation device of claim 23, wherein the navigation specific information is written to the files by the navigation application.

25. The navigation device of claim 23, wherein requests for navigation specific information are written to the files by the customized application.

26. The navigation device of claim 23, wherein the means for processing the customized application further includes:

means for accessing non-navigation specific information provided by the navigation application using at least one of the plurality of platform independent procedure calls.

27. The navigation device of claim 26, wherein the means for accessing non-navigation specific information is a file communication protocol.

28. The navigation device of claim 22, wherein:

the customized application is created with a software development kit including the at least one platform independent procedure call library on a computer device;
the customized application is transferred to the navigation device from the computer device; and
the customized application is debugged on a computer terminal connected to the navigation device.

29. The navigation device of claim 22, wherein the navigation specific information includes at least one of a current geographical location of the navigation device, an estimated time of arrival to a point of interest, a currently selected point of interest, and a distance between the current geographical location of the navigation device and the currently selected point of interest.

30. The navigation device of claim 29, wherein the customized application communicates new points of interest to the navigation application using at least one of the plurality of platform independent procedure calls.

31. The navigation device of claim 22, wherein the at least one platform independent procedure call library includes an itinerary related library.

32. The navigation device of claim 22, wherein the at least one platform independent procedure call library includes a location sensitive library.

33. The navigation device of claim 22, wherein the at least one platform independent procedure call library include a points of interest library.

34. The navigation device of claim 22, wherein the at least one platform independent procedure call library includes a custom menus library.

35. The navigation device of claim 22, wherein the at least one platform independent procedure call library includes a navigation coordinates library.

36. The navigation device of claim 22, wherein the at least one platform independent procedure call library includes a clear route library.

37. A navigation device, comprising:

a processor to process a navigation application on the navigation device, the navigation application maintaining a plurality of platform independent procedure calls based on a at least one platform independent procedure call library, and to process a customized application on the navigation device, the customized application using at least one of the plurality of platform independent procedure calls to access navigation specific information provided by the navigation application.

38. The navigation device of claim 37, further comprising:

a memory, to store files on the navigation device, facilitating access to navigation specific information provided by the navigation application.

39. The navigation device of claim 38, wherein the navigation specific information is written to the files by the navigation application.

40. The navigation device of claim 38, wherein requests for navigation specific information are written to the files by the customized application.

41. The navigation device of claim 38, wherein the processor to process the customized application is further used to access non-navigation specific information provided by the navigation application using at least one of the plurality of platform independent procedure calls.

42. The navigation device of claim 41, wherein the processor uses a file communication protocol to access non-navigation specific information.

43. The navigation device of claim 37, wherein:

the customized application is created with a software development kit including the at least one platform independent procedure call library on a computer device;
the customized application is transferred to the navigation device from the computer device; and
the customized application is debugged on a computer terminal connected to the navigation device.

44. The navigation device of claim 37, wherein the navigation specific information includes at least one of a current geographical location of the navigation device, an estimated time of arrival to a point of interest, a currently selected point of interest, and a distance between the current geographical location of the navigation device and the currently selected point of interest.

45. The navigation device of claim 44, wherein the customized application communicates new points of interest to the navigation application using at least one of the plurality of platform independent procedure calls.

46. The navigation device of claim 37, wherein the at least one platform independent procedure call library includes an itinerary related library.

47. The navigation device of claim 37, wherein the at least one platform independent procedure call library includes a location sensitive library.

48. The navigation device of claim 37, wherein the at least one platform independent procedure call library include a points of interest library.

49. The navigation device of claim 37, wherein the at least one platform independent procedure call library includes a custom menus library.

50. The navigation device of claim 37, wherein the at least one platform independent procedure call library includes a navigation coordinates library.

51. The navigation device of claim 37, wherein the at least one platform independent procedure call library includes a clear route library.

Patent History
Publication number: 20070250842
Type: Application
Filed: Mar 2, 2007
Publication Date: Oct 25, 2007
Inventors: Ayal Pinkus (Amsterdam), Anna Nachesa (Haarlem), Ewoud van Raamadonk (Ulrechl), Dan Rafaell (Amsterdam)
Application Number: 11/713,089
Classifications
Current U.S. Class: 719/328.000
International Classification: G06F 9/44 (20060101);