A method and device are provided to determine a location corresponding to an entry in a database stored in an electronic device; determine a current position of the electronic device; obtain navigational information from the current position to the location; and provide the navigational information to a user.
|
10. A device comprising:
a location-determining unit to determine a location associated with an entry in a database, upon detection of an idle state of an operating system for the device;
a position detection unit to detect a current position of the device;
a navigational unit to determine navigational information from the current position to the location; and
an output unit to output the navigational information to a person.
1. A method comprising:
determining a location corresponding to an entry in a database stored in an electronic device, wherein determining the location is performed upon detection of an idle state of an operating system for the electronic device;
determining a current position of the electronic device;
obtaining navigational information from the current position to the location; and
providing the navigational information to a user.
25. An electronic device comprising:
means for determining a location associated with an entry in a database stored in the electronic device, upon detection of an idle state of an operating system for the electronic device;
means for detecting a current position of the electronic device;
means for determining navigational information from the current position to the location; and
means for outputting the navigational information to a user.
22. A computer-readable medium having stored thereon a sequence of instructions which when executed by a processing system, cause the processing system to perform a method comprising:
determining a location corresponding to an entry in a user's schedule, wherein determining the location is performed upon detection of an idle state of an operating system for the processing system;
determining a current position of the electronic device;
obtaining navigational information to the location from the current position; and
providing the navigational information to a user.
19. Apparatus comprising:
a processing system; and
a memory coupled to the processing system, the memory storing instructions which when executed by the processing system cause the processing system to perform a method comprising:
determining a location corresponding to an entry in a database stored in an electronic device, wherein determining the location is performed upon detection of an idle state of an operating system for the processing system;
determining a current position of the electronic device;
obtaining navigational information to the location from the current position; and
providing the navigational information to a user.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
11. The device of
12. The device of
13. The device of
14. The device of
15. The device of
16. The device of
17. The device of
20. The system of
21. The system of
23. The computer-readable medium of
24. The computer-readable medium of
26. The device of
|
Embodiments of the invention relate to finding directions for appointments, tasks, meetings, etc. entered in an electronic database.
Programs such as Microsoft Outlook or Lotus Notes are used to manage events such as appointments, meetings, to do lists etc. While these programs are extremely popular and convenient to use, a user still has to get directions to a location at which an event is to occur. This may be done by using a physical map book or by using an electronic map database. When using an electronic map database the user has to provide an address of a location at which an event is to occur. This results in the user having to enter the address twice, i.e. once in the scheduling program and once in a query to the electronic map database. To some extent having to enter address information detracts from the convenience and utility of such programs.
The invention may best be understood by referring to the following description and accompanying drawings that are used to illustrate embodiments of the invention. In the drawings:
In the following description, for purposes of explanation, numerous specific details are set forth. However, it is to be understood that embodiments of the invention may be practiced without the specific details. In other instances, well known circuits, structures and techniques have not been shown in detail in order not to obscure the understanding of this description.
While the invention has been described in terms of several embodiments, those skilled in the art will recognize that the invention is not limited to the embodiments described, but can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting.
Reference in this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not other embodiments.
In one embodiment, the invention provides a method for obtaining navigational information to a next-scheduled event in a user's schedule as illustrated in
Example entries are provided in
Determining the location at block 100 includes searching an address database for an address corresponding to a name in the entry. The name may be a company name or a name of a person. For example, in the case of the 9:00 a.m. appointment, the address database will be searched for an address corresponding to Company X.
In other embodiments, determining the location comprises determining if the entry includes a task indicating a location at which the task can be performed. For example, assuming that the user's schedule corresponds to the screen shot 200, determining the location comprises determining if the entry “drop off dry cleaning” indicates a location at which the task (in this case dry cleaning) can be performed. This is done by mapping key words to tasks that can be performed at defined locations. Examples of keyword-to-location mappings include mapping “buy flowers” to the location “florist”, mapping “deposit check” to the locations automatic teller machine (ATM) or bank, mapping “dry cleaning” to the location dry cleaner, etc. Once the mapping has been established, then determining if the entry includes a task indicating a location at which the task can be performed comprises searching the entry for key words from the list.
At block 102, system 400 determines a current position of the user. In one embodiment, system 400 comprises GPS hardware to enable the system to receive a GPS signal and to calculate the current position of the system/user based on the GPS signal.
It is to be appreciated that other types of hardware may be used to determine the current position. Further, system 400 may determine the current position by making assumptions based on, for example, a calendar entry. For example, system 400 can assume, for the entries shown in
At block 104, system 400 obtains navigational information to the determined location based on the current position. In the case of the determined location corresponding to an address such as is the case with the 9:00 a.m. appointment shown in screen shot 200, obtaining the navigational information comprises searching a map database for a route, which could include driving directions from the user's current position to the address of the location.
In the case of the location being a “location,” such as a bank, a florist, a dry cleaner, etc., where a task may be performed, then obtaining the navigational information at block 104 includes searching a map database for the location. In some embodiments, more than one choice of a location at which a task may be performed is presented to the user, e.g. within a drop-down list, so that the user may select a desired location. In this case, obtaining the navigational information then comprises obtaining a route, e.g. driving directions, to the determined or selected place location on the user's current position.
At block 106, system 400 provides the navigational information e.g. by displaying it to the user. In one embodiment, this may be done in response to user-input indicating that the navigational information is required. In one embodiment, a macro or intelligent hot-key is provided so that when a user positions a cursor over the entry in the user's schedule the navigational information associated with the entry is automatically displayed. This is illustrated in
Referring to
Starting at block 300, system 400 determines whether an operating system for the system is idle. The method illustrated in
If the operating system is not idle then block 304 executes, otherwise block 302 executes wherein a check is performed to determine if user-input has been detected. If at 302, no user-input has been detected then control passes to block 300, otherwise block 304 executes.
At block 304, system 400 determines the next-scheduled event in a user's schedule. This is done by analyzing a user's schedule which may, according to embodiments of the invention, be a schedule entered into a commercial scheduling program such at Lotus Notes or Microsoft Outlook. The next-scheduled event may be an event such as a meeting or appointment entered in a calendar or a task entered in a “to do” list as described above.
At block 306, system 400 determines a location corresponding to the next-scheduled event. Block 306 is similar to block 100 in FIG. 1 and is not further described. At block 308, system 400 checks if a location has been determined at block 306. If no location has been determined then control passes to block 300 otherwise block 310 executes. Block 310 comprises determining the current location and is similar to block 102 in FIG. 1 and is therefore not further described.
At block 312, system 400 obtains navigational information to the determined location based on the current location. The execution details of block 312 is similar to that of block 104 in
At block 318, if a change has been detected then block 320 executes wherein navigational information from the latest current position to the determined location is obtained in a manner similar to block 312. After execution of block 320, or 318 if no change has been detected at block 318, then block 322 executes wherein the navigational information is displayed to the user. If a shutdown message has been detected at block 324 then the process ends otherwise control is passed to block 300.
Computer 400 typically includes at least one processor 402 coupled to a memory 404. Processor 402 may represent one or more processors (e.g. microprocessors), and memory 404 may represent random access memory (RAM) devices comprising a main storage of computer 400, as well as any supplemental levels of memory, e.g., cache memories, non-volatile or back-up memories (e.g. programmable flash memories), read-only memories, etc. In addition, memory 404 may be considered to include memory storage physically located elsewhere in computer 400 e.g. any cache memory in a processor 402, as well as any storage capacity used as a virtual memory, e.g. as stored on a mass storage device 410 or on another computer coupled to computer 400 via a network 412.
Computer 400 also typically receives a number of inputs and outputs for communicating information externally. For interface with a user or operator, computer 400 typically includes one or more user-input devices 406 (e.g. a keyboard, a mouse, a trackball, a microphone, etc.) and an output unit or display 408 (e.g. an LCD display panel).
For additional storage, computer 400 may also include one or more mass storage devices 410 e.g. a floppy or other removable disk drive, a hard disk drive, a direct access storage device (DASD), an optical drive (e.g. a CD drive, a DVD drive, etc.), and/or a tape drive, among others. Furthermore, computer 400 may include an interface with one or more networks 412 (e.g. a LAN, WAN, a wireless network, and/or the Internet among others) to permit the communication of information with other computers coupled to the network. It should be appreciated that computer 400 typically includes suitable analog and/or digital interfaces between processor 402 and each of the components 404, 406, 408, 410 and 412 as is well known in the art.
Computer 400 includes a location-determining unit 416, a positioned detection unit 418, and a navigational unit 420. The location-determining unit 416 determines the location associated with an entry in a user's schedule in accordance with the techniques described above. The position detection unit 418 detects a current position of the user in accordance with the techniques described above. In one embodiment, position detection unit 418 includes Global Positioning System (GPS) hardware. The navigational unit 420 determines the navigational information from the current position through the determined location in accordance with the techniques described above. Components of location-determining unit 416, position detection unit 418 and navigational unit 420 may be implemented in software and/or in hardware. Further, in one embodiment, location-detection determining unit 416, positioning detection 418, and navigational unit 420 may be integrated onto a single add-on card.
Computer 400 operates under the control of an operating system 412, and executes various computer software applications, components, programs, objects, modules, etc. (e.g. application software 414 such as a scheduling program described above).
Although embodiments of the invention have been described with reference to scheduling programs and programs with task or to-do lists, the invention has utility with any program that has entries with address information stored in a database.
In general, the routines executed to implement the embodiments of the invention, where implemented as part of an operating system or a specific application component, program, object, module or sequence of instructions are referred to herein as “computer programs”, or simply “programs”. The computer programs typically comprise one or more instructions that are resident at various times in various memory and storage devices in a computer, and that when read and executed by one or more processors in computer, cause that computer to perform the steps necessary to execute steps or elements embodying the various aspects of the invention. Moreover, while the invention has and hereinafter will be described in the context of fully functioning computers and computer systems, those skilled in the art will appreciate the various embodiments of the invention are capable of being distributed as a program product in a variety of forms, and that the invention applies equally regardless of the particular type of signal bearing media used to actually carry out the distribution. Examples of signal bearing media include but are not limited to recordable type media such as volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, optical disks (e.g., CD ROMS, DVDs, etc.) among others, and transmission type media as digital and analog communication links.
In addition, various programs described herein may be identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature used herein is merely for convenience, and thus the invention should not be limited to uses solely in any specific application identified and/or implied by such nomenclature.
Further, those skilled in the art will recognize that the exemplary computer shown in
For the purposes of this specification, a computer-readable medium includes any mechanism that provides (i.e. stores and/or transmits) information in a form readable by a machine (e.g. computer) for example, a computer-readable medium includes read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g. carrier waves, infra red signals, digital signals, etc.); etc.
It will be apparent from this description the aspects of the present invention may be embodied, at least partly, in software. In other embodiments, hardware circuitry may be used in combination with software instructions to implement the present invention. Thus, the embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
Although the present invention has been described with reference to specific exemplary embodiments, it will be evident that the various modification and changes can be made to these embodiments without departing from the broader spirit of the invention as set forth in the claims. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than in a restrictive sense.
Patent | Priority | Assignee | Title |
7161502, | Aug 31 2001 | AISIN AW CO , LTD | Information display system |
7646296, | Aug 11 2006 | Honda Motor Co., Ltd.; HONDA MOTOR CO , LTD | Method and system for receiving and sending navigational data via a wireless messaging service on a navigation system |
7737868, | Feb 14 2003 | ARTAX, LLC | Method and system for saving and retrieving spatial related information |
7743056, | Mar 31 2006 | Meta Platforms, Inc | Identifying a result responsive to a current location of a client device |
7869941, | Dec 29 2006 | Meta Platforms, Inc | Meeting notification and modification service |
7903001, | Feb 14 2003 | ARTAX, LLC | Method and system for saving and retrieving spatial related information |
7913179, | Mar 01 2002 | TELECOMMUNICATION SYSTEMS, INC | Method and apparatus for sending, retrieving and planning location relevant information |
7941753, | Mar 31 2006 | Meta Platforms, Inc | Communicating appointment and/or mapping information among a calendar application and a navigation application |
7999703, | Aug 11 2006 | Honda Motor Co., Ltd. | Method and system for receiving and sending navigational data via a wireless messaging service on a navigation system |
8014939, | Aug 16 2001 | TELECOMMUNICATION SYSTEMS, INC | Point of interest spatial rating search |
8019532, | Mar 07 2005 | TELECOMMUNICATION SYSTEMS, INC | Method and system for identifying and defining geofences |
8073614, | Dec 29 2006 | Meta Platforms, Inc | Meeting notification and modification service |
8090534, | Oct 01 2004 | TeleCommunications Systems, Inc. | Method and system for enabling an off board navigation solution |
8090796, | Sep 05 2001 | ARTAX, LLC | Position identification method and system |
8099238, | Nov 14 2007 | TeleCommunication Systems, Inc. | Stateful, double-buffered dynamic navigation voice prompting |
8102281, | Aug 11 2006 | Honda Motor Co., Ltd. | Method and system for receiving and sending navigational data via a wireless messaging service on a navigation system |
8107608, | Jul 17 2001 | ARTAX, LLC | System and method for providing routing, mapping, and relative position information to users of a communication network |
8134481, | Aug 11 2006 | HONDA MOTOR CO , LTD | Method and system for receiving and sending navigational data via a wireless messaging service on a navigation system |
8169343, | Feb 14 2003 | ARTAX, LLC | Method and system for saving and retrieving spatial related information |
8193950, | Aug 11 2006 | Honda Motor Co., Ltd. | Method and system for receiving and sending navigational data via a wireless messaging service on a navigation system |
8193951, | Aug 11 2006 | Honda Motor Co., Ltd. | Method and system for receiving and sending navigational data via a wireless messaging service on a navigation system |
8204686, | Feb 28 2007 | Samsung Electronics Co., Ltd. | Scheduling method using portable terminal and navigation terminal |
8224572, | Nov 14 2007 | TeleCommunication Systems, Inc. | Stateful, double-buffered dynamic navigation voice prompting |
8301371, | Aug 16 2001 | TeleCommunication Systems, Inc. | Point of interest spatial rating search method and system |
8364400, | Dec 29 2006 | Meta Platforms, Inc | Meeting notification and modification service |
8390480, | Feb 14 2003 | ARTAX, LLC | Method and system for saving and retrieving spatial related information |
8489329, | Dec 29 2006 | Meta Platforms, Inc | Meeting notification and modification service |
8509412, | Jul 17 2001 | ARTAX, LLC | System and method for providing routing, mapping, and relative position information to users of a communication network |
8521422, | Nov 14 2007 | TeleCommunication Systems, Inc. | Stateful, double-buffered dynamic navigation voice prompting |
8554476, | Dec 29 2006 | Meta Platforms, Inc | Meeting notification and modification service |
8554477, | Dec 29 2006 | Meta Platforms, Inc | Meeting notification and modification service |
8560232, | Dec 29 2006 | Meta Platforms, Inc | Meeting notification and modification service |
8621374, | Mar 01 2002 | TeleCommunication Systems, Inc. | Method and apparatus for sending, retrieving, and planning location relevant information |
8666397, | Dec 13 2002 | TeleCommunication Systems, Inc. | Area event handling when current network does not cover target area |
8682321, | Feb 25 2011 | TELECOMMUNICATION SYSTEMS, INC ; TeleCommunication Systems, Inc. | Mobile internet protocol (IP) location |
8712810, | Dec 29 2006 | Meta Platforms, Inc | Reserving a time block in a calendar application to account for a travel time between geographic locations of appointments |
8731813, | Mar 07 2005 | TeleCommunication Systems, Inc. | Method and system for identifying and defining geofences |
8786469, | Feb 14 2003 | ARTAX, LLC | Method and system for saving and retrieving spatial related information |
8831556, | Sep 30 2011 | TeleCommunication Systems, Inc. | Unique global identifier header for minimizing prank emergency 911 calls |
8885796, | May 04 2006 | TeleCommunications Systems, Inc. | Extended efficient usage of emergency services keys |
8930139, | Jun 21 2012 | ARTAX, LLC | Dynamically varied map labeling |
8983047, | Mar 20 2013 | TELECOMMUNICATION SYSTEMS, INC | Index of suspicion determination for communications request |
9088614, | Dec 19 2003 | TeleCommunications Systems, Inc. | User plane location services over session initiation protocol (SIP) |
9137636, | Mar 07 2005 | TeleCommunication Systems, Inc. | Method and system for identifying and defining geofences |
9173059, | Feb 25 2011 | TeleCommunication Systems, Inc. | Mobile internet protocol (IP) location |
9178996, | Sep 30 2011 | TeleCommunication Systems, Inc. | Unique global identifier header for minimizing prank 911 calls |
9197992, | Dec 19 2003 | TeleCommunication Systems, Inc. | User plane location services over session initiation protocol (SIP) |
9217644, | Jan 26 2012 | ARTAX, LLC | Natural navigational guidance |
9217651, | Feb 14 2003 | ARTAX, LLC | Method and system for saving and retrieving spatial related information |
9220958, | Mar 28 2002 | TeleCommunications Systems, Inc. | Consequential location derived information |
9234762, | Mar 31 2006 | Meta Platforms, Inc | Identifying results responsive to a future location of a client device |
9243911, | Dec 29 2006 | Meta Platforms, Inc | Meeting notification and modification service |
9304012, | Jun 21 2012 | ARTAX, LLC | Dynamically varied map labeling |
9307372, | Mar 26 2012 | TELECOMMUNICATION SYSTEMS, INC | No responders online |
9313638, | Aug 15 2012 | TELECOMMUNICATION SYSTEMS, INC | Device independent caller data access for emergency calls |
9344850, | Aug 08 2003 | TELECOMMUNICATION SYSTEMS, INC | Method and system for collecting, synchronizing, and reporting telecommunication call events |
9400591, | May 21 2010 | TeleCommunication Systems, Inc. | Personal wireless navigation system |
9401986, | Sep 30 2011 | TeleCommunication Systems, Inc. | Unique global identifier header for minimizing prank emergency 911 calls |
9408034, | Sep 09 2013 | ARTAX, LLC | Extended area event for network based proximity discovery |
9423266, | Jan 26 2012 | ARTAX, LLC | Navigational lane guidance |
9456301, | Dec 11 2012 | TELECOMMUNICATION SYSTEMS, INC | Efficient prisoner tracking |
9470541, | Jan 26 2012 | ARTAX, LLC | Natural navigational guidance |
9479897, | Oct 03 2013 | TELECOMMUNICATION SYSTEMS, INC | SUPL-WiFi access point controller location based services for WiFi enabled mobile devices |
9516104, | Sep 11 2013 | TELECOMMUNICATION SYSTEMS, INC | Intelligent load balancer enhanced routing |
9544260, | Mar 26 2012 | TELECOMMUNICATION SYSTEMS, INC | Rapid assignment dynamic ownership queue |
9582177, | Mar 01 2002 | TeleCommunication Systems, Inc. | Method and apparatus for sending, retrieving, and planning location relevant information |
9584661, | May 04 2006 | TeleCommunication Systems, Inc. | Extended efficient usage of emergency services keys |
9599717, | Mar 28 2002 | TeleCommunication Systems, Inc. | Wireless telecommunications location based services scheme selection |
9618358, | Mar 31 2006 | Meta Platforms, Inc | Identifying a result responsive to a current location of a client device |
9730024, | Feb 14 2003 | ARTAX, LLC | Method and system for saving and retrieving spatial related information |
9752890, | Mar 31 2006 | Meta Platforms, Inc | Identifying a result responsive to a current location of a client device |
9867014, | Dec 29 2006 | Meta Platforms, Inc | Meeting notification and modification service |
Patent | Priority | Assignee | Title |
5506774, | Apr 26 1993 | Pioneer Electronic Corporation | Navigation apparatus |
5654908, | May 16 1994 | Kabushikikaisha Equos Research; Kabushikiaisha Shinsangyokaihatsu | Electronic diary with navigation destination output |
5680312, | Jun 07 1995 | THE BANK OF NEW YORK MELLON, AS ADMINISTRATIVE AGENT | Method and apparatus for selecting a destination in a vehicle navigation system |
5825306, | Aug 25 1995 | AISIN AW CO , LTD | Navigation system for vehicles |
5938721, | Oct 24 1996 | Trimble Navigation Limited; Trimble Navigation LTD | Position based personal digital assistant |
5941930, | Sep 22 1994 | Aisin AW Co., Ltd. | Navigation system |
5987375, | Feb 14 1996 | THE BANK OF NEW YORK MELLON, AS ADMINISTRATIVE AGENT | Method and apparatus for selecting a destination in a vehicle navigation system |
6088649, | Aug 05 1998 | THE BANK OF NEW YORK MELLON, AS ADMINISTRATIVE AGENT | Methods and apparatus for selecting a destination in a vehicle navigation system |
6249742, | Aug 03 1999 | NAVIGON AB; Navigon AG | Method and system for providing a preview of a route calculated with a navigation system |
6411899, | Oct 24 1996 | Trimble Navigation Ltd. | Position based personal digital assistant |
6470268, | Aug 14 2001 | TOMTOM NAVIGATION B V | Navigation destination entry via glyph to digital translation |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jun 24 2002 | SILVESTER, KELAN C | Intel Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013093 | /0898 | |
Jul 01 2002 | Intel Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Sep 15 2005 | ASPN: Payor Number Assigned. |
Jul 08 2008 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Aug 27 2012 | REM: Maintenance Fee Reminder Mailed. |
Oct 24 2012 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Oct 24 2012 | M1555: 7.5 yr surcharge - late pmt w/in 6 mo, Large Entity. |
Jun 30 2016 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Jan 11 2008 | 4 years fee payment window open |
Jul 11 2008 | 6 months grace period start (w surcharge) |
Jan 11 2009 | patent expiry (for year 4) |
Jan 11 2011 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jan 11 2012 | 8 years fee payment window open |
Jul 11 2012 | 6 months grace period start (w surcharge) |
Jan 11 2013 | patent expiry (for year 8) |
Jan 11 2015 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jan 11 2016 | 12 years fee payment window open |
Jul 11 2016 | 6 months grace period start (w surcharge) |
Jan 11 2017 | patent expiry (for year 12) |
Jan 11 2019 | 2 years to revive unintentionally abandoned end. (for year 12) |