US20070156333A1 - Computer-aided route selection - Google Patents
Computer-aided route selection Download PDFInfo
- Publication number
- US20070156333A1 US20070156333A1 US11/324,549 US32454906A US2007156333A1 US 20070156333 A1 US20070156333 A1 US 20070156333A1 US 32454906 A US32454906 A US 32454906A US 2007156333 A1 US2007156333 A1 US 2007156333A1
- Authority
- US
- United States
- Prior art keywords
- route
- module
- user
- map
- criteria
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/3423—Multimodal routing, i.e. combining two or more modes of transportation, where the modes can be any of, e.g. driving, walking, cycling, public transport
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3453—Special cost functions, i.e. other than distance or default speed limit of road segments
- G01C21/3461—Preferred or disfavoured areas, e.g. dangerous zones, toll or emission zones, intersections, manoeuvre types, segments such as motorways, toll roads, ferries
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3453—Special cost functions, i.e. other than distance or default speed limit of road segments
- G01C21/3484—Personalized, e.g. from learned user behaviour or user-defined profiles
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/36—Input/output arrangements for on-board computers
- G01C21/3664—Details of the user input interface, e.g. buttons, knobs or sliders, including those provided on a touch screen; remote controllers; input using gestures
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/36—Input/output arrangements for on-board computers
- G01C21/3667—Display of a road map
- G01C21/3676—Overview of the route on the road map
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B29/00—Maps; Plans; Charts; Diagrams, e.g. route diagram
- G09B29/10—Map spot or coordinate position indicators; Map reading aids
- G09B29/106—Map spot or coordinate position indicators; Map reading aids using electronic means
Definitions
- This document relates to providing routes, maps, and other information that correspond to preferences expressed by a user.
- people may seek information related to weather, road construction, landmarks, and various other items of information. To gather this other information, people may be required to consult several sources.
- the invention features a system for assisting a user in selecting a route.
- the system may include a request receiving module.
- the request receiving module may be configured to receive a route request including map information and route information entered by a user.
- the map information may be selected from the group consisting of a starting point, an ending point, a landmark point, and combinations thereof.
- the route information may be selected from the group consisting of (1) lighting criteria, (2) travel surface criteria, (3) population density criteria, (4) weather criteria, (5) distance criteria, (6) speed criteria, (7) calorie criteria, (8) time criteria, (9) elevation change criteria, (10) landmark criteria, and combinations thereof.
- the route information may be selected from the group consisting of lighting criteria, weather criteria, distance criteria, speed criteria, and calorie criteria.
- the route information may include at least one of (and/or is selected from the group consisting of) the above-noted items (1), (4), and (7). In other embodiments, the route information may include at least one of (and/or is selected from the group consisting of) items (2), (5), (6), (7), and (8). In some other groups of embodiments, the route information may include at least item (7). In another case, the route information may include at least one of (and/or is selected from the group consisting of) items (5), (6), (7), and (8).
- the system may include a map retrieving module that is configured to retrieve a map based on the map information.
- the system may include a route providing module that is configured to provide one or more selected routes on the map based on the route information.
- the system may include a display providing module to provide the one or more selected routes and the map for display to the user.
- the invention features a computer-readable medium programmed with instructions for performing a method of assisting a user in selecting a route.
- the medium may comprise instructions for causing a programmable processor to receive a route request including map information and route information entered by a user.
- the medium may comprise instructions for causing a programmable processor to retrieve a map based on the map information.
- the medium may comprise instructions for causing a programmable processor to provide one or more selected routes on the map based on the route information.
- the medium may comprise instructions for causing a programmable processor to provide the one or more selected routes and the map for display to the user.
- the invention features a system for providing users multiple route selection modes.
- the system may include a parameter module that is configured to generate one or more parameter-based routes based on one or more route parameters.
- the system may include a trace module that is configured to generate one or more traced routes based on input received via tracing an input instrument on a touch-sensitive screen.
- the system may include a storage module configured to retrieve one or more stored routes from a storage repository.
- the system may include a request processing module configured to receive a route request from a user and to provide the route request to at least one of the parameter module, the trace module, and the storage module that the request processing module determines is equipped to provide responsive information.
- the system may include a display module that is configured to collect responsive information from the parameter module, the trace module, and/or the storage module, and to provide the responsive information to the user for display.
- the system may include an editing module to allow the user to edit the responsive information after the display module provides the responsive information to the user for display.
- Implementations may include one or more of the following features.
- a system may include an editing module to allow the user to edit the one or more selected routes after the display providing module provides the one or more selected routes and the map for display.
- Editing instructions may be entered by the user (e.g., via tracing an input instrument along a display, such as a touch-sensitive display).
- the one or more selected routes may be modified based on the editing instructions, thereby creating one or more modified routes.
- the one or more modified routes and the map may be provided for display to the user.
- Selected route information corresponding to the one or more selected routes may be provided.
- the selected route information may include a distance of the one or more selected routes.
- the selected route information may include traveling directions corresponding to the one or more selected routes.
- the route providing module may comprise a route selection module configured to identify one or more potential routes may be identified based on a first route information item, and then one or more selected routes may be identified by identifying which of the one or more potential routes satisfy a second
- Embodiments of the present invention may have one or more of the following advantages.
- users may be able to learn precise distance calculations of a route before or after traveling the route.
- users may be able plan routes based on a multitude of criteria.
- users may be able to download selected routes to, e.g., an mp3 player.
- users will have flexibility to use a stylet or mouse to draw, erase, or edit routes while viewing the exact distance of the route in real time.
- the route may include at least one portion that does not follow the highway, road, or street (e.g., a portion of the route can optionally follow a path that is an automobile-prohibited path, and/or an unpaved path).
- the invention may comprise a system (optionally a website) adapted to select a display on a map one or more routes based on input from operator.
- the input preferably includes map information selected from the group consisting of a starting point, an ending point, a landmark point (past which the route is to extend), together with route information selected from items (1) through (10) above.
- the input route information includes at least item (7).
- the input route information includes at least one of (and/or is selected from the group consisting of) items (2), (5), (6), (7), and (8), or items (1), (4), and (7), or items (5), (6),(7), and (8).
- and operator inputs the noted items and receives one or more routes displayed on a screen (e.g., a monitor) in response to entering the noted input.
- FIG. 1A shows an exemplary display.
- FIG. 1B shows an exemplary display.
- FIG. 1C shows an exemplary display.
- FIG. 1D shows an exemplary display.
- FIG. 1E shows an exemplary display.
- FIG. 1F shows an exemplary display.
- FIG. 1G shows an exemplary display.
- FIG. 1H shows an exemplary display.
- FIG. 2 shows a block diagram of an exemplary route selection system.
- FIG. 3 is a block diagram of the exemplary route selection system of FIG. 2 , with one component (a user interaction module) shown in greater detail.
- FIG. 4 is a block diagram of the exemplary route selection system of FIG. 2 , with one component (a parameter creation module) shown in greater detail.
- FIG. 5 is a block diagram of the exemplary route selection system of FIG. 2 , with one component (a map retrieving module) shown in greater detail.
- FIG. 6 is a block diagram of the exemplary route selection system of FIG. 2 , with one component (an iteration module) shown in greater detail.
- FIG. 7 is a block diagram of the exemplary route selection system of FIG. 2 , with one component (a stored route module) shown in greater detail.
- FIG. 8 is a block diagram of the exemplary route selection system of FIG. 2 , with one component (a trace creation module) shown in greater detail.
- FIG. 9 is a block diagram of the exemplary route selection system of FIG. 2 , with one component (a driving directions module) shown in greater detail.
- FIG. 10 is a block diagram of the exemplary route selection system of FIG. 2 , with one component (a display module) shown in greater detail.
- FIG. 11 provides a flow chart for an exemplary method of assisting a user in selecting a route.
- FIG. 1A shows an exemplary display 100 that may be implemented in some embodiments of the present invention.
- the display 100 may be the first page a user encounters.
- the display 100 may be the home page of a website.
- the display 100 may include a map 105 .
- the map 105 may include various kinds of information, such as geopolitical borders, topographical information, highways, updated weather for a selected area, or any other kind of information typically provided by maps.
- the display 100 may include a key 110 to provide information associated with the map 105 .
- the key 110 may include explanations of various icons displayed on the map 105 . Examples of such icons include a start icon, a stop icon, a mile marker icon, and/or a direction icon.
- the display 100 may include one or more input fields 115 .
- the input fields 115 may allow users to retrieve appropriately focused maps by entering corresponding information. Examples of input fields 115 may include fields for street addresses, cities, states, and/or zip codes. In some embodiments, other methods for retrieving appropriately focused maps may exist. For example, in some embodiments, a user may select an area of interest from the map 105 by clicking and dragging the start point (as indicated by the icon noted in the key 110 ) to a specific area of the map using an input device such as a mouse or a stylus.
- the display 100 of FIG. 1A may include one or more icons that correspond to route selection modes.
- the display 100 may include a “plan route” icon 120 . Selecting the “plan route” icon 120 may allow a user to select a route by entering various parameters and choosing between displayed routes that satisfy one or more of those parameters.
- the exemplary system discussed in connection with FIGS. 4-6 may assist users in selecting routes in this manner.
- the display 100 may include a “my routes” icon 125 . Selecting the “my routes” icon 125 may allow a user to select a previously stored route.
- the exemplary system discussed in connection with FIG. 7 may assist users in selecting routes in this manner.
- the display may include a “draw route” icon 130 .
- the “draw route” icon may allow a user to select a route by providing input through tracing, for example, a stylet or a mouse along the display 100 .
- tracing for example, a stylet or a mouse along the display 100 .
- the mouse may actually be moved along a nearby surface, such as a mouse pad, while a mouse-position indicator moves along the display according to the manner in which an operator physically moves the mouse.
- the trackball, trackpad, trackbutton, or another cursor-control/tracing device can optionally be used in a similar way.
- the exact distance of a displayed route or part of a route may be displayed on a constant basis. In one embodiment, as a route is being drawn, a distance is displayed, and this distance increases as more and more of the route is drawn.
- a visual indicator (a dotted line, solid line, etc.) showing the traced the path can be shown on the display, and as the line or other indicator gets longer, the displayed distance increases in a corresponding manner.
- the exemplary system discussed in connection with FIGS. 3 and 8 may assist users in selecting routes in a “draw route” manner.
- FIG. 2 shows an exemplary route selection system 200 to assist a user in selecting a route to be traveled by, e.g., running, walking, hiking, biking, driving, and so on.
- the route selection system 200 may include multiple components to assist in performing this function.
- the route selection system 200 may include a computer 205 .
- the computer 205 may allow a user to interact with the route selection system 200 .
- the route selection system 200 may include multiple computers, allowing multiple users to interact with the route selection system 200 .
- Users may provide input to the computer 205 by a keyboard and/or a pointing device (e.g., a mouse or a trackball). In some embodiments, users may provide input to the computer 205 by other means, such as acoustic, speech, or tactile input.
- a keyboard and/or a pointing device e.g., a mouse or a trackball
- the route selection system 200 may include a route selection module 210 to retrieve maps, perform calculations, create displays, and/or perform several other functions in providing assistance to users in selecting routes.
- the route selection module 210 may include an interface 215 to handle at least some of the communication of the route selection module 210 .
- the route selection module 210 may communicate with the computer 205 via the interface 215 .
- the route selection module 210 may communicate with other applications via the interface 215 .
- Such applications may include a map application 220 , a weather application 225 , a road construction application 230 , and other miscellaneous applications 235 .
- the route selection module 210 may communicate with such applications 220 , 225 , 230 , 235 directly.
- the route selection module 210 may communicate with such applications 220 , 225 , 230 , 235 via a network 240 .
- the network 240 may be, for example, the Internet.
- one or more of the noted application types 220 , 225 , 230 , 235 may be a web page (e.g., a mapping web page, a weather forecasting web page, a road construction status web page, etc.).
- the route selection module 210 may include a parameter creation module 245 to generate one or more routes based on parameters provided by a user.
- the route selection module 210 may include a trace creation module 250 to allow a user to generate a route by providing input through tracing, for example, a stylet or a mouse on a screen of the computer 205 .
- the route selection module 210 may include a stored route module 255 to store newly created routes in the memory of the route selection module 210 and to provide, in response to a user request, a route that has been stored.
- the route selection module 210 may include a display module 260 to collect various information from the components of the route selection module 210 and generate a display to be transmitted to and displayed on the computer 205 .
- the route selection module 210 may include an iteration module 265 assist the parameter creation module 245 in generating a route corresponding to parameters provided by a user.
- the route selection module 210 may include a driving directions module 270 to provide driving directions corresponding to the selected route.
- the route selection module 210 may include a map retrieving module 275 to retrieve one or more maps in response to user input and to provide a single suitable map to appropriate components.
- the route selection module 210 may include a user interaction module 475 to perform various functions in interacting with users.
- the route selection module 210 may include other components to perform functions or to gather or provide information in order to assist a user in selecting a route to be traveled.
- the route selection system 200 shown in FIG. 2 includes several components. Route selection systems may include a greater or lesser number of components. For example, any combination of the noted modules may be present in a given embodiment. In route selection system embodiments, the functions performed by multiple components in the route selection system 200 discussed herein may be combined into fewer components, such as one component. For example, the multiple functions performed by the parameter creation module 245 and the iteration module 265 discussed herein may be performed by a single component. In some route selection system embodiments, the functions performed by one component in the route selection system 200 discussed herein may be performed by multiple components.
- the multiple functions of the display module 260 discussed herein may be performed by, e.g., a route display component, a tracing feedback component, and other miscellaneous components.
- Some route selection system embodiments may include additional components to provide additional functionality.
- a component may be provided that is dedicated to maintaining journals, workout plans, travel itineraries, and/or other miscellaneous information.
- Components of route selection systems may perform the functions discussed herein in various ways. The ways by which the components of the route selection system 200 discussed herein are provided only for illustration.
- FIG. 3 shows the route selection system 200 of FIG. 2 with the user interaction module 475 shown in greater detail.
- the user interaction module 475 may include multiple components to receive input provided by users, to direct requests received from users to the proper component(s) of the route selection system 200 , to receive responsive displays from the display module 260 , to perform various calculations, to provide the displays to the user, and/or to perform various additional functions.
- the user interaction module 475 may be responsible for receiving and processing various requests provided by the user from the computer 205 via an interface 480 .
- the interaction module 475 may receive requests from the computer 205 at a request distribution module 485 .
- the request distribution module 485 may assess which of multiple components would be equipped to respond to the user's request. For example, if the user requests routes based on entered parameters, the request distribution module 485 may provide the request to the parameter creation module 245 . If the user requests a previously stored route, the parameter distribution module 485 may provide the request to the stored route module 255 . If the user requests to trace a route, the parameter distribution module 485 may provide the request to the trace creation module 250 . The request distribution module 485 may provide the request to other components if such components are equipped to play a role in providing responsive information.
- FIG. 4 shows the route selection system 200 of FIG. 2 with the parameter creation module 245 shown in greater detail.
- the parameter creation module 245 may include multiple components to generate one or more routes based on parameters provided by a user.
- the parameter creation module 245 may be operable to assess the parameters entered by the user to determine whether they are sufficient-to allow the route selection system 200 to function.
- the parameter creation module 245 may receive parameters from the user interaction module 475 at a processor 285 through an interface 280 . Such parameters may include a variety of items related to a user's preferences in choosing a route.
- parameters/criteria include starting location, ending location, distance, amount of time, travel surface type (e.g., road, sidewalk, unpaved trail, etc.), number of calories to be burned, extent of elevation change (e.g., flat, hilly, total elevation change over route, etc.), pace (e.g., 7-minute miles), rate of speed, population density (e.g., big-city streets or country roads), lighting (e.g., lit or unlit), landmarks, and/or other parameters that may impact route selection.
- the processor 285 may determine whether the parameters entered provide enough information to enable the map retrieving module 275 to retrieve a map, e.g., from the map application 220 or to enable the processor 285 to select a route.
- the processor 285 may cause a notification to be displayed to the user, requesting additional information. For example, if the parameters included only distance, the processor 285 may cause a notification to be displayed to the user, requesting information such as starting location or ending location. If the processor 285 determines that the parameters entered do not provide enough information to enable processor 285 to select a route, the processor 285 may cause a notification to be displayed to the user, requesting additional information. For example, if the parameters included only a desired number of calories to be burned, the processor 285 may cause a notification to be displayed to the user, requesting information such as the user's weight.
- the processor 285 may provide such parameters to the map retrieving module 275 .
- the map retrieving module 275 may then retrieve a suitable map from, e.g., the map application 220 and provide the map to the iteration module 265 .
- FIG. 5 shows the route selection system 200 of FIG. 2 with the map retrieving module 275 shown in greater detail.
- the map retrieving module 275 may include multiple components to retrieve one or more maps in response to user input, to co-register multiple maps into one suitable map if necessary, and to provide the suitable map to appropriate components.
- the term “maps,” as used herein, is to be interpreted broadly and should encompass traditional maps, satellite photographs, hybrids (i.e., traditional maps shown in conjunction with satellite photographs), and other similar items. Commonly, the map will include some visual representation (a drawing, image, etc.) of a geographic area.
- the map retrieving module 275 may be operable to retrieve one or more maps.
- the map retrieving module 275 may receive parameters from the parameter creation module 245 at a processor 315 .
- the processor 315 may provide the parameters to a stored map retriever 320 , which may search for a map in a map repository 325 based on the parameters. If the stored map retriever 320 is able to find a suitable map in the map repository 325 , the stored map retriever 320 may provide the map to the processor 315 .
- the processor 315 may analyze the map to determine whether the map is indeed suitable. If the processor 315 determines that the map is suitable, the processor 315 may provide the map to a communication component 330 .
- the processor 315 may notify the stored map retriever 320 why the map is unsuitable and instruct the stored map retriever 320 to further search the map repository 325 .
- the stored map retriever 320 may be unable to find a suitable map in the map. repository 325 . In such instances, the stored map retriever 325 may so notify the processor 315 .
- the processor 315 may determine whether to transmit a request for a suitable map to an external application, such as map application 220 (e.g., a mapping web page). The processor 315 may instruct communication component 330 to transmit a request to the map application 220 .
- map application 220 e.g., a mapping web page
- the communication component 330 may submit parameters to one or more external applications, possibly including the map application 220 , through an interface 335 .
- the communication component 330 may then receive one or more maps from the external application through the interface 335 (such as by downloading, or linking to, the one or more maps of the external application(s));
- the communications component 330 may be responsible for providing a single suitable map to one or more components, such as the iteration module 265 . If multiple maps are received by the communication component 330 , the communication component 330 may provide the maps to a co-registration module 340 .
- the co-registration module 340 may co-register the multiple maps, overlaying the maps on top of one another such that a real-world location would be displayed in the same spot on a screen for each of the maps. Examples of when multiple maps may be co-registered include situations in which a user would like to see weather information (e.g., wind, temperature, rain, humidity, etc.) and road construction information for a selected route.
- weather information e.g., wind, temperature, rain, humidity, etc.
- the communication component 330 may retrieve a map having the weather information from one external application and a map having the road construction information from a second external application.
- the communication component 330 may provide the two maps to the co-registration module 340 for co-registration.
- the co-registration module 340 may provide the co-registered map to the communication component 330 .
- the communication component 330 may receive a suitable map from the stored map retriever 320 , from an external application via the interface 335 , from the co-registration module 340 , or from other sources.
- the communication component 330 may provide the suitable map to one or more components, such as the iteration module 265 .
- a time-animated map showing one or more remotes and the weather changes forecast for such route(s) over time.
- the operator can plan a 2-hour jogging route, and the route can be animated (optionally based on a predicted running rate) so that the runner's location as a function of time is shown while at the same time, the forecasted weather changes are simultaneously shown as a function of time.
- the map retrieving module 275 shown in FIG. 5 includes multiple components. Components designed to retrieve one or more maps in response to user input, to co-register multiple maps into one suitable map if necessary, and to provide the suitable map to appropriate components may include a greater or lesser number of components. In map retrieving module embodiments, the functions performed by multiple components in the map retrieving module 275 discussed herein may be combined into fewer components, such as one component. For example, the multiple functions performed by the processor 315 and communication component 330 discussed herein may be performed by a single component. In some map retrieving module embodiments, the functions performed by one component in the map retrieving module 275 discussed herein may be performed by multiple components.
- the multiple functions of the processor 315 discussed herein may be performed by, e.g., a component dedicated to communicating with various other components, a component dedicated to performing calculations, and other miscellaneous components.
- Some map retrieving module embodiments may include additional components to provide additional functionality.
- a component may be provided that is dedicated to selecting from among multiple external map applications based on preferences expressed by a user.
- Components of map retrieving modules may perform the functions discussed herein in various ways. The ways by which the components of the map retrieving module 275 discussed herein are provided only for illustration.
- the parameter creation module 245 may retrieve information related to the map's legend from the iteration module 265 .
- the processor 285 of the parameter creation module 245 may instruct a legend retriever 290 to retrieve such information from the iteration module 265 .
- Such information may include a ratio of displayed distance to real-life distance.
- FIG. 6 shows the route selection system 200 of FIG. 2 with the iteration module 265 shown in greater detail.
- the iteration module 265 may receive a map from the map retrieving module 275 .
- the iteration module 265 may receive the map at a map handling module 345 via an interface 310 .
- the iteration module 265 may receive a request for information related to the map's legend from the parameter creation module 245 at a request handling module 350 via the interface 310 .
- the request handling module 350 may retrieve responsive information from the map in the map handling module 345 .
- the request handling module 350 may transmit responsive information related to the map's legend to the parameter creation module 245 via the interface 310 .
- the parameter creation module 245 may be operable to retrieve information related to the map's legend, to perform various calculations based on user-entered parameters, and to provide criteria to the iteration module 265 to allow the iteration module 265 to select one or more routes.
- the parameter creation module 245 may receive information related to the map's legend from the iteration module 265 at the legend retriever 290 via the interface 280 .
- the legend retriever 290 may provide the information related to the map's legend to the processor 285 .
- the processor 285 may instruct an equation retriever 295 to retrieve a suitable equation from an equation repository 300 .
- the processor 285 may instruct the equation retriever 295 to select the following equation from the equation repository 300 : Real-life distance is equal to time duration divided by rate of speed. Using the information related to the map's legend and the equation retrieved from the equation repository 300 , the processor 285 may calculate a rough line length. Using the parameters provided in the example above and the corresponding equation, along with legend-related information of, e.g., one inch equals 0.5 mile, the processor 285 would calculate a rough line length of approximately 12.9 inches. The parameter creation module 245 may provide the rough line length to the iteration module 265 .
- the parameter creation module 245 may provide additional parameters to the iteration module 265 that may enable the iteration module 265 to focus on a portion of the selected map.
- map focusing criteria may include starting location, ending location, a landmark to be encountered at a particular point (e.g., a water break five miles into the travel), a desired travel surface, and/or other map focusing criteria.
- certain parameters e.g., a desired amount of elevation change
- the parameter creation module 245 may provide elevation change criteria to the iteration module 265 .
- certain parameters are entered (e.g., a desired amount of calories to be burned)
- the parameter creation module may provide calorie criteria to the iteration module 265 .
- the calorie criteria may be a function of the route's distance, the person's weight, and the route's elevation change. In some embodiments, the calorie criteria may be a function of the weather (e.g., a traveler may tend to burn more calories on a hot, humid day than on a cool, brez day).
- the information provided by the parameter creation module 245 to the iteration module 265 may allow the iteration module 265 to select one or more routes.
- the iteration module 265 may assist the parameter creation module 245 in generating a route corresponding to parameters provided by a user.
- the iteration module 265 may receive the rough line length, the map focusing criteria, the elevation change criteria, and/or the calorie criteria from the parameter creation module 245 at a route selector 305 via the interface 310 .
- the route selector 305 may be capable of selecting a list of potential routes.
- the route selector 305 may submit a request to the map handling module 345 for a list of routes based on the rough line length, the map focusing criteria, the elevation change criteria, and/or the calorie criteria.
- the map handling module 345 may select all routes on the map that have a length approximately equal to the rough line length, that satisfy map focusing criteria, that satisfy the elevation change criteria, and/or that satisfy the calorie criteria.
- the map handling module 345 may provide the route selector 305 with a list of potential routes along with verification information related to the rough line length and/or the criteria provided by the parameter creation module 245 . If the map handling module 345 is unable to find any such routes, the map handling module 345 may so notify the route selector 305 .
- the route selector 305 may provide either a notification that no routes were found or the list of potential routes and corresponding verification information to the parameter creation module 245 via the interface 310 .
- the parameter creation module 245 may be responsible for verifying that the routes selected by the iteration module 265 do indeed meet all of the user parameters.
- the parameter creation module 245 may receive the list of potential routes and corresponding verification information from the iteration module 265 at the processor 285 via the interface 280 .
- the processor 285 may determine which of the potential routes satisfy all the parameters entered by the user.
- the processor 285 may provide the iteration module 265 , via the interface 280 , with a list of verified routes and may instruct the iteration module 265 to provide the map and the routes to the display module 260 for display.
- the processor 285 may instruct the iteration module 265 to provide the map and the routes to the stored route module 255 for storage.
- the parameter creation module 245 shown in FIG. 4 includes multiple components. Modules designed to generate one or more routes based on parameters provided by a user may include a greater or lesser number of components.
- the functions performed by multiple components in the parameter creation module 245 discussed herein may be combined into fewer components, such as one component.
- the multiple functions performed by the equation retriever 295 and the legend retriever 290 discussed herein may be performed by a single retriever component.
- the functions performed by one component in the parameter creation module 245 discussed herein may be performed by multiple components.
- the multiple functions of the processor 285 discussed herein may be performed by, e.g., an external communication component, an internal communication component, a calculation component, a verification component, and/or other miscellaneous components.
- Some parameter creation module embodiments may include additional components to provide additional functionality.
- one or more components may be provided that are dedicated to handling and analyzing maps, or performing the functions of the iteration module 265 as discussed herein.
- Components of parameter creation modules may perform the functions discussed herein in various ways. The ways by which the components of the parameter creation module 245 are discussed herein are provided only for illustration.
- the iteration module 265 may receive a list of verified routes and may provide those verified routes to components per instructions received from the parameter creation module 245 .
- the iteration module 265 may receive the list of verified routes and the instructions to provide the verified routes at the route selector 305 and the instructions to provide the map at the map handling module 345 via the interface 310 .
- the route selector 305 may provide the verified routes to the display module 260 for display and to the stored route module 255 for storage.
- the map handling module 345 may provide the map to the display module 260 for display and to the stored route module 255 for storage.
- the iteration module 265 shown in FIG. 6 includes multiple components. Iteration modules 265 may include a greater or lesser number of components. In iteration module embodiments, the functions performed by multiple components in the iteration module 265 discussed herein may be combined into fewer components, such as one component. For example, the multiple functions performed by the map handling module 345 and the route selector 305 discussed herein may be performed by a single component dedicated to handling and analyzing maps. In some iteration module embodiments, the functions performed by one component in the iteration module 265 discussed herein may be performed by multiple components.
- the multiple functions of the route selector 305 discussed herein may be performed by, e.g., a component for analyzing line length, a component for analyzing map focusing criteria, a component for analyzing elevation change criteria, a component for analyzing calorie criteria, and/or other miscellaneous components.
- Some iteration module embodiments may include additional components to provide additional functionality.
- a component may be provided that is dedicated to receiving parameters from users, performing calculations, and/or performing other functions discussed in connection with the parameter creation module 245 herein.
- Components of iteration modules may perform the functions discussed herein in various ways. The ways by which the components of the iteration module 265 discussed herein are provided only for illustration.
- FIGS. 1B-1C may include a display 135 , which may include a map 137 , a key 139 , and route selection mode icons 141 , 143 , 145 , similar to those of FIG. 1A .
- the plan route icon 141 may be highlighted to indicate that the user has chosen to select a route by entering one or more parameters.
- FIG. 1B shows the display 135 before the user has entered any parameters.
- the display 135 may include a route criteria drop down menu 147 . In this exemplary embodiment, the user may select from four different types of route criteria: calories burned, distance, time, and speed.
- the display may include a preferred path drop down menu 149 .
- the user may select from three different types of preferred paths: major intersections, back roads, and no roads.
- the display 135 may include a counter 151 to indicate the distance of one or more selected paths. As shown, the counter 151 displays path distance in miles, but the counter 151 may display path distance in any suitable unit of measurement (kilometers, meters, feet, yards, etc.). Because FIG. 1B shows the display 135 before the user has entered any parameters, the counter 151 may display a distance of 0.0 miles.
- FIG. 1C shows the display 135 after the user has entered parameters.
- the route criteria drop down menu 147 the user has selected distance and has indicated a distance of 3.0 miles.
- the preferred path drop down menu 149 the user has selected major intersections. In some instances, the user may select from either the route criteria drop down menu 147 or the preferred path drop down menu 149 .
- a system similar to that discussed in connection with FIGS. 4-6 may display a route 153 .
- the route 153 may include a start icon 155 , a stop icon 157 , mile markers 159 , and direction indicators 161 .
- the counter 151 may display that the route 153 has a distance of 3.0 miles.
- the user may manipulate the displayed route 153 in various ways.
- the counter 151 may display the distance of the route 153 in real time during such manipulations (i.e., the distance displayed changes as the route changes).
- the user may memorize the route 153 and then go travel it (e.g., by running).
- the user may print the route 153 and bring it while traveling.
- the user may download the route 153 to, e.g., an mp3 player or another portable device for review while traveling.
- the route 153 may zoom in and out with the map, thereby allowing the user to view the route 153 in various degrees of detail.
- the display 135 may provide textual instructions corresponding to the route 153 , allowing users to travel the route 153 by referring to the displayed map and/or to the textual instructions.
- FIG. 7 shows the route selection system 200 of FIG. 2 with the stored route module 255 shown in greater detail.
- the stored route module 255 may include multiple components to store newly created routes in the memory of the route selection module 210 and to provide a route that has been stored in response to user requests.
- the stored route module 255 may receive maps and routes corresponding to newly created routes at an indexing module 355 via an interface 360 .
- the indexing module 355 may store the newly created routes in a route repository 365 according to criteria such as, e.g., date, length, starting location, weather conditions, time of day, etc.
- the routes stored in the route repository 365 may be available to be retrieved by users for subsequent use.
- the route selection system 210 may attempt to retrieve a route from the stored route module 255 before creating a route via the parameter creation module 245 .
- the stored route module 255 may receive parameters from the user interaction module 475 at a route retrieving module 370 via the interface 360 .
- the route retrieving module 370 may retrieve routes from the route repository 365 that satisfy all the parameters entered by the user.
- the route retrieving module 370 may provide the routes (including corresponding maps) to the display module 260 for display.
- the route selection system 200 attempts to retrieve a route from the stored route module 255 before creating a route via the parameter creation module 245
- the stored route module 255 may notify the parameter creation module 245 whether any routes were retrieved from storage that satisfy all the parameters entered by the user. If no routes were retrieved from storage, the parameter creation module 245 may proceed to generate one or more routes (as discussed above). If one or more routes were retrieved from storage, the route selection module 210 may prevent the parameter creation module 245 from generating routes.
- the stored route module 255 shown in FIG. 7 includes multiple components.
- Stored route module embodiments may include a greater or lesser number of components.
- the functions performed by multiple components in the stored route module 255 discussed herein may be combined into fewer components, such as one component.
- the multiple functions performed by the route retrieving module 370 and the indexing module 355 discussed herein may be performed by a single component that is capable of both storing and retrieving routes.
- the functions performed by one component in the stored route module 255 discussed herein may be performed by multiple components.
- the multiple functions of the route retrieving module 370 discussed herein may be performed by, e.g., a component dedicated to receiving parameters, a component dedicated to searching storage, and other miscellaneous components.
- Some stored route module embodiments may include additional components to provide additional functionality.
- components may be provided that allow for searching other computers in a network for stored routes.
- Components of stored route modules may perform the functions discussed herein in various ways. The ways by which the components of the stored route module 255 discussed herein are provided only for illustration.
- FIGS. 1D-1E may include a display 163 , which may include a map 165 , a key 167 , and route selection mode icons 169 , 171 , 173 , similar to those of FIG. 1A .
- the my route icon 171 may be highlighted to indicate that the user has chosen to select a previously stored route.
- FIG. 1D shows the display 163 before the user has selected a previously stored route.
- the display 163 may include a my routes drop down menu 175 .
- the user may select previously stored routes ten different ways: by route name, by date, by calories burned, by distance, by time, by speed, by terrain, by major interstates, by lighted paths, by back roads, and by no roads.
- users may select previously stored routes in a greater or lesser number of ways (e.g. any subgroup of the 10 noted ways may be available).
- the display 135 may include a counter 177 to indicate the distance of one or more previously stored routes. As shown, the counter 177 displays path distance in miles, but the counter 177 may display path distance in any suitable unit of measurement. Because FIG. 1D shows the display 163 before the user has entered any parameters, the counter 177 may display a distance of 0.0 miles.
- FIG. 1E shows the display 163 after the user has selected a previously stored route. From the my routes drop down menu 175 , the user has selected a route dated Oct. 20, 2004. The date may correspond to the date the route was first created, last modified, or other significant date. Per the user's selection, a system similar to that discussed in connection with FIG. 7 may display a route 179 .
- the route 179 may include a start icon 181 , a stop icon 183 , mile markers 185 , and direction indicators 187 .
- the counter 177 may display that the route 179 has a distance of 3.0 miles.
- the user may memorize the route 179 and then go travel it (e.g., by running). In some embodiments, the user may print the route 179 and bring it while traveling.
- the user may download the route 179 to, e.g., an mp3 player or another portable device for review while traveling.
- the route 153 may zoom in and out with the map, thereby allowing the user to view the route 153 in various degrees of detail.
- the display 135 may provide textual instructions corresponding to the route 153 , allowing users to travel the route 153 by referring to the displayed map and/or to the textual instructions.
- a user may wish to modify a previously stored route.
- the display 163 of FIG. 1E may include an erase icon 189 and a resume icon 191 .
- the user may modify the route 179 by actuating the erase icon 189 .
- the user may then provide input (e.g., by entering parameters or by tracing) indicating which portion(s) of the route 179 should be erased.
- the user may then actuate the resume icon 191 to further edit the route 179 by, e.g., drawing a new path to connect segments of the route that were affected by the erasure.
- the user may actuate the resume icon 191 to finalize the route 179 for memorization, for printing, or for download.
- An example of the functionality associated with modifying a displayed route is discussed in greater detail in connection with FIGS. 1G-1H , and 3 .
- An exemplary system equipped with editing functionality is discussed in connection with FIG. 3 .
- FIG. 8 shows the route selection system 200 of FIG. 2 with the trace creation module 250 shown in greater detail.
- the trace creation module 250 may include multiple components to allow a user to generate a route by providing input through tracing, for example, a stylet or a mouse on a screen of the computer 205 .
- the trace creation module 250 may receive parameters from the user interaction module 475 at a processor 395 through an interface 400 .
- the parameters may be similar to those discussed in connection with FIG. 4 .
- the parameters may include an indication that the user wishes to generate a route via tracing.
- the processor 395 may determine whether the parameters entered provide enough information to enable the map retrieving module 275 to retrieve a map from the map application 220 .
- the processor 395 may cause a notification to be displayed to the user, requesting additional information. For example, if the parameters included only distance, the processor 395 may cause a notification to be displayed to the user, requesting information such as starting location or ending location. If the processor 395 determines that the parameters entered provide enough information to enable the map retrieving module 275 to retrieve a map, the processor 395 may provide such parameters to the map retrieving module 275 via the interface 400 .
- the map retrieving module 275 may then retrieve a suitable map from, e.g., the map application 220 in a manner similar to that discussed in connection with FIG. 5 .
- the trace creation module 250 may receive the map from the map application 220 at a co-registration module 405 via the interface.
- the co-registration module 405 of the trace creation module 250 may be designed to provide a traceable map to the display module 260 to allow users to generate a route via tracing.
- the processor 395 may receive parameters that include an indication that the user wishes to generate a route via tracing.
- the processor 395 may instruct a trace plot retriever 410 to retrieve a trace plot from a trace plot repository 415 .
- a trace plot may be a plot that registers multiple points according to X-Y coordinates in response to tracing activity by a user.
- the trace plot retriever 410 may retrieve a trace plot from the trace plot repository 415 and may provide the trace plot to the co-registration module 405 .
- the co-registration module 405 may co-register the map received from the map application 220 via the interface 400 and the trace plot received from the trace plot retriever 410 , overlaying the trace plot on top of the map to create a traceable map.
- the co-registration module 405 may provide the traceable map to the display module 260 , via the interface 400 , for display to allow the user to generate a route via tracing.
- the trace creation module 250 shown in FIG. 8 includes multiple components. Modules designed to allow a user to generate a route by providing input through tracing, for example, a stylet or a mouse on a screen of the computer 205 may include a greater or lesser number of components. In trace creation module embodiments, the functions performed by multiple components in the trace creation module 250 discussed herein may be combined into fewer components, such as one component. For example, the multiple functions performed by the trace plot retriever 410 and the co-registration module discussed herein may be performed by a single component dedicated to retrieving traceable maps. In some trace creation module embodiments, the functions performed by one component in the trace creation module 255 discussed herein may be performed by multiple components.
- the multiple functions of the co-registration module 405 discussed herein may be performed by, e.g., a component dedicated to creating traceable maps, a component dedicated to handling and responding to internal communications, and/or other miscellaneous components.
- Some trace creation module embodiments may include additional components to provide additional functionality.
- components may be provided that allow the trace creation module to interact directly with users in receive input and provide real-time feedback.
- Components of trace creation modules may perform the functions discussed herein in various ways. The ways by which the components of the trace creation module 250 discussed herein are provided only for illustration.
- FIG. 9 shows the route selection system 200 of FIG. 2 with the driving directions module 270 shown in greater detail.
- the driving directions module 270 may include multiple components to provide driving directions corresponding to the selected route. Under some circumstances, a user may wish to obtain driving directions that correspond to one or more routes. For example, a user may have enjoyed a route that he or she previously jogged, hiked, biked, etc., and may wish to drive as closely as possible along that route. Other examples involve driving to the starting location of a route to drop someone off and/or driving to the ending location of a route to pick someone up.
- the driving directions module 270 may receive a request from the user interaction module 475 to provide driving directions that correspond to one or more routes at a request module 375 via an interface 380 .
- the request may include location information, such as the location from which the user wishes to drive, along with information concerning the route, such as the ending location. In some situations, the request may include only information concerning the route (e.g., the starting location, the ending location, and/or one or more intermediate locations).
- the request module 375 may instruct a route retriever 385 to retrieve a route from, e.g., the display module 260 or the stored route module 255 , that corresponds to the user's request.
- the route retriever 385 may receive the route (including the corresponding map) in response and may provide the route to the request module 375 .
- the request module 375 may assess what information is needed to formulate a request to an external application, such as map application 220 .
- the request module 375 may use information provided along with the user request to formulate a driving directions request (e.g., the location from which the user wishes to drive).
- the request module 375 may instruct a point extracting module 390 to extract information from the route/map combination (e.g., an intermediate location).
- the request module 375 may formulate a driving directions request based on the extracted information or the combined extracted information and user-provided information.
- the request module 375 may transmit the driving directions request to an external map application, such as map application 220 , via the interface 380 .
- the request module 375 may receive driving directions in response from the external application via the interface 380 .
- the request module 375 may provide the driving directions to the display module 260 for display.
- the driving directions module 270 may provide directions for forms of travel other than driving (e.g., hiking, biking, etc.) in a manner similar to that discussed herein. In such embodiments, the user may be able to obtain directions even if the desired destination is unreachable by driving on streets/highways/roads.
- the driving directions module 270 shown in FIG. 9 includes multiple components. Modules designed to provide driving directions corresponding to the selected route may include a greater or lesser number of components. In driving directions module embodiments, the functions performed by multiple components in the driving directions module 270 discussed herein may be combined into fewer components, such as one component. For example, the multiple functions performed by the route retriever 385 and the point extracting module 390 discussed herein may be performed by a single component designed to extract information from routes. In some driving directions module embodiments, the functions performed by one component in the driving directions module 270 discussed herein may be performed by multiple components.
- the multiple functions of the request module 375 discussed herein may be performed by, e.g., a component dedicated to handling and responding to internal requests, a component dedicated to communicating requests to external map applications, and other miscellaneous components.
- Some driving directions module embodiments may include additional components to provide additional functionality.
- a component may be provided that is dedicated to selecting from among multiple sets of driving directions received from external map applications based on user preferences.
- Components of driving directions modules may perform the functions discussed herein in various ways. The ways by which the components of the driving directions module 270 discussed herein are provided only for illustration.
- FIG. 10 shows the route selection system 200 of FIG. 2 with the display module 260 shown in greater detail.
- the display module 260 may include multiple components to collect various information from the components of the route selection module 210 and generate a display to be transmitted to and displayed on the computer 205 .
- the display module 260 may include an information gathering module 465 , which may collect information from one or more components of the route selection module 210 , depending on the user's request and/or on other factors.
- the information gathering module 465 may receive a suitable map from the iteration module 265 , as discussed in connection with FIG. 6 , at a map collector 420 via an interface 425 .
- the information gathering module 465 may receive weather information from an external application such as the weather application 225 at a weather collector 435 via the interface 425 .
- the information gathering module 465 may receive road construction information from an external application such as the road construction application 230 at a road construction collector 440 via the interface 425 .
- the information gathering module 465 may receive other miscellaneous information from various applications at a miscellany collector 445 via the interface 425 . Examples of such miscellaneous information include information related to training logs, dietary logs, and the like.
- the information gathering module 465 may receive various routes from one or more components of the route selection module 210 at a route collector 430 via the interface 425 , depending on the user's request and/or on other factors.
- the route collector 430 may collect verified routes from the iteration module 265 and/or the parameter creation module 245 via the interface 425 , as discussed in connection with FIGS. 4 and 6 .
- the route collector 430 may collect stored routes from the stored route module 255 , as discussed in connection with FIG. 7 .
- the route collector 430 may collect routes from multiple sources.
- the display module 260 may generate a display to be displayed on the computer 205 .
- the display module 260 may include a GUI retrieving module 450 , which may retrieve a graphical user interface from a GUI repository 455 that corresponds to parameters entered by the user.
- the display module 260 may include a display packaging module 460 , which may retrieve the graphical user interface from the GUI retrieving module 450 , the user-entered request from the user interaction module 475 , the information from the information gathering module 465 , and/or other information.
- the display packaging module 460 may create a display. In the display, one or more routes may be displayed.
- That path may be displayed in such a way as to indicate the multiple passes (e.g., by displaying the path in a different color than the rest of the route and/or by providing textual indication).
- the display packaging module 460 may provide the display to a display transmission module 470 , which may provide the display to the user interaction module 475 .
- the display module 260 shown in FIG. 10 includes multiple components. Modules designed to collect various information from components of the route selection module 210 and generate a display to be transmitted to and displayed on the computer 205 may include a greater or lesser number of components. In display module embodiments, the functions performed by multiple components in the display module 260 discussed herein may be combined into fewer components, such as one component. For example, the multiple functions performed by the weather collector 435 , the road construction collector 440 , and the miscellany collector 445 may be performed by a single component designed to collect information from external applications. In some display module embodiments, the functions performed by one component in the display module 260 discussed herein may be performed by multiple components.
- the multiple functions of the route collector 430 discussed herein may be performed by, e.g., a component dedicated to collecting verified routes, a component dedicated to collecting traceable maps, a component dedicated to collecting stored routes, and/or other miscellaneous components.
- Some display module embodiments may include additional components to provide additional functionality.
- a component may be provided that is dedicated to interfacing directly with users.
- Components of display modules may perform the functions discussed herein in various ways. The ways by which the components of the display module 260 discussed herein are provided only for illustration.
- the user interaction module 475 may provide responsive information to users at the computer 205 via the interface 480 .
- the user interaction module 475 may receive a display from the display module 260 at a display handling module 490 via the interface 480 .
- the display handling module 490 may verify that the display is indeed responsive to the request provided by the user.
- the display handling module 490 may provide the display to the computer 205 via the interface to be displayed for the user.
- the user interaction module 475 may provide additional assistance to the user in selecting a route. For instance, in the event the user request involves tracing a route, the user interaction module 475 may provide a traceable map to the computer 205 via the interface 480 for display to the user. The user may enter additional information, such as by tracing a route on the traceable map with a stylet, a mouse, or other suitable tracing instrument. Such information may be provided to the user interaction module 475 at a follow-up module 495 via the interface 480 . The follow-up module 495 may process that information, modify the display, and provide a modified display to the computer 205 for display to the user.
- the follow-up module 495 may include the traced route on the display and may calculate the distance and/or other characteristics of the traced route.
- the follow-up module 495 may provide a display that includes the traced route and the distance and/or other characteristics of the traced route in real time (i.e., as the user traces).
- the follow-up module 495 may provide a modified display that is based solely on the user's tracing. In such embodiments, the modified display may display the traced route exactly as the user traced it.
- the follow-up module 495 may provide a modified display that is based in part on the user's tracing and in part on other factors.
- the user may trace a route with a suitable tracing instrument and may also indicate that the displayed route should be, e.g., entirely on well-lighted sidewalks such that no point on the route strays more than 0.5 miles from the traced route.
- the follow-up module 495 may determine whether any routes satisfy the user-entered criteria and may modify the display to provide the responsive route if possible.
- the user may indicate the distance that the calculated route may stray from the traced route by tracing with a thicker line to indicate a greater stray distance and tracing with a thinner line to indicate a lesser stray distance.
- the other factors may include user-entered parameters.
- the user could enter a starting location and an ending location and then trace the route in between.
- the user could enter a starting location and trace the route, leaving the last point traced as the ending location.
- the user could enter starting and ending locations via tracing and then enter parameters to define a route between the starting and ending locations.
- the functionality of the follow-up module 495 may involve a user wishing to erase a portion of a route displayed.
- the user may provide an indication to the computer 205 that he/she wishes to erase a portion of a displayed route.
- the indication may be provided to the follow-up module 495 via the interface 480 .
- the user may provide to the computer 205 information specifying which portion of which route he/she wishes to erase.
- the user may provide such specifying information by entering parameters via a keyboard or other language-based input instrument.
- the user may provide such specifying information by tracing with a stylet, a mouse, or other suitable tracing instrument.
- the follow-up module 495 may receive such specifying information.
- the follow-up module 495 may process the specifying information, modify the display, and provide a modified display to the computer 205 for display to the user.
- the follow-up module 495 may include the modified route (i.e., the original route minus the erasure) on the display and may calculate the distance and/or other characteristics of the modified route.
- the follow-up module 495 may provide a display that includes the modified route and the distance and/or other characteristics of the modified route in real time.
- the follow-up module 495 may calculate the distance for two separate routes on the map at the same time.
- the functionality of the follow-up module 495 may involve a user wishing to view information corresponding to a portion of a route displayed.
- the user may provide an indication to the computer 205 that he/she wishes to view such information.
- the indication may be provided to the follow-up module 495 via the interface 480 .
- the user may provide information specifying the portion of the route that he/she wishes to know more about to the computer 205 .
- the user may provide such specifying information by entering parameters via a keyboard or other language-based input instrument.
- the user may provide such specifying information by tracing with a stylet, a mouse, or other suitable tracing instrument.
- the follow-up module 495 may receive such specifying information.
- the follow-up module 495 may process the specifying information, modify the display (e.g., by highlighting the selected portion), and provide a modified display to the computer 205 for display to the user.
- the follow-up module 495 may provide a display that includes the highlighted route and the distance and/or other characteristics of the highlighted route in real time (i.e., while the user is selecting the portion).
- the follow-up module 495 may calculate the distance for two separate routes on the map at the same time.
- the user interaction module 475 shown in FIG. 3 includes multiple components. Modules designed to perform various functions in interacting with users may include a greater or lesser number of components. In user interaction module embodiments, the functions performed by multiple components in the user interaction module 475 discussed herein may be combined into fewer components, such as one component. For example, the multiple functions performed by the display handling module 490 and the follow-up module 495 may be performed by a single component designed to provide displays to users that correspond to their requests. In some user interaction module embodiments, the functions performed by one component in the user interaction module 475 discussed herein may be performed by multiple components.
- the multiple functions of the follow-up module 495 discussed herein may be performed by, e.g., a component dedicated to handling erasures, a component dedicated to handling trace-only routes, a component dedicated to handling trace-plus-criteria routes, and/or other miscellaneous components.
- Some user interaction module embodiments may include additional components to provide additional functionality.
- a component may be provided that is dedicated to adding advertisements or other miscellaneous information to displays.
- Components of user interaction modules may perform the functions discussed herein in various ways. The ways by which the components of the user interaction module 475 discussed herein are provided only for illustration.
- FIGS. 1F-1H may include a display 500 , which may include a map 505 , a key 510 , and route selection mode icons 515 , 520 , 525 , similar to those of FIG. 1A .
- the draw route icon 525 may be highlighted to indicate that the user has chosen to select a route by tracing.
- FIG. 1F shows the display 500 , which may include a traced route 530 .
- the display 500 may include a counter 535 to indicate the distance of the traced route 530 .
- the counter 535 displays path distance in miles, but the counter 535 may display path distance in any suitable unit of measurement.
- the route 500 may include a start icon 540 , a stop icon 545 , mile markers 550 , and direction indicators 555 .
- the counter 535 may display that the traced route 530 has a distance of 3.0 miles.
- the counter 535 may display the distance of the traced route 530 as the user traces (i.e., in real time).
- the user may select a portion of a displayed route, and the selected portion may be highlighted in the display 500 . In such embodiments, multiple portions may be selected, and each portion may be highlighted in a different color.
- the display 500 may include multiple counters 535 , such as a counter for the entire route along with counters for each selected portion. In some embodiments, multiple routes may be displayed at the same time. In such embodiments, the display 500 may include an aggregate counter that may display the combined distance of all the displayed routes.
- the user may memorize the traced route 530 and then go travel it (e.g., by running). In some embodiments, the user may print the traced route 530 and bring it while traveling. In some embodiments, the user may download the traced route 530 to, e.g., an mp3 player for review while traveling.
- the route 153 when the user zooms in or out on the map, the route 153 may zoom in and out with the map, thereby allowing the user to view the route 153 in various degrees of detail.
- the display 135 may provide textual instructions corresponding to the route 153 , allowing users to travel the route 153 by referring to the displayed map and/or to the textual instructions.
- FIGS. 1G-1H show exemplary displays that may be used in connection with a system having editing functionality.
- the display 500 of FIGS. 1G-1H may include an erase icon 560 and a resume icon 565 .
- the user may modify the route 530 by actuating the erase icon 560 .
- the user may then provide input (e.g., by entering parameters or by tracing) indicating which portion(s) of the route 530 should be erased.
- FIG. 1G shows how this may result in a route portion 532 being highlighted in a different color. The distance of the route 530 without the route portion 532 may be reflected in the counter.
- 1H shows how the user may then actuate the resume icon 565 to further edit the route 530 by, e.g., drawing a new path to connect segments of the route that were affected by the erasure. This may result in an added portion 534 being displayed, along with a corresponding change in the distance displayed by the counter 535 .
- the user may actuate the resume icon 565 to finalize the route 530 for memorization, for printing, or for download (e.g., when the user erases a portion at the beginning or the end of a route 530 .
- An exemplary system equipped with editing functionality is discussed in connection with FIG. 3 .
- FIG. 11 provides a flow chart for an exemplary method ( 600 ) of assisting a user in selecting a route.
- the method ( 600 ) may include receiving a route request ( 605 ). Receiving a route request ( 605 ) may involve receiving any of the various route requests discussed herein or any other suitable route request.
- the route request may include map information. Such map information may include a starting point, an ending point, a landmark point, or combinations thereof.
- the route request may include route information. Such route information may include lighting criteria, travel surface criteria, population density criteria, distance criteria, speed criteria, calorie criteria, time criteria, elevation change criteria, landmark criteria, and combinations thereof.
- the method ( 600 ) may include retrieving a map ( 610 ).
- the method ( 600 ) may include identifying one or more potential routes ( 615 ). Identifying one or more potential routes ( 615 ) may be based on a first route information item (e.g., lighting criteria).
- the method ( 600 ) may include identifying one or more selected routes from the potential routes ( 620 ). Identifying one or more selected routes from the potential routes ( 620 ) may involve identifying which of the one or more potential routes satisfy a second route information item (e.g., travel surface criteria).
- the method ( 600 ) may include providing one or more selected routes on the map ( 625 ). Providing one or more selected routes on the map ( 625 ) may be based on the route information.
- the method ( 600 ) may include providing one or more selected routes and the map for display to the user ( 630 ).
- the method ( 600 ) may include providing selected route information for display to the user ( 632 ).
- Providing selected route information for display to the user ( 632 ) may include providing selected route information that corresponds to the one or more selected routes.
- the selected route information may include a distance of the one or more selected routes.
- the selected route information may include driving directions corresponding to the one or more selected routes.
- the method ( 600 ) may determine whether the user wishes to edit one or more of the selected routes ( 635 ).
- the method ( 600 ) may include receiving editing instructions ( 640 ).
- the editing instructions may be entered by the user.
- the method ( 600 ) may include modifying one or more selected routes ( 645 ). Modifying one or more selected routes ( 645 ) may be based on the editing instructions. Modifying one or more selected routes ( 645 ) may create one or more modified routes.
- the method ( 600 ) may include providing the one or more modified routes for display to the user ( 650 ).
- the method ( 600 ) discussed herein is for illustration only.
- the term “computer” means a device, or multiple devices working together, that accepts information (in the form of digitalized data) and manipulates it for some result based on a program or sequence of instructions on how the data is to be processed.
- a computer may also include the means for storing data for some necessary duration.
- implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof.
- ASICs application specific integrated circuits
- These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
- the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer.
- a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
- a keyboard and a pointing device e.g., a mouse or a trackball
- Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.
- the systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components.
- the components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a LAN, a WAN, and the Internet.
- the computing system can include clients and servers.
- a client and server are generally remote from each other and typically interact through a communication network.
- the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
Abstract
Description
- This document relates to providing routes, maps, and other information that correspond to preferences expressed by a user.
- There are millions of miles of paths in the United States. Such paths include roads, sidewalks, hiking trails, bike trails, and so on. Many of such paths are captured in various maps. Maps showing the streets/highways located in a given area are common. But maps showing paths like bike trails and hiking trails also exist in a variety of forms. Many people are familiar with paper maps, which have been available for many years. Relatively recently, electronic maps have emerged as a viable source for viewing several types of paths.
- People travel by a wide variety of means. Examples of such means include running, walking, hiking, biking, driving, and so on. Sometimes people travel for necessity, sometimes for physical fitness, and other times for recreation. Indeed, people travel for a whole host of additional reasons.
- People who travel, often consult maps. Sometimes, people consult maps before traveling in order to plan their travel routes. Sometimes, people consult maps after traveling in order to see where they have been and how far they have traveled. People can gain valuable information about their travel by consulting maps.
- In addition to maps, people often consult other sources of information in making travel plans.
- For example, people may seek information related to weather, road construction, landmarks, and various other items of information. To gather this other information, people may be required to consult several sources.
- In one aspect, the invention features a system for assisting a user in selecting a route. The system may include a request receiving module. The request receiving module may be configured to receive a route request including map information and route information entered by a user. The map information may be selected from the group consisting of a starting point, an ending point, a landmark point, and combinations thereof. The route information may be selected from the group consisting of (1) lighting criteria, (2) travel surface criteria, (3) population density criteria, (4) weather criteria, (5) distance criteria, (6) speed criteria, (7) calorie criteria, (8) time criteria, (9) elevation change criteria, (10) landmark criteria, and combinations thereof. In some cases, the route information may be selected from the group consisting of lighting criteria, weather criteria, distance criteria, speed criteria, and calorie criteria. In one group of embodiments, the route information may include at least one of (and/or is selected from the group consisting of) the above-noted items (1), (4), and (7). In other embodiments, the route information may include at least one of (and/or is selected from the group consisting of) items (2), (5), (6), (7), and (8). In some other groups of embodiments, the route information may include at least item (7). In another case, the route information may include at least one of (and/or is selected from the group consisting of) items (5), (6), (7), and (8). The system may include a map retrieving module that is configured to retrieve a map based on the map information. The system may include a route providing module that is configured to provide one or more selected routes on the map based on the route information. The system may include a display providing module to provide the one or more selected routes and the map for display to the user.
- In a second aspect, the invention features a computer-readable medium programmed with instructions for performing a method of assisting a user in selecting a route. The medium may comprise instructions for causing a programmable processor to receive a route request including map information and route information entered by a user. The medium may comprise instructions for causing a programmable processor to retrieve a map based on the map information. The medium may comprise instructions for causing a programmable processor to provide one or more selected routes on the map based on the route information. The medium may comprise instructions for causing a programmable processor to provide the one or more selected routes and the map for display to the user.
- In a third aspect, the invention features a system for providing users multiple route selection modes. The system may include a parameter module that is configured to generate one or more parameter-based routes based on one or more route parameters. The system may include a trace module that is configured to generate one or more traced routes based on input received via tracing an input instrument on a touch-sensitive screen. The system may include a storage module configured to retrieve one or more stored routes from a storage repository. The system may include a request processing module configured to receive a route request from a user and to provide the route request to at least one of the parameter module, the trace module, and the storage module that the request processing module determines is equipped to provide responsive information. In some embodiments, the system may include a display module that is configured to collect responsive information from the parameter module, the trace module, and/or the storage module, and to provide the responsive information to the user for display. In some embodiments, the system may include an editing module to allow the user to edit the responsive information after the display module provides the responsive information to the user for display.
- Implementations may include one or more of the following features. For example, a system may include an editing module to allow the user to edit the one or more selected routes after the display providing module provides the one or more selected routes and the map for display. Editing instructions may be entered by the user (e.g., via tracing an input instrument along a display, such as a touch-sensitive display). The one or more selected routes may be modified based on the editing instructions, thereby creating one or more modified routes. The one or more modified routes and the map may be provided for display to the user. Selected route information corresponding to the one or more selected routes may be provided. The selected route information may include a distance of the one or more selected routes. The selected route information may include traveling directions corresponding to the one or more selected routes. The route providing module may comprise a route selection module configured to identify one or more potential routes may be identified based on a first route information item, and then one or more selected routes may be identified by identifying which of the one or more potential routes satisfy a second route information item.
- Embodiments of the present invention may have one or more of the following advantages. In some embodiments, users may be able to learn precise distance calculations of a route before or after traveling the route. In some embodiments, users may be able plan routes based on a multitude of criteria. In some embodiments, users may be able to download selected routes to, e.g., an mp3 player. In some embodiments, users will have flexibility to use a stylet or mouse to draw, erase, or edit routes while viewing the exact distance of the route in real time.
- In any aspect or embodiment of the present invention, the route may include at least one portion that does not follow the highway, road, or street (e.g., a portion of the route can optionally follow a path that is an automobile-prohibited path, and/or an unpaved path).
- In certain embodiments, the invention may comprise a system (optionally a website) adapted to select a display on a map one or more routes based on input from operator. The input preferably includes map information selected from the group consisting of a starting point, an ending point, a landmark point (past which the route is to extend), together with route information selected from items (1) through (10) above. Optionally, the input route information includes at least item (7). In some cases, the input route information includes at least one of (and/or is selected from the group consisting of) items (2), (5), (6), (7), and (8), or items (1), (4), and (7), or items (5), (6),(7), and (8). In certain related method embodiments, and operator inputs the noted items and receives one or more routes displayed on a screen (e.g., a monitor) in response to entering the noted input.
-
FIG. 1A shows an exemplary display. -
FIG. 1B shows an exemplary display. -
FIG. 1C shows an exemplary display. -
FIG. 1D shows an exemplary display. -
FIG. 1E shows an exemplary display. -
FIG. 1F shows an exemplary display. -
FIG. 1G shows an exemplary display. -
FIG. 1H shows an exemplary display. -
FIG. 2 shows a block diagram of an exemplary route selection system. -
FIG. 3 is a block diagram of the exemplary route selection system ofFIG. 2 , with one component (a user interaction module) shown in greater detail. -
FIG. 4 is a block diagram of the exemplary route selection system ofFIG. 2 , with one component (a parameter creation module) shown in greater detail. -
FIG. 5 is a block diagram of the exemplary route selection system ofFIG. 2 , with one component (a map retrieving module) shown in greater detail. -
FIG. 6 is a block diagram of the exemplary route selection system ofFIG. 2 , with one component (an iteration module) shown in greater detail. -
FIG. 7 is a block diagram of the exemplary route selection system ofFIG. 2 , with one component (a stored route module) shown in greater detail. -
FIG. 8 is a block diagram of the exemplary route selection system ofFIG. 2 , with one component (a trace creation module) shown in greater detail. -
FIG. 9 is a block diagram of the exemplary route selection system ofFIG. 2 , with one component (a driving directions module) shown in greater detail. -
FIG. 10 is a block diagram of the exemplary route selection system ofFIG. 2 , with one component (a display module) shown in greater detail. -
FIG. 11 provides a flow chart for an exemplary method of assisting a user in selecting a route. -
FIG. 1A shows anexemplary display 100 that may be implemented in some embodiments of the present invention. In some embodiments, thedisplay 100 may be the first page a user encounters. In some embodiments, thedisplay 100 may be the home page of a website. Thedisplay 100 may include amap 105. Themap 105 may include various kinds of information, such as geopolitical borders, topographical information, highways, updated weather for a selected area, or any other kind of information typically provided by maps. Thedisplay 100 may include a key 110 to provide information associated with themap 105. The key 110 may include explanations of various icons displayed on themap 105. Examples of such icons include a start icon, a stop icon, a mile marker icon, and/or a direction icon. Thedisplay 100 may include one or more input fields 115. The input fields 115 may allow users to retrieve appropriately focused maps by entering corresponding information. Examples of input fields 115 may include fields for street addresses, cities, states, and/or zip codes. In some embodiments, other methods for retrieving appropriately focused maps may exist. For example, in some embodiments, a user may select an area of interest from themap 105 by clicking and dragging the start point (as indicated by the icon noted in the key 110) to a specific area of the map using an input device such as a mouse or a stylus. - The
display 100 ofFIG. 1A may include one or more icons that correspond to route selection modes. Thedisplay 100 may include a “plan route”icon 120. Selecting the “plan route”icon 120 may allow a user to select a route by entering various parameters and choosing between displayed routes that satisfy one or more of those parameters. The exemplary system discussed in connection withFIGS. 4-6 may assist users in selecting routes in this manner. Thedisplay 100 may include a “my routes”icon 125. Selecting the “my routes”icon 125 may allow a user to select a previously stored route. The exemplary system discussed in connection withFIG. 7 may assist users in selecting routes in this manner. The display may include a “draw route”icon 130. The “draw route” icon may allow a user to select a route by providing input through tracing, for example, a stylet or a mouse along thedisplay 100. (It will be appreciated that the mouse may actually be moved along a nearby surface, such as a mouse pad, while a mouse-position indicator moves along the display according to the manner in which an operator physically moves the mouse. The trackball, trackpad, trackbutton, or another cursor-control/tracing device can optionally be used in a similar way.) In some embodiments, the exact distance of a displayed route or part of a route may be displayed on a constant basis. In one embodiment, as a route is being drawn, a distance is displayed, and this distance increases as more and more of the route is drawn. For example, as a tracing step is carried out, a visual indicator (a dotted line, solid line, etc.) showing the traced the path can be shown on the display, and as the line or other indicator gets longer, the displayed distance increases in a corresponding manner. The exemplary system discussed in connection withFIGS. 3 and 8 may assist users in selecting routes in a “draw route” manner. -
FIG. 2 shows an exemplaryroute selection system 200 to assist a user in selecting a route to be traveled by, e.g., running, walking, hiking, biking, driving, and so on. Theroute selection system 200 may include multiple components to assist in performing this function. Theroute selection system 200 may include acomputer 205. Thecomputer 205 may allow a user to interact with theroute selection system 200. Theroute selection system 200 may include multiple computers, allowing multiple users to interact with theroute selection system 200. Users may provide input to thecomputer 205 by a keyboard and/or a pointing device (e.g., a mouse or a trackball). In some embodiments, users may provide input to thecomputer 205 by other means, such as acoustic, speech, or tactile input. - The
route selection system 200 may include aroute selection module 210 to retrieve maps, perform calculations, create displays, and/or perform several other functions in providing assistance to users in selecting routes. Theroute selection module 210 may include aninterface 215 to handle at least some of the communication of theroute selection module 210. For example, theroute selection module 210 may communicate with thecomputer 205 via theinterface 215. Theroute selection module 210 may communicate with other applications via theinterface 215. Such applications may include amap application 220, aweather application 225, aroad construction application 230, and othermiscellaneous applications 235. Theroute selection module 210 may communicate withsuch applications route selection module 210 may communicate withsuch applications network 240. Thenetwork 240 may be, for example, the Internet. Thus, one or more of the noted application types 220, 225, 230, 235 may be a web page (e.g., a mapping web page, a weather forecasting web page, a road construction status web page, etc.). - Additional components may be included in the
route selection module 210. For example, theroute selection module 210 may include aparameter creation module 245 to generate one or more routes based on parameters provided by a user. Theroute selection module 210 may include atrace creation module 250 to allow a user to generate a route by providing input through tracing, for example, a stylet or a mouse on a screen of thecomputer 205. Theroute selection module 210 may include a storedroute module 255 to store newly created routes in the memory of theroute selection module 210 and to provide, in response to a user request, a route that has been stored. Theroute selection module 210 may include adisplay module 260 to collect various information from the components of theroute selection module 210 and generate a display to be transmitted to and displayed on thecomputer 205. Theroute selection module 210 may include aniteration module 265 assist theparameter creation module 245 in generating a route corresponding to parameters provided by a user. Theroute selection module 210 may include adriving directions module 270 to provide driving directions corresponding to the selected route. Theroute selection module 210 may include amap retrieving module 275 to retrieve one or more maps in response to user input and to provide a single suitable map to appropriate components. Theroute selection module 210 may include auser interaction module 475 to perform various functions in interacting with users. Theroute selection module 210 may include other components to perform functions or to gather or provide information in order to assist a user in selecting a route to be traveled. - The
route selection system 200 shown inFIG. 2 includes several components. Route selection systems may include a greater or lesser number of components. For example, any combination of the noted modules may be present in a given embodiment. In route selection system embodiments, the functions performed by multiple components in theroute selection system 200 discussed herein may be combined into fewer components, such as one component. For example, the multiple functions performed by theparameter creation module 245 and theiteration module 265 discussed herein may be performed by a single component. In some route selection system embodiments, the functions performed by one component in theroute selection system 200 discussed herein may be performed by multiple components. For example, the multiple functions of thedisplay module 260 discussed herein may be performed by, e.g., a route display component, a tracing feedback component, and other miscellaneous components. Some route selection system embodiments may include additional components to provide additional functionality. For example, a component may be provided that is dedicated to maintaining journals, workout plans, travel itineraries, and/or other miscellaneous information. Components of route selection systems may perform the functions discussed herein in various ways. The ways by which the components of theroute selection system 200 discussed herein are provided only for illustration. -
FIG. 3 shows theroute selection system 200 ofFIG. 2 with theuser interaction module 475 shown in greater detail. Theuser interaction module 475 may include multiple components to receive input provided by users, to direct requests received from users to the proper component(s) of theroute selection system 200, to receive responsive displays from thedisplay module 260, to perform various calculations, to provide the displays to the user, and/or to perform various additional functions. - The
user interaction module 475 may be responsible for receiving and processing various requests provided by the user from thecomputer 205 via aninterface 480. Theinteraction module 475 may receive requests from thecomputer 205 at arequest distribution module 485. - The
request distribution module 485 may assess which of multiple components would be equipped to respond to the user's request. For example, if the user requests routes based on entered parameters, therequest distribution module 485 may provide the request to theparameter creation module 245. If the user requests a previously stored route, theparameter distribution module 485 may provide the request to the storedroute module 255. If the user requests to trace a route, theparameter distribution module 485 may provide the request to thetrace creation module 250. Therequest distribution module 485 may provide the request to other components if such components are equipped to play a role in providing responsive information. -
FIG. 4 shows theroute selection system 200 ofFIG. 2 with theparameter creation module 245 shown in greater detail. Theparameter creation module 245 may include multiple components to generate one or more routes based on parameters provided by a user. - The
parameter creation module 245 may be operable to assess the parameters entered by the user to determine whether they are sufficient-to allow theroute selection system 200 to function. Theparameter creation module 245 may receive parameters from theuser interaction module 475 at aprocessor 285 through aninterface 280. Such parameters may include a variety of items related to a user's preferences in choosing a route. Examples of parameters/criteria include starting location, ending location, distance, amount of time, travel surface type (e.g., road, sidewalk, unpaved trail, etc.), number of calories to be burned, extent of elevation change (e.g., flat, hilly, total elevation change over route, etc.), pace (e.g., 7-minute miles), rate of speed, population density (e.g., big-city streets or country roads), lighting (e.g., lit or unlit), landmarks, and/or other parameters that may impact route selection. Theprocessor 285 may determine whether the parameters entered provide enough information to enable themap retrieving module 275 to retrieve a map, e.g., from themap application 220 or to enable theprocessor 285 to select a route. If theprocessor 285 determines that the parameters entered do not provide enough information to enable themap retrieving module 275 to retrieve a map, theprocessor 285 may cause a notification to be displayed to the user, requesting additional information. For example, if the parameters included only distance, theprocessor 285 may cause a notification to be displayed to the user, requesting information such as starting location or ending location. If theprocessor 285 determines that the parameters entered do not provide enough information to enableprocessor 285 to select a route, theprocessor 285 may cause a notification to be displayed to the user, requesting additional information. For example, if the parameters included only a desired number of calories to be burned, theprocessor 285 may cause a notification to be displayed to the user, requesting information such as the user's weight. - If the
processor 285 determines that the parameters entered provide enough information to enable themap retrieving module 275 to retrieve a map and to enable theprocessor 285 to select a route, theprocessor 285 may provide such parameters to themap retrieving module 275. Themap retrieving module 275 may then retrieve a suitable map from, e.g., themap application 220 and provide the map to theiteration module 265. -
FIG. 5 shows theroute selection system 200 ofFIG. 2 with themap retrieving module 275 shown in greater detail. Themap retrieving module 275 may include multiple components to retrieve one or more maps in response to user input, to co-register multiple maps into one suitable map if necessary, and to provide the suitable map to appropriate components. The term “maps,” as used herein, is to be interpreted broadly and should encompass traditional maps, satellite photographs, hybrids (i.e., traditional maps shown in conjunction with satellite photographs), and other similar items. Commonly, the map will include some visual representation (a drawing, image, etc.) of a geographic area. - With parameters from the
parameter creation module 245, themap retrieving module 275 may be operable to retrieve one or more maps. Themap retrieving module 275 may receive parameters from theparameter creation module 245 at a processor 315. The processor 315 may provide the parameters to a storedmap retriever 320, which may search for a map in amap repository 325 based on the parameters. If the storedmap retriever 320 is able to find a suitable map in themap repository 325, the storedmap retriever 320 may provide the map to the processor 315. The processor 315 may analyze the map to determine whether the map is indeed suitable. If the processor 315 determines that the map is suitable, the processor 315 may provide the map to acommunication component 330. If the processor 315 determines that the map is unsuitable, the processor 315 may notify the storedmap retriever 320 why the map is unsuitable and instruct the storedmap retriever 320 to further search themap repository 325. In some instances, the storedmap retriever 320 may be unable to find a suitable map in the map.repository 325. In such instances, the storedmap retriever 325 may so notify the processor 315. In the event that the storedmap retriever 325 is unable to retrieve a suitable map, the processor 315 may determine whether to transmit a request for a suitable map to an external application, such as map application 220 (e.g., a mapping web page). The processor 315 may instructcommunication component 330 to transmit a request to themap application 220. Thecommunication component 330 may submit parameters to one or more external applications, possibly including themap application 220, through aninterface 335. Thecommunication component 330 may then receive one or more maps from the external application through the interface 335 (such as by downloading, or linking to, the one or more maps of the external application(s)); - The
communications component 330 may be responsible for providing a single suitable map to one or more components, such as theiteration module 265. If multiple maps are received by thecommunication component 330, thecommunication component 330 may provide the maps to aco-registration module 340. Theco-registration module 340 may co-register the multiple maps, overlaying the maps on top of one another such that a real-world location would be displayed in the same spot on a screen for each of the maps. Examples of when multiple maps may be co-registered include situations in which a user would like to see weather information (e.g., wind, temperature, rain, humidity, etc.) and road construction information for a selected route. In such situations, thecommunication component 330 may retrieve a map having the weather information from one external application and a map having the road construction information from a second external application. Thecommunication component 330 may provide the two maps to theco-registration module 340 for co-registration. Theco-registration module 340 may provide the co-registered map to thecommunication component 330. Thecommunication component 330 may receive a suitable map from the storedmap retriever 320, from an external application via theinterface 335, from theco-registration module 340, or from other sources. Thecommunication component 330 may provide the suitable map to one or more components, such as theiteration module 265. - In one particular embodiment, there is provided a time-animated map showing one or more remotes and the weather changes forecast for such route(s) over time. Thus, the operator can plan a 2-hour jogging route, and the route can be animated (optionally based on a predicted running rate) so that the runner's location as a function of time is shown while at the same time, the forecasted weather changes are simultaneously shown as a function of time.
- The
map retrieving module 275 shown inFIG. 5 includes multiple components. Components designed to retrieve one or more maps in response to user input, to co-register multiple maps into one suitable map if necessary, and to provide the suitable map to appropriate components may include a greater or lesser number of components. In map retrieving module embodiments, the functions performed by multiple components in themap retrieving module 275 discussed herein may be combined into fewer components, such as one component. For example, the multiple functions performed by the processor 315 andcommunication component 330 discussed herein may be performed by a single component. In some map retrieving module embodiments, the functions performed by one component in themap retrieving module 275 discussed herein may be performed by multiple components. For example, the multiple functions of the processor 315 discussed herein may be performed by, e.g., a component dedicated to communicating with various other components, a component dedicated to performing calculations, and other miscellaneous components. Some map retrieving module embodiments may include additional components to provide additional functionality. For example, a component may be provided that is dedicated to selecting from among multiple external map applications based on preferences expressed by a user. Components of map retrieving modules may perform the functions discussed herein in various ways. The ways by which the components of themap retrieving module 275 discussed herein are provided only for illustration. - Referring again to
FIG. 4 , in order to generate a route based on parameters provided by a user, theparameter creation module 245 may retrieve information related to the map's legend from theiteration module 265. Theprocessor 285 of theparameter creation module 245 may instruct alegend retriever 290 to retrieve such information from theiteration module 265. Such information may include a ratio of displayed distance to real-life distance. -
FIG. 6 shows theroute selection system 200 ofFIG. 2 with theiteration module 265 shown in greater detail. As discussed above, theiteration module 265 may receive a map from themap retrieving module 275. Theiteration module 265 may receive the map at amap handling module 345 via aninterface 310. Theiteration module 265 may receive a request for information related to the map's legend from theparameter creation module 245 at arequest handling module 350 via theinterface 310. Therequest handling module 350 may retrieve responsive information from the map in themap handling module 345. Therequest handling module 350 may transmit responsive information related to the map's legend to theparameter creation module 245 via theinterface 310. - Referring again to
FIG. 4 , theparameter creation module 245 may be operable to retrieve information related to the map's legend, to perform various calculations based on user-entered parameters, and to provide criteria to theiteration module 265 to allow theiteration module 265 to select one or more routes. Theparameter creation module 245 may receive information related to the map's legend from theiteration module 265 at thelegend retriever 290 via theinterface 280. Thelegend retriever 290 may provide the information related to the map's legend to theprocessor 285. Theprocessor 285 may instruct anequation retriever 295 to retrieve a suitable equation from anequation repository 300. For example, if the parameters include 45-minute duration and 7-minute miles, theprocessor 285 may instruct theequation retriever 295 to select the following equation from the equation repository 300: Real-life distance is equal to time duration divided by rate of speed. Using the information related to the map's legend and the equation retrieved from theequation repository 300, theprocessor 285 may calculate a rough line length. Using the parameters provided in the example above and the corresponding equation, along with legend-related information of, e.g., one inch equals 0.5 mile, theprocessor 285 would calculate a rough line length of approximately 12.9 inches. Theparameter creation module 245 may provide the rough line length to theiteration module 265. Theparameter creation module 245 may provide additional parameters to theiteration module 265 that may enable theiteration module 265 to focus on a portion of the selected map. Such map focusing criteria may include starting location, ending location, a landmark to be encountered at a particular point (e.g., a water break five miles into the travel), a desired travel surface, and/or other map focusing criteria. In the event that certain parameters are entered (e.g., a desired amount of elevation change), theparameter creation module 245 may provide elevation change criteria to theiteration module 265. In the event that certain parameters are entered (e.g., a desired amount of calories to be burned), the parameter creation module may provide calorie criteria to theiteration module 265. The calorie criteria may be a function of the route's distance, the person's weight, and the route's elevation change. In some embodiments, the calorie criteria may be a function of the weather (e.g., a traveler may tend to burn more calories on a hot, humid day than on a cool, breezy day). The information provided by theparameter creation module 245 to theiteration module 265 may allow theiteration module 265 to select one or more routes. - Referring again to
FIG. 6 , theiteration module 265 may assist theparameter creation module 245 in generating a route corresponding to parameters provided by a user. Theiteration module 265 may receive the rough line length, the map focusing criteria, the elevation change criteria, and/or the calorie criteria from theparameter creation module 245 at aroute selector 305 via theinterface 310. Theroute selector 305 may be capable of selecting a list of potential routes. Theroute selector 305 may submit a request to themap handling module 345 for a list of routes based on the rough line length, the map focusing criteria, the elevation change criteria, and/or the calorie criteria. Themap handling module 345 may select all routes on the map that have a length approximately equal to the rough line length, that satisfy map focusing criteria, that satisfy the elevation change criteria, and/or that satisfy the calorie criteria. Themap handling module 345 may provide theroute selector 305 with a list of potential routes along with verification information related to the rough line length and/or the criteria provided by theparameter creation module 245. If themap handling module 345 is unable to find any such routes, themap handling module 345 may so notify theroute selector 305. Theroute selector 305 may provide either a notification that no routes were found or the list of potential routes and corresponding verification information to theparameter creation module 245 via theinterface 310. - Referring again to
FIG. 4 , theparameter creation module 245 may be responsible for verifying that the routes selected by theiteration module 265 do indeed meet all of the user parameters. Theparameter creation module 245 may receive the list of potential routes and corresponding verification information from theiteration module 265 at theprocessor 285 via theinterface 280. Theprocessor 285 may determine which of the potential routes satisfy all the parameters entered by the user. Theprocessor 285 may provide theiteration module 265, via theinterface 280, with a list of verified routes and may instruct theiteration module 265 to provide the map and the routes to thedisplay module 260 for display. Theprocessor 285 may instruct theiteration module 265 to provide the map and the routes to the storedroute module 255 for storage. - The
parameter creation module 245 shown inFIG. 4 includes multiple components. Modules designed to generate one or more routes based on parameters provided by a user may include a greater or lesser number of components. In parameter creation module embodiments, the functions performed by multiple components in theparameter creation module 245 discussed herein may be combined into fewer components, such as one component. For example, the multiple functions performed by theequation retriever 295 and thelegend retriever 290 discussed herein may be performed by a single retriever component. In some parameter creation module embodiments, the functions performed by one component in theparameter creation module 245 discussed herein may be performed by multiple components. For example, the multiple functions of theprocessor 285 discussed herein may be performed by, e.g., an external communication component, an internal communication component, a calculation component, a verification component, and/or other miscellaneous components. Some parameter creation module embodiments may include additional components to provide additional functionality. For example, one or more components may be provided that are dedicated to handling and analyzing maps, or performing the functions of theiteration module 265 as discussed herein. Components of parameter creation modules may perform the functions discussed herein in various ways. The ways by which the components of theparameter creation module 245 are discussed herein are provided only for illustration. - Referring again to
FIG. 6 , theiteration module 265 may receive a list of verified routes and may provide those verified routes to components per instructions received from theparameter creation module 245. Theiteration module 265 may receive the list of verified routes and the instructions to provide the verified routes at theroute selector 305 and the instructions to provide the map at themap handling module 345 via theinterface 310. Theroute selector 305 may provide the verified routes to thedisplay module 260 for display and to the storedroute module 255 for storage. Themap handling module 345 may provide the map to thedisplay module 260 for display and to the storedroute module 255 for storage. - The
iteration module 265 shown inFIG. 6 includes multiple components.Iteration modules 265 may include a greater or lesser number of components. In iteration module embodiments, the functions performed by multiple components in theiteration module 265 discussed herein may be combined into fewer components, such as one component. For example, the multiple functions performed by themap handling module 345 and theroute selector 305 discussed herein may be performed by a single component dedicated to handling and analyzing maps. In some iteration module embodiments, the functions performed by one component in theiteration module 265 discussed herein may be performed by multiple components. For example, the multiple functions of theroute selector 305 discussed herein may be performed by, e.g., a component for analyzing line length, a component for analyzing map focusing criteria, a component for analyzing elevation change criteria, a component for analyzing calorie criteria, and/or other miscellaneous components. Some iteration module embodiments may include additional components to provide additional functionality. For example, a component may be provided that is dedicated to receiving parameters from users, performing calculations, and/or performing other functions discussed in connection with theparameter creation module 245 herein. Components of iteration modules may perform the functions discussed herein in various ways. The ways by which the components of theiteration module 265 discussed herein are provided only for illustration. - The exemplary system discussed in connection with
FIGS. 4-6 may be implemented with displays similar to those ofFIGS. 1B-1C .FIGS. 1B-1C may include adisplay 135, which may include amap 137, a key 139, and routeselection mode icons FIG. 1A . In thedisplay 135, theplan route icon 141 may be highlighted to indicate that the user has chosen to select a route by entering one or more parameters.FIG. 1B shows thedisplay 135 before the user has entered any parameters. Thedisplay 135 may include a route criteria drop downmenu 147. In this exemplary embodiment, the user may select from four different types of route criteria: calories burned, distance, time, and speed. In some embodiments, more or less types of route criteria may be available (e.g., any combination of the noted criteria can be available). The display may include a preferred path drop downmenu 149. In this exemplary embodiment, the user may select from three different types of preferred paths: major intersections, back roads, and no roads. Thedisplay 135 may include acounter 151 to indicate the distance of one or more selected paths. As shown, thecounter 151 displays path distance in miles, but thecounter 151 may display path distance in any suitable unit of measurement (kilometers, meters, feet, yards, etc.). BecauseFIG. 1B shows thedisplay 135 before the user has entered any parameters, thecounter 151 may display a distance of 0.0 miles. -
FIG. 1C shows thedisplay 135 after the user has entered parameters. From the route criteria drop downmenu 147, the user has selected distance and has indicated a distance of 3.0 miles. From the preferred path drop downmenu 149, the user has selected major intersections. In some instances, the user may select from either the route criteria drop downmenu 147 or the preferred path drop downmenu 149. Based on these criteria, a system similar to that discussed in connection withFIGS. 4-6 may display aroute 153. Theroute 153 may include astart icon 155, astop icon 157,mile markers 159, anddirection indicators 161. Thecounter 151 may display that theroute 153 has a distance of 3.0 miles. As discussed elsewhere herein, the user may manipulate the displayedroute 153 in various ways. Thecounter 151 may display the distance of theroute 153 in real time during such manipulations (i.e., the distance displayed changes as the route changes). The user may memorize theroute 153 and then go travel it (e.g., by running). In some embodiments, the user may print theroute 153 and bring it while traveling. In some embodiments, the user may download theroute 153 to, e.g., an mp3 player or another portable device for review while traveling. In some embodiments, when the user zooms in or out on the map, theroute 153 may zoom in and out with the map, thereby allowing the user to view theroute 153 in various degrees of detail. In some embodiments, thedisplay 135 may provide textual instructions corresponding to theroute 153, allowing users to travel theroute 153 by referring to the displayed map and/or to the textual instructions. -
FIG. 7 shows theroute selection system 200 ofFIG. 2 with the storedroute module 255 shown in greater detail. The storedroute module 255 may include multiple components to store newly created routes in the memory of theroute selection module 210 and to provide a route that has been stored in response to user requests. The storedroute module 255 may receive maps and routes corresponding to newly created routes at anindexing module 355 via aninterface 360. Theindexing module 355 may store the newly created routes in aroute repository 365 according to criteria such as, e.g., date, length, starting location, weather conditions, time of day, etc. The routes stored in theroute repository 365 may be available to be retrieved by users for subsequent use. - In some embodiments, the
route selection system 210 may attempt to retrieve a route from the storedroute module 255 before creating a route via theparameter creation module 245. The storedroute module 255 may receive parameters from theuser interaction module 475 at aroute retrieving module 370 via theinterface 360. Theroute retrieving module 370 may retrieve routes from theroute repository 365 that satisfy all the parameters entered by the user. Theroute retrieving module 370 may provide the routes (including corresponding maps) to thedisplay module 260 for display. In embodiments in which theroute selection system 200 attempts to retrieve a route from the storedroute module 255 before creating a route via theparameter creation module 245, the storedroute module 255 may notify theparameter creation module 245 whether any routes were retrieved from storage that satisfy all the parameters entered by the user. If no routes were retrieved from storage, theparameter creation module 245 may proceed to generate one or more routes (as discussed above). If one or more routes were retrieved from storage, theroute selection module 210 may prevent theparameter creation module 245 from generating routes. - The stored
route module 255 shown inFIG. 7 includes multiple components. Stored route module embodiments may include a greater or lesser number of components. In stored route module embodiments, the functions performed by multiple components in the storedroute module 255 discussed herein may be combined into fewer components, such as one component. For example, the multiple functions performed by theroute retrieving module 370 and theindexing module 355 discussed herein may be performed by a single component that is capable of both storing and retrieving routes. In some stored route module embodiments, the functions performed by one component in the storedroute module 255 discussed herein may be performed by multiple components. For example, the multiple functions of theroute retrieving module 370 discussed herein may be performed by, e.g., a component dedicated to receiving parameters, a component dedicated to searching storage, and other miscellaneous components. Some stored route module embodiments may include additional components to provide additional functionality. For example, components may be provided that allow for searching other computers in a network for stored routes. Components of stored route modules may perform the functions discussed herein in various ways. The ways by which the components of the storedroute module 255 discussed herein are provided only for illustration. - The exemplary system discussed in connection with
FIG. 7 may be implemented with displays similar to those ofFIGS. 1D-1E .FIGS. 1D-1E may include adisplay 163, which may include amap 165, a key 167, and routeselection mode icons FIG. 1A . In thedisplay 163, the myroute icon 171 may be highlighted to indicate that the user has chosen to select a previously stored route.FIG. 1D shows thedisplay 163 before the user has selected a previously stored route. Thedisplay 163 may include a my routes drop downmenu 175. In this exemplary embodiment, the user may select previously stored routes ten different ways: by route name, by date, by calories burned, by distance, by time, by speed, by terrain, by major interstates, by lighted paths, by back roads, and by no roads. In other embodiments, users may select previously stored routes in a greater or lesser number of ways (e.g. any subgroup of the 10 noted ways may be available). Thedisplay 135 may include acounter 177 to indicate the distance of one or more previously stored routes. As shown, thecounter 177 displays path distance in miles, but thecounter 177 may display path distance in any suitable unit of measurement. BecauseFIG. 1D shows thedisplay 163 before the user has entered any parameters, thecounter 177 may display a distance of 0.0 miles. -
FIG. 1E shows thedisplay 163 after the user has selected a previously stored route. From the my routes drop downmenu 175, the user has selected a route dated Oct. 20, 2004. The date may correspond to the date the route was first created, last modified, or other significant date. Per the user's selection, a system similar to that discussed in connection withFIG. 7 may display aroute 179. Theroute 179 may include astart icon 181, astop icon 183,mile markers 185, anddirection indicators 187. Thecounter 177 may display that theroute 179 has a distance of 3.0 miles. The user may memorize theroute 179 and then go travel it (e.g., by running). In some embodiments, the user may print theroute 179 and bring it while traveling. In some embodiments, the user may download theroute 179 to, e.g., an mp3 player or another portable device for review while traveling. In some embodiments, when the user zooms in or out on the map, theroute 153 may zoom in and out with the map, thereby allowing the user to view theroute 153 in various degrees of detail. In some embodiments, thedisplay 135 may provide textual instructions corresponding to theroute 153, allowing users to travel theroute 153 by referring to the displayed map and/or to the textual instructions. - In some embodiments, a user may wish to modify a previously stored route. The
display 163 ofFIG. 1E may include an eraseicon 189 and aresume icon 191. The user may modify theroute 179 by actuating the eraseicon 189. The user may then provide input (e.g., by entering parameters or by tracing) indicating which portion(s) of theroute 179 should be erased. The user may then actuate theresume icon 191 to further edit theroute 179 by, e.g., drawing a new path to connect segments of the route that were affected by the erasure. In some instances, the user may actuate theresume icon 191 to finalize theroute 179 for memorization, for printing, or for download. An example of the functionality associated with modifying a displayed route is discussed in greater detail in connection withFIGS. 1G-1H , and 3. An exemplary system equipped with editing functionality is discussed in connection withFIG. 3 . -
FIG. 8 shows theroute selection system 200 ofFIG. 2 with thetrace creation module 250 shown in greater detail. Thetrace creation module 250 may include multiple components to allow a user to generate a route by providing input through tracing, for example, a stylet or a mouse on a screen of thecomputer 205. Thetrace creation module 250 may receive parameters from theuser interaction module 475 at aprocessor 395 through aninterface 400. The parameters may be similar to those discussed in connection withFIG. 4 . Referring again toFIG. 8 , the parameters may include an indication that the user wishes to generate a route via tracing. In such instances, theprocessor 395 may determine whether the parameters entered provide enough information to enable themap retrieving module 275 to retrieve a map from themap application 220. If theprocessor 395 determines that the parameters entered do not provide enough information to enable themap retrieving module 275 to retrieve a map, theprocessor 395 may cause a notification to be displayed to the user, requesting additional information. For example, if the parameters included only distance, theprocessor 395 may cause a notification to be displayed to the user, requesting information such as starting location or ending location. If theprocessor 395 determines that the parameters entered provide enough information to enable themap retrieving module 275 to retrieve a map, theprocessor 395 may provide such parameters to themap retrieving module 275 via theinterface 400. Themap retrieving module 275 may then retrieve a suitable map from, e.g., themap application 220 in a manner similar to that discussed in connection withFIG. 5 . Thetrace creation module 250 may receive the map from themap application 220 at aco-registration module 405 via the interface. - The
co-registration module 405 of thetrace creation module 250 may be designed to provide a traceable map to thedisplay module 260 to allow users to generate a route via tracing. As discussed above, theprocessor 395 may receive parameters that include an indication that the user wishes to generate a route via tracing. Theprocessor 395 may instruct a trace plot retriever 410 to retrieve a trace plot from atrace plot repository 415. A trace plot may be a plot that registers multiple points according to X-Y coordinates in response to tracing activity by a user. The trace plot retriever 410 may retrieve a trace plot from thetrace plot repository 415 and may provide the trace plot to theco-registration module 405. Theco-registration module 405 may co-register the map received from themap application 220 via theinterface 400 and the trace plot received from the trace plot retriever 410, overlaying the trace plot on top of the map to create a traceable map. Theco-registration module 405 may provide the traceable map to thedisplay module 260, via theinterface 400, for display to allow the user to generate a route via tracing. - The
trace creation module 250 shown inFIG. 8 includes multiple components. Modules designed to allow a user to generate a route by providing input through tracing, for example, a stylet or a mouse on a screen of thecomputer 205 may include a greater or lesser number of components. In trace creation module embodiments, the functions performed by multiple components in thetrace creation module 250 discussed herein may be combined into fewer components, such as one component. For example, the multiple functions performed by the trace plot retriever 410 and the co-registration module discussed herein may be performed by a single component dedicated to retrieving traceable maps. In some trace creation module embodiments, the functions performed by one component in thetrace creation module 255 discussed herein may be performed by multiple components. For example, the multiple functions of theco-registration module 405 discussed herein may be performed by, e.g., a component dedicated to creating traceable maps, a component dedicated to handling and responding to internal communications, and/or other miscellaneous components. Some trace creation module embodiments may include additional components to provide additional functionality. For example, components may be provided that allow the trace creation module to interact directly with users in receive input and provide real-time feedback. Components of trace creation modules may perform the functions discussed herein in various ways. The ways by which the components of thetrace creation module 250 discussed herein are provided only for illustration. -
FIG. 9 shows theroute selection system 200 ofFIG. 2 with the drivingdirections module 270 shown in greater detail. The drivingdirections module 270 may include multiple components to provide driving directions corresponding to the selected route. Under some circumstances, a user may wish to obtain driving directions that correspond to one or more routes. For example, a user may have enjoyed a route that he or she previously jogged, hiked, biked, etc., and may wish to drive as closely as possible along that route. Other examples involve driving to the starting location of a route to drop someone off and/or driving to the ending location of a route to pick someone up. The drivingdirections module 270 may receive a request from theuser interaction module 475 to provide driving directions that correspond to one or more routes at arequest module 375 via aninterface 380. In some situations, the request may include location information, such as the location from which the user wishes to drive, along with information concerning the route, such as the ending location. In some situations, the request may include only information concerning the route (e.g., the starting location, the ending location, and/or one or more intermediate locations). Therequest module 375 may instruct a route retriever 385 to retrieve a route from, e.g., thedisplay module 260 or the storedroute module 255, that corresponds to the user's request. The route retriever 385 may receive the route (including the corresponding map) in response and may provide the route to therequest module 375. Therequest module 375 may assess what information is needed to formulate a request to an external application, such asmap application 220. Therequest module 375 may use information provided along with the user request to formulate a driving directions request (e.g., the location from which the user wishes to drive). Therequest module 375 may instruct apoint extracting module 390 to extract information from the route/map combination (e.g., an intermediate location). Therequest module 375 may formulate a driving directions request based on the extracted information or the combined extracted information and user-provided information. Therequest module 375 may transmit the driving directions request to an external map application, such asmap application 220, via theinterface 380. Therequest module 375 may receive driving directions in response from the external application via theinterface 380. Therequest module 375 may provide the driving directions to thedisplay module 260 for display. In some embodiments, the drivingdirections module 270 may provide directions for forms of travel other than driving (e.g., hiking, biking, etc.) in a manner similar to that discussed herein. In such embodiments, the user may be able to obtain directions even if the desired destination is unreachable by driving on streets/highways/roads. - The driving
directions module 270 shown inFIG. 9 includes multiple components. Modules designed to provide driving directions corresponding to the selected route may include a greater or lesser number of components. In driving directions module embodiments, the functions performed by multiple components in thedriving directions module 270 discussed herein may be combined into fewer components, such as one component. For example, the multiple functions performed by the route retriever 385 and thepoint extracting module 390 discussed herein may be performed by a single component designed to extract information from routes. In some driving directions module embodiments, the functions performed by one component in thedriving directions module 270 discussed herein may be performed by multiple components. For example, the multiple functions of therequest module 375 discussed herein may be performed by, e.g., a component dedicated to handling and responding to internal requests, a component dedicated to communicating requests to external map applications, and other miscellaneous components. Some driving directions module embodiments may include additional components to provide additional functionality. For example, a component may be provided that is dedicated to selecting from among multiple sets of driving directions received from external map applications based on user preferences. Components of driving directions modules may perform the functions discussed herein in various ways. The ways by which the components of the drivingdirections module 270 discussed herein are provided only for illustration. -
FIG. 10 shows theroute selection system 200 ofFIG. 2 with thedisplay module 260 shown in greater detail. Thedisplay module 260 may include multiple components to collect various information from the components of theroute selection module 210 and generate a display to be transmitted to and displayed on thecomputer 205. - The
display module 260 may include an information gathering module 465, which may collect information from one or more components of theroute selection module 210, depending on the user's request and/or on other factors. For example, the information gathering module 465 may receive a suitable map from theiteration module 265, as discussed in connection withFIG. 6 , at amap collector 420 via an interface 425. The information gathering module 465 may receive weather information from an external application such as theweather application 225 at a weather collector 435 via the interface 425. The information gathering module 465 may receive road construction information from an external application such as theroad construction application 230 at a road construction collector 440 via the interface 425. The information gathering module 465 may receive other miscellaneous information from various applications at amiscellany collector 445 via the interface 425. Examples of such miscellaneous information include information related to training logs, dietary logs, and the like. - The information gathering module 465 may receive various routes from one or more components of the
route selection module 210 at aroute collector 430 via the interface 425, depending on the user's request and/or on other factors. For example, theroute collector 430 may collect verified routes from theiteration module 265 and/or theparameter creation module 245 via the interface 425, as discussed in connection withFIGS. 4 and 6 . Theroute collector 430 may collect stored routes from the storedroute module 255, as discussed in connection withFIG. 7 . In some embodiments, theroute collector 430 may collect routes from multiple sources. - With information collected from one or more components of the
route selection module 210, thedisplay module 260 may generate a display to be displayed on thecomputer 205. Thedisplay module 260 may include a GUI retrieving module 450, which may retrieve a graphical user interface from aGUI repository 455 that corresponds to parameters entered by the user. Thedisplay module 260 may include adisplay packaging module 460, which may retrieve the graphical user interface from the GUI retrieving module 450, the user-entered request from theuser interaction module 475, the information from the information gathering module 465, and/or other information. Thedisplay packaging module 460 may create a display. In the display, one or more routes may be displayed. If a route involves covering the same path more than once, that path may be displayed in such a way as to indicate the multiple passes (e.g., by displaying the path in a different color than the rest of the route and/or by providing textual indication). Thedisplay packaging module 460 may provide the display to adisplay transmission module 470, which may provide the display to theuser interaction module 475. - The
display module 260 shown inFIG. 10 includes multiple components. Modules designed to collect various information from components of theroute selection module 210 and generate a display to be transmitted to and displayed on thecomputer 205 may include a greater or lesser number of components. In display module embodiments, the functions performed by multiple components in thedisplay module 260 discussed herein may be combined into fewer components, such as one component. For example, the multiple functions performed by the weather collector 435, the road construction collector 440, and themiscellany collector 445 may be performed by a single component designed to collect information from external applications. In some display module embodiments, the functions performed by one component in thedisplay module 260 discussed herein may be performed by multiple components. For example, the multiple functions of theroute collector 430 discussed herein may be performed by, e.g., a component dedicated to collecting verified routes, a component dedicated to collecting traceable maps, a component dedicated to collecting stored routes, and/or other miscellaneous components. Some display module embodiments may include additional components to provide additional functionality. For example, a component may be provided that is dedicated to interfacing directly with users. Components of display modules may perform the functions discussed herein in various ways. The ways by which the components of thedisplay module 260 discussed herein are provided only for illustration. - Referring again to
FIG. 3 , theuser interaction module 475 may provide responsive information to users at thecomputer 205 via theinterface 480. Theuser interaction module 475 may receive a display from thedisplay module 260 at adisplay handling module 490 via theinterface 480. Thedisplay handling module 490 may verify that the display is indeed responsive to the request provided by the user. Thedisplay handling module 490 may provide the display to thecomputer 205 via the interface to be displayed for the user. - In some instances, the
user interaction module 475 may provide additional assistance to the user in selecting a route. For instance, in the event the user request involves tracing a route, theuser interaction module 475 may provide a traceable map to thecomputer 205 via theinterface 480 for display to the user. The user may enter additional information, such as by tracing a route on the traceable map with a stylet, a mouse, or other suitable tracing instrument. Such information may be provided to theuser interaction module 475 at a follow-upmodule 495 via theinterface 480. The follow-upmodule 495 may process that information, modify the display, and provide a modified display to thecomputer 205 for display to the user. For example, the follow-upmodule 495 may include the traced route on the display and may calculate the distance and/or other characteristics of the traced route. In some embodiments, the follow-upmodule 495 may provide a display that includes the traced route and the distance and/or other characteristics of the traced route in real time (i.e., as the user traces). In some embodiments, the follow-upmodule 495 may provide a modified display that is based solely on the user's tracing. In such embodiments, the modified display may display the traced route exactly as the user traced it. In some embodiments, the follow-upmodule 495 may provide a modified display that is based in part on the user's tracing and in part on other factors. In such embodiments, the user may trace a route with a suitable tracing instrument and may also indicate that the displayed route should be, e.g., entirely on well-lighted sidewalks such that no point on the route strays more than 0.5 miles from the traced route. In such embodiments, the follow-upmodule 495 may determine whether any routes satisfy the user-entered criteria and may modify the display to provide the responsive route if possible. In such embodiments, the user may indicate the distance that the calculated route may stray from the traced route by tracing with a thicker line to indicate a greater stray distance and tracing with a thinner line to indicate a lesser stray distance. In some embodiments in which the follow-upmodule 495 provides a modified display that is based in part on the user's tracing and in part on other factors, the other factors may include user-entered parameters. In such embodiments, the user could enter a starting location and an ending location and then trace the route in between. In such embodiments the user could enter a starting location and trace the route, leaving the last point traced as the ending location. In such embodiments, the user could enter starting and ending locations via tracing and then enter parameters to define a route between the starting and ending locations. - Other examples of the functionality of the follow-up
module 495 may involve a user wishing to erase a portion of a route displayed. In such instances, the user may provide an indication to thecomputer 205 that he/she wishes to erase a portion of a displayed route. The indication may be provided to the follow-upmodule 495 via theinterface 480. The user may provide to thecomputer 205 information specifying which portion of which route he/she wishes to erase. In some embodiments, the user may provide such specifying information by entering parameters via a keyboard or other language-based input instrument. In some embodiments, the user may provide such specifying information by tracing with a stylet, a mouse, or other suitable tracing instrument. The follow-upmodule 495 may receive such specifying information. The follow-upmodule 495 may process the specifying information, modify the display, and provide a modified display to thecomputer 205 for display to the user. For example, the follow-upmodule 495 may include the modified route (i.e., the original route minus the erasure) on the display and may calculate the distance and/or other characteristics of the modified route. In some embodiments, the follow-upmodule 495 may provide a display that includes the modified route and the distance and/or other characteristics of the modified route in real time. In some embodiments, the follow-upmodule 495 may calculate the distance for two separate routes on the map at the same time. - Other examples of the functionality of the follow-up
module 495 may involve a user wishing to view information corresponding to a portion of a route displayed. In such instances, the user may provide an indication to thecomputer 205 that he/she wishes to view such information. The indication may be provided to the follow-upmodule 495 via theinterface 480. The user may provide information specifying the portion of the route that he/she wishes to know more about to thecomputer 205. In some embodiments, the user may provide such specifying information by entering parameters via a keyboard or other language-based input instrument. In some embodiments, the user may provide such specifying information by tracing with a stylet, a mouse, or other suitable tracing instrument. The follow-upmodule 495 may receive such specifying information. The follow-upmodule 495 may process the specifying information, modify the display (e.g., by highlighting the selected portion), and provide a modified display to thecomputer 205 for display to the user. In some embodiments, the follow-upmodule 495 may provide a display that includes the highlighted route and the distance and/or other characteristics of the highlighted route in real time (i.e., while the user is selecting the portion). In some embodiments, the follow-upmodule 495 may calculate the distance for two separate routes on the map at the same time. - The
user interaction module 475 shown inFIG. 3 includes multiple components. Modules designed to perform various functions in interacting with users may include a greater or lesser number of components. In user interaction module embodiments, the functions performed by multiple components in theuser interaction module 475 discussed herein may be combined into fewer components, such as one component. For example, the multiple functions performed by thedisplay handling module 490 and the follow-upmodule 495 may be performed by a single component designed to provide displays to users that correspond to their requests. In some user interaction module embodiments, the functions performed by one component in theuser interaction module 475 discussed herein may be performed by multiple components. For example, the multiple functions of the follow-upmodule 495 discussed herein may be performed by, e.g., a component dedicated to handling erasures, a component dedicated to handling trace-only routes, a component dedicated to handling trace-plus-criteria routes, and/or other miscellaneous components. Some user interaction module embodiments may include additional components to provide additional functionality. For example, a component may be provided that is dedicated to adding advertisements or other miscellaneous information to displays. Components of user interaction modules may perform the functions discussed herein in various ways. The ways by which the components of theuser interaction module 475 discussed herein are provided only for illustration. - The exemplary system discussed in connection with
FIGS. 3 and 8 may be implemented with displays similar to those ofFIGS. 1F-1H .FIGS. 1F-1H may include adisplay 500, which may include amap 505, a key 510, and routeselection mode icons FIG. 1A . In thedisplay 500, thedraw route icon 525 may be highlighted to indicate that the user has chosen to select a route by tracing.FIG. 1F shows thedisplay 500, which may include a tracedroute 530. Thedisplay 500 may include acounter 535 to indicate the distance of the tracedroute 530. As shown, thecounter 535 displays path distance in miles, but thecounter 535 may display path distance in any suitable unit of measurement. Theroute 500 may include astart icon 540, astop icon 545,mile markers 550, anddirection indicators 555. Thecounter 535 may display that the tracedroute 530 has a distance of 3.0 miles. Thecounter 535 may display the distance of the tracedroute 530 as the user traces (i.e., in real time). In some embodiments, the user may select a portion of a displayed route, and the selected portion may be highlighted in thedisplay 500. In such embodiments, multiple portions may be selected, and each portion may be highlighted in a different color. In such embodiments, thedisplay 500 may includemultiple counters 535, such as a counter for the entire route along with counters for each selected portion. In some embodiments, multiple routes may be displayed at the same time. In such embodiments, thedisplay 500 may include an aggregate counter that may display the combined distance of all the displayed routes. The user may memorize the tracedroute 530 and then go travel it (e.g., by running). In some embodiments, the user may print the tracedroute 530 and bring it while traveling. In some embodiments, the user may download the tracedroute 530 to, e.g., an mp3 player for review while traveling. In some embodiments, when the user zooms in or out on the map, theroute 153 may zoom in and out with the map, thereby allowing the user to view theroute 153 in various degrees of detail. In some embodiments, thedisplay 135 may provide textual instructions corresponding to theroute 153, allowing users to travel theroute 153 by referring to the displayed map and/or to the textual instructions. - In some embodiments, a user may wish to modify a traced route.
FIGS. 1G-1H show exemplary displays that may be used in connection with a system having editing functionality. Thedisplay 500 ofFIGS. 1G-1H may include an eraseicon 560 and aresume icon 565. The user may modify theroute 530 by actuating the eraseicon 560. The user may then provide input (e.g., by entering parameters or by tracing) indicating which portion(s) of theroute 530 should be erased.FIG. 1G shows how this may result in aroute portion 532 being highlighted in a different color. The distance of theroute 530 without theroute portion 532 may be reflected in the counter.FIG. 1H shows how the user may then actuate theresume icon 565 to further edit theroute 530 by, e.g., drawing a new path to connect segments of the route that were affected by the erasure. This may result in an addedportion 534 being displayed, along with a corresponding change in the distance displayed by thecounter 535. In some instances, the user may actuate theresume icon 565 to finalize theroute 530 for memorization, for printing, or for download (e.g., when the user erases a portion at the beginning or the end of aroute 530. An exemplary system equipped with editing functionality is discussed in connection withFIG. 3 . -
FIG. 11 provides a flow chart for an exemplary method (600) of assisting a user in selecting a route. The method (600) may include receiving a route request (605). Receiving a route request (605) may involve receiving any of the various route requests discussed herein or any other suitable route request. The route request may include map information. Such map information may include a starting point, an ending point, a landmark point, or combinations thereof. The route request may include route information. Such route information may include lighting criteria, travel surface criteria, population density criteria, distance criteria, speed criteria, calorie criteria, time criteria, elevation change criteria, landmark criteria, and combinations thereof. The method (600) may include retrieving a map (610). Retrieving a map (610) may be based on the map information. The method (600) may include identifying one or more potential routes (615). Identifying one or more potential routes (615) may be based on a first route information item (e.g., lighting criteria). The method (600) may include identifying one or more selected routes from the potential routes (620). Identifying one or more selected routes from the potential routes (620) may involve identifying which of the one or more potential routes satisfy a second route information item (e.g., travel surface criteria). The method (600) may include providing one or more selected routes on the map (625). Providing one or more selected routes on the map (625) may be based on the route information. The method (600) may include providing one or more selected routes and the map for display to the user (630). The method (600) may include providing selected route information for display to the user (632). Providing selected route information for display to the user (632) may include providing selected route information that corresponds to the one or more selected routes. In some embodiments, the selected route information may include a distance of the one or more selected routes. In some embodiments, the selected route information may include driving directions corresponding to the one or more selected routes. The method (600) may determine whether the user wishes to edit one or more of the selected routes (635). If the user does not wish to edit one or more of the selected routes, the user may use the selected route(s) for travel (e.g., by memorizing, printing, or downloading). If the user wishes to edit one or more selected routes, the method (600) may include receiving editing instructions (640). The editing instructions may be entered by the user. The method (600) may include modifying one or more selected routes (645). Modifying one or more selected routes (645) may be based on the editing instructions. Modifying one or more selected routes (645) may create one or more modified routes. The method (600) may include providing the one or more modified routes for display to the user (650). The method (600) discussed herein is for illustration only. Any of the functionality and/or features discussed herein in connection with a system (seeFIGS. 2-10 ) may also be implemented by a corresponding method and/or corresponding steps. All methods discussed herein may be provided on a computer-readable medium as instructions for causing a programmable processor to act. - As used in this document, the term “computer” means a device, or multiple devices working together, that accepts information (in the form of digitalized data) and manipulates it for some result based on a program or sequence of instructions on how the data is to be processed. A computer may also include the means for storing data for some necessary duration.
- Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
- These computer programs (also known as programs, software, software applications, or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the term “machine-readable medium” refers to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor.
- To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.
- The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a LAN, a WAN, and the Internet.
- The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
- Thus, embodiments of the route selection system are disclosed. One skilled in the art will appreciate that the route selection system can be practiced with embodiments other than those disclosed. The disclosed embodiments are presented for purposes of illustration and not limitation, and the present invention is limited only by the claims that follow.
Claims (20)
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/324,549 US7706973B2 (en) | 2006-01-03 | 2006-01-03 | Computer-aided route selection |
US11/533,444 US20070156335A1 (en) | 2006-01-03 | 2006-09-20 | Computer-Aided Route Selection |
US13/073,392 US8538693B2 (en) | 2006-01-03 | 2011-03-28 | Computer-aided route selection |
US14/028,889 US9008967B2 (en) | 2006-01-03 | 2013-09-17 | Computer-aided route selection |
US14/686,463 US9829331B2 (en) | 2006-01-03 | 2015-04-14 | Computer-aided route selection |
US15/824,459 US10634511B2 (en) | 2006-01-03 | 2017-11-28 | Computer-aided route selection |
US16/820,619 US11371856B1 (en) | 2006-01-03 | 2020-03-16 | Computer-aided route selection |
US17/833,567 US11920941B2 (en) | 2006-01-03 | 2022-06-06 | Computer-aided route selection |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/324,549 US7706973B2 (en) | 2006-01-03 | 2006-01-03 | Computer-aided route selection |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/533,444 Continuation-In-Part US20070156335A1 (en) | 2006-01-03 | 2006-09-20 | Computer-Aided Route Selection |
US11/533,444 Continuation US20070156335A1 (en) | 2006-01-03 | 2006-09-20 | Computer-Aided Route Selection |
Publications (2)
Publication Number | Publication Date |
---|---|
US20070156333A1 true US20070156333A1 (en) | 2007-07-05 |
US7706973B2 US7706973B2 (en) | 2010-04-27 |
Family
ID=38225601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/324,549 Active 2028-10-13 US7706973B2 (en) | 2006-01-03 | 2006-01-03 | Computer-aided route selection |
Country Status (1)
Country | Link |
---|---|
US (1) | US7706973B2 (en) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080319659A1 (en) * | 2007-06-25 | 2008-12-25 | Microsoft Corporation | Landmark-based routing |
WO2009021476A1 (en) * | 2007-08-13 | 2009-02-19 | Navigon Ag | Navigation method and device |
EP2042836A1 (en) * | 2007-09-26 | 2009-04-01 | Vodafone Holding GmbH | Method and system for planning the route for an athlete |
US20090228198A1 (en) * | 2008-03-07 | 2009-09-10 | Microsoft Corporation | Selecting landmarks in shortest path computations |
WO2010064178A1 (en) * | 2008-12-03 | 2010-06-10 | Koninklijke Philips Electronics N.V. | Navigational unit and system for maintaining physical activity goal |
CN102538791A (en) * | 2010-11-29 | 2012-07-04 | 索尼公司 | Tour route generating device, tour route generating method, and program |
US20170314949A1 (en) * | 2016-04-30 | 2017-11-02 | Toyota Motor Engineering & Manufacturing North America, Inc. | High level instruction for navigational routing systems |
CN108955706A (en) * | 2018-05-17 | 2018-12-07 | 腾讯大地通途(北京)科技有限公司 | Movable route processing method, device, computer equipment and storage medium based on electronic map |
JP2019049456A (en) * | 2017-09-08 | 2019-03-28 | トヨタ自動車株式会社 | Navigation device |
CN110060001A (en) * | 2019-03-15 | 2019-07-26 | 青岛日日顺物流有限公司 | Community's logistics interactive system |
JP2020058821A (en) * | 2012-06-05 | 2020-04-16 | ナイキ イノベイト シーブイ | Multi-activity platform and interface |
CN111831773A (en) * | 2020-07-14 | 2020-10-27 | 中励信(厦门)科技有限公司 | Intelligent route planning system for large transportation |
US10838469B2 (en) | 2014-11-11 | 2020-11-17 | Darren Saravis | Temperature regulating mount |
US10877529B2 (en) | 2014-11-11 | 2020-12-29 | Darren Saravis | Temperature regulating mount |
US10914602B2 (en) | 2009-12-31 | 2021-02-09 | International Business Machines Corporation | Verification of a generated route in computer assisted navigation |
US11262816B2 (en) | 2014-11-11 | 2022-03-01 | Darren Saravis | Temperature regulating mount with magnetic power mount |
US11836020B2 (en) | 2014-11-11 | 2023-12-05 | Darren Saravis | Temperature regulating mount |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070156335A1 (en) * | 2006-01-03 | 2007-07-05 | Mcbride Sandra Lynn | Computer-Aided Route Selection |
US9031777B2 (en) * | 2006-08-08 | 2015-05-12 | Verizon Patent And Licensing Inc. | Driving directions with selective printing |
US8744758B2 (en) * | 2006-12-19 | 2014-06-03 | Verizon Patent And Licensing Inc. | Driving directions printed text scaling |
US20090030707A1 (en) * | 2007-07-23 | 2009-01-29 | Yahoo! Inc. | System and method of researching real estate |
US20100131184A1 (en) * | 2008-11-21 | 2010-05-27 | Richard Stanton | Method for creating suggested pathways for helping pedestrians cross open spaces |
US8401775B2 (en) * | 2009-01-30 | 2013-03-19 | The Boeing Company | Systems and method for managing airport ground traffic |
US8428866B1 (en) * | 2010-07-12 | 2013-04-23 | Google Inc. | System and method of providing turn-by-turn directions to non-specific destinations |
KR20140014262A (en) | 2011-06-03 | 2014-02-05 | 애플 인크. | Devices and methods for comparing and selecting alternative navigation routes |
US9043150B2 (en) * | 2012-06-05 | 2015-05-26 | Apple Inc. | Routing applications for navigation |
US9997069B2 (en) | 2012-06-05 | 2018-06-12 | Apple Inc. | Context-aware voice guidance |
US8965696B2 (en) | 2012-06-05 | 2015-02-24 | Apple Inc. | Providing navigation instructions while operating navigation application in background |
US9418672B2 (en) | 2012-06-05 | 2016-08-16 | Apple Inc. | Navigation application with adaptive instruction text |
US9047691B2 (en) | 2012-06-05 | 2015-06-02 | Apple Inc. | Route display and review |
US10176633B2 (en) | 2012-06-05 | 2019-01-08 | Apple Inc. | Integrated mapping and navigation application |
US9482296B2 (en) | 2012-06-05 | 2016-11-01 | Apple Inc. | Rendering road signs during navigation |
US9429435B2 (en) | 2012-06-05 | 2016-08-30 | Apple Inc. | Interactive map |
US9111380B2 (en) | 2012-06-05 | 2015-08-18 | Apple Inc. | Rendering maps |
US9886794B2 (en) | 2012-06-05 | 2018-02-06 | Apple Inc. | Problem reporting in maps |
US9230556B2 (en) | 2012-06-05 | 2016-01-05 | Apple Inc. | Voice instructions during navigation |
WO2014012041A1 (en) | 2012-07-13 | 2014-01-16 | Gi Dynamics, Inc. | Transpyloric anchoring |
CN103900584A (en) * | 2012-12-25 | 2014-07-02 | 腾讯科技(深圳)有限公司 | Electronic map traffic route determination method and apparatus |
US20160202075A1 (en) * | 2013-08-27 | 2016-07-14 | Hewlett Packard Enterprise Development Lp | Travel time and routing |
US11210299B2 (en) | 2015-12-01 | 2021-12-28 | Amer Sports Digital Services Oy | Apparatus and method for presenting thematic maps |
US11144107B2 (en) | 2015-12-01 | 2021-10-12 | Amer Sports Digital Services Oy | Apparatus and method for presenting thematic maps |
US11215457B2 (en) | 2015-12-01 | 2022-01-04 | Amer Sports Digital Services Oy | Thematic map based route optimization |
US11137820B2 (en) | 2015-12-01 | 2021-10-05 | Amer Sports Digital Services Oy | Apparatus and method for presenting thematic maps |
FI127926B (en) | 2015-12-21 | 2019-05-31 | Suunto Oy | Sensor based context management |
US11541280B2 (en) | 2015-12-21 | 2023-01-03 | Suunto Oy | Apparatus and exercising device |
US11587484B2 (en) | 2015-12-21 | 2023-02-21 | Suunto Oy | Method for controlling a display |
US11838990B2 (en) | 2015-12-21 | 2023-12-05 | Suunto Oy | Communicating sensor data in wireless communication systems |
US11284807B2 (en) | 2015-12-21 | 2022-03-29 | Amer Sports Digital Services Oy | Engaging exercising devices with a mobile device |
DE102017009171A1 (en) | 2016-10-17 | 2018-04-19 | Amer Sports Digital Services Oy | EMBEDDED APPENDIX |
US11703938B2 (en) | 2016-10-17 | 2023-07-18 | Suunto Oy | Embedded computing device |
EP3444791A3 (en) | 2017-08-13 | 2019-04-24 | IATAS Automatic Air Traffic Control Ltd | System and methods for automated airport air traffic control services |
US11175150B2 (en) | 2020-01-10 | 2021-11-16 | Ford Global Technologies, Llc | Vehicle path control |
US20230087109A1 (en) * | 2021-09-23 | 2023-03-23 | At&T Intellectual Property I, L.P. | Vehicular traffic flow optimization |
Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5543789A (en) * | 1994-06-24 | 1996-08-06 | Shields Enterprises, Inc. | Computerized navigation system |
US5559707A (en) * | 1994-06-24 | 1996-09-24 | Delorme Publishing Company | Computer aided routing system |
US5648768A (en) * | 1994-12-30 | 1997-07-15 | Mapsys, Inc. | System and method for identifying, tabulating and presenting information of interest along a travel route |
US5802492A (en) * | 1994-06-24 | 1998-09-01 | Delorme Publishing Company, Inc. | Computer aided routing and positioning system |
US6067499A (en) * | 1994-09-08 | 2000-05-23 | Matsushita Electric Industrial Co., Ltd. | Route selection system and method utilizing integrated crossings, a starting route, and/or route numbers |
US6188957B1 (en) * | 1999-10-04 | 2001-02-13 | Navigation Technologies Corporation | Method and system for providing bicycle information with a navigation system |
US6208934B1 (en) * | 1999-01-19 | 2001-03-27 | Navigation Technologies Corp. | Method and system for providing walking instructions with route guidance in a navigation program |
US6259990B1 (en) * | 1998-05-15 | 2001-07-10 | Hitachi, Ltd. | Information processing apparatus and pedestrian navigation system using the same |
US6278942B1 (en) * | 2000-03-21 | 2001-08-21 | Navigation Technologies Corp. | Method and system for providing routing guidance |
US6314367B1 (en) * | 2000-06-23 | 2001-11-06 | Navigation Technologies Corporation | Navigation system with feature for reporting errors |
US6317686B1 (en) * | 2000-07-21 | 2001-11-13 | Bin Ran | Method of providing travel time |
US6321158B1 (en) * | 1994-06-24 | 2001-11-20 | Delorme Publishing Company | Integrated routing/mapping information |
US6381537B1 (en) * | 2000-06-02 | 2002-04-30 | Navigation Technologies Corp. | Method and system for obtaining geographic data using navigation systems |
US6446002B1 (en) * | 2001-06-26 | 2002-09-03 | Navigation Technologies Corp. | Route controlled audio programming |
US6498982B2 (en) * | 1993-05-28 | 2002-12-24 | Mapquest. Com, Inc. | Methods and apparatus for displaying a travel route and/or generating a list of places of interest located near the travel route |
US6826472B1 (en) * | 1999-12-10 | 2004-11-30 | Tele Atlas North America, Inc. | Method and apparatus to generate driving guides |
US20050250458A1 (en) * | 2004-01-16 | 2005-11-10 | Bones In Motion, Inc. | Wireless device, program products and methods of using a wireless device to deliver services |
US20060004513A1 (en) * | 2004-06-30 | 2006-01-05 | Bauer Ellen M | Method of collecting information for a geographic database for use with a navigation system |
US20060002590A1 (en) * | 2004-06-30 | 2006-01-05 | Borak Jason M | Method of collecting information for a geographic database for use with a navigation system |
US20060136173A1 (en) * | 2004-12-17 | 2006-06-22 | Nike, Inc. | Multi-sensor monitoring of athletic performance |
US7149626B1 (en) * | 2004-06-30 | 2006-12-12 | Navteq North America, Llc | Method of operating a navigation system |
US20070010941A1 (en) * | 2005-07-07 | 2007-01-11 | Marsh David C | Land navigation system |
US20070079691A1 (en) * | 2005-10-06 | 2007-04-12 | Turner William D | System and method for pacing repetitive motion activities |
US20070106468A1 (en) * | 2005-11-07 | 2007-05-10 | France Telecom | Product, service and activity based interactive trip mapping system, method, and computer program product |
US7460953B2 (en) * | 2004-06-30 | 2008-12-02 | Navteq North America, Llc | Method of operating a navigation system using images |
-
2006
- 2006-01-03 US US11/324,549 patent/US7706973B2/en active Active
Patent Citations (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6498982B2 (en) * | 1993-05-28 | 2002-12-24 | Mapquest. Com, Inc. | Methods and apparatus for displaying a travel route and/or generating a list of places of interest located near the travel route |
US5543789A (en) * | 1994-06-24 | 1996-08-06 | Shields Enterprises, Inc. | Computerized navigation system |
US5559707A (en) * | 1994-06-24 | 1996-09-24 | Delorme Publishing Company | Computer aided routing system |
US5802492A (en) * | 1994-06-24 | 1998-09-01 | Delorme Publishing Company, Inc. | Computer aided routing and positioning system |
US20030182052A1 (en) * | 1994-06-24 | 2003-09-25 | Delorme David M. | Integrated routing/mapping information system |
US6321158B1 (en) * | 1994-06-24 | 2001-11-20 | Delorme Publishing Company | Integrated routing/mapping information |
US6067499A (en) * | 1994-09-08 | 2000-05-23 | Matsushita Electric Industrial Co., Ltd. | Route selection system and method utilizing integrated crossings, a starting route, and/or route numbers |
US5648768A (en) * | 1994-12-30 | 1997-07-15 | Mapsys, Inc. | System and method for identifying, tabulating and presenting information of interest along a travel route |
US6259990B1 (en) * | 1998-05-15 | 2001-07-10 | Hitachi, Ltd. | Information processing apparatus and pedestrian navigation system using the same |
US20010025222A1 (en) * | 1999-01-19 | 2001-09-27 | Bechtolsheim Stephan V. | Method and system for providing walking instructions with route guidance in a navigation program |
US6208934B1 (en) * | 1999-01-19 | 2001-03-27 | Navigation Technologies Corp. | Method and system for providing walking instructions with route guidance in a navigation program |
US6374182B2 (en) * | 1999-01-19 | 2002-04-16 | Navigation Technologies Corp. | Method and system for providing walking instructions with route guidance in a navigation program |
US6188957B1 (en) * | 1999-10-04 | 2001-02-13 | Navigation Technologies Corporation | Method and system for providing bicycle information with a navigation system |
US6411896B1 (en) * | 1999-10-04 | 2002-06-25 | Navigation Technologies Corp. | Method and system for providing warnings to drivers of vehicles about slow-moving, fast-moving, or stationary objects located around the vehicles |
US6826472B1 (en) * | 1999-12-10 | 2004-11-30 | Tele Atlas North America, Inc. | Method and apparatus to generate driving guides |
US6278942B1 (en) * | 2000-03-21 | 2001-08-21 | Navigation Technologies Corp. | Method and system for providing routing guidance |
US6381537B1 (en) * | 2000-06-02 | 2002-04-30 | Navigation Technologies Corp. | Method and system for obtaining geographic data using navigation systems |
US6640187B1 (en) * | 2000-06-02 | 2003-10-28 | Navigation Technologies Corp. | Method for obtaining information for a geographic database |
US6314367B1 (en) * | 2000-06-23 | 2001-11-06 | Navigation Technologies Corporation | Navigation system with feature for reporting errors |
US6317686B1 (en) * | 2000-07-21 | 2001-11-13 | Bin Ran | Method of providing travel time |
US6446002B1 (en) * | 2001-06-26 | 2002-09-03 | Navigation Technologies Corp. | Route controlled audio programming |
US20080051993A1 (en) * | 2004-01-16 | 2008-02-28 | Graham Andrew J | Wireless device, program products and methods of using a wireless device to deliver services |
US20050250458A1 (en) * | 2004-01-16 | 2005-11-10 | Bones In Motion, Inc. | Wireless device, program products and methods of using a wireless device to deliver services |
US20080103689A1 (en) * | 2004-01-16 | 2008-05-01 | Graham Andrew J | Wireless device, program products and methods of using a wireless device to deliver services |
US20080065319A1 (en) * | 2004-01-16 | 2008-03-13 | Graham Andrew J | Wireless device, program products and methods of using a wireless device to deliver services |
US20080058971A1 (en) * | 2004-01-16 | 2008-03-06 | Graham Andrew J | Wireless device, program products and methods of using a wireless device to deliver services |
US20060004513A1 (en) * | 2004-06-30 | 2006-01-05 | Bauer Ellen M | Method of collecting information for a geographic database for use with a navigation system |
US7248966B2 (en) * | 2004-06-30 | 2007-07-24 | Navteq North America, Llc | Method of operating a navigation system |
US7266447B2 (en) * | 2004-06-30 | 2007-09-04 | Navteq North America, Llc. | Method of collecting information for a geographic database for use with a navigation system |
US7149626B1 (en) * | 2004-06-30 | 2006-12-12 | Navteq North America, Llc | Method of operating a navigation system |
US20060002590A1 (en) * | 2004-06-30 | 2006-01-05 | Borak Jason M | Method of collecting information for a geographic database for use with a navigation system |
US7460953B2 (en) * | 2004-06-30 | 2008-12-02 | Navteq North America, Llc | Method of operating a navigation system using images |
US7487041B2 (en) * | 2004-06-30 | 2009-02-03 | Navteq North America, Llc | Method of collecting information for a geographic database for use with a navigation system |
US20060136173A1 (en) * | 2004-12-17 | 2006-06-22 | Nike, Inc. | Multi-sensor monitoring of athletic performance |
US20070010941A1 (en) * | 2005-07-07 | 2007-01-11 | Marsh David C | Land navigation system |
US20070079691A1 (en) * | 2005-10-06 | 2007-04-12 | Turner William D | System and method for pacing repetitive motion activities |
US20070106468A1 (en) * | 2005-11-07 | 2007-05-10 | France Telecom | Product, service and activity based interactive trip mapping system, method, and computer program product |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080319659A1 (en) * | 2007-06-25 | 2008-12-25 | Microsoft Corporation | Landmark-based routing |
US7912637B2 (en) * | 2007-06-25 | 2011-03-22 | Microsoft Corporation | Landmark-based routing |
WO2009021476A1 (en) * | 2007-08-13 | 2009-02-19 | Navigon Ag | Navigation method and device |
EP2042836A1 (en) * | 2007-09-26 | 2009-04-01 | Vodafone Holding GmbH | Method and system for planning the route for an athlete |
EP2317283A1 (en) * | 2007-09-26 | 2011-05-04 | Vodafone Holding GmbH | Method and System for planning the route for an athlete |
US20090228198A1 (en) * | 2008-03-07 | 2009-09-10 | Microsoft Corporation | Selecting landmarks in shortest path computations |
WO2010064178A1 (en) * | 2008-12-03 | 2010-06-10 | Koninklijke Philips Electronics N.V. | Navigational unit and system for maintaining physical activity goal |
CN102239388A (en) * | 2008-12-03 | 2011-11-09 | 皇家飞利浦电子股份有限公司 | Navigational unit and system for maintaining physical activity goal |
US10914602B2 (en) | 2009-12-31 | 2021-02-09 | International Business Machines Corporation | Verification of a generated route in computer assisted navigation |
CN102538791A (en) * | 2010-11-29 | 2012-07-04 | 索尼公司 | Tour route generating device, tour route generating method, and program |
EP2856081B1 (en) * | 2012-06-05 | 2021-02-24 | NIKE Innovate C.V. | Multi-activity platform and interface |
JP2020058821A (en) * | 2012-06-05 | 2020-04-16 | ナイキ イノベイト シーブイ | Multi-activity platform and interface |
US11836020B2 (en) | 2014-11-11 | 2023-12-05 | Darren Saravis | Temperature regulating mount |
US11392185B2 (en) | 2014-11-11 | 2022-07-19 | Darren Saravis | Temperature regulating mount |
US11262816B2 (en) | 2014-11-11 | 2022-03-01 | Darren Saravis | Temperature regulating mount with magnetic power mount |
US10877529B2 (en) | 2014-11-11 | 2020-12-29 | Darren Saravis | Temperature regulating mount |
US10838469B2 (en) | 2014-11-11 | 2020-11-17 | Darren Saravis | Temperature regulating mount |
US10139243B2 (en) * | 2016-04-30 | 2018-11-27 | Toyota Motor Engineering & Manufacturing North America, Inc. | High level instruction for navigational routing systems |
US20170314949A1 (en) * | 2016-04-30 | 2017-11-02 | Toyota Motor Engineering & Manufacturing North America, Inc. | High level instruction for navigational routing systems |
JP2019049456A (en) * | 2017-09-08 | 2019-03-28 | トヨタ自動車株式会社 | Navigation device |
CN108955706A (en) * | 2018-05-17 | 2018-12-07 | 腾讯大地通途(北京)科技有限公司 | Movable route processing method, device, computer equipment and storage medium based on electronic map |
CN110060001A (en) * | 2019-03-15 | 2019-07-26 | 青岛日日顺物流有限公司 | Community's logistics interactive system |
CN111831773A (en) * | 2020-07-14 | 2020-10-27 | 中励信(厦门)科技有限公司 | Intelligent route planning system for large transportation |
Also Published As
Publication number | Publication date |
---|---|
US7706973B2 (en) | 2010-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11920941B2 (en) | Computer-aided route selection | |
US7706973B2 (en) | Computer-aided route selection | |
US7831387B2 (en) | Visually-oriented driving directions in digital mapping system | |
US6321158B1 (en) | Integrated routing/mapping information | |
US7472019B2 (en) | Navigation apparatus | |
US8645057B2 (en) | Software based driving directions | |
US20120136895A1 (en) | Location point determination apparatus, map generation system, navigation apparatus and method of determining a location point | |
US20050261822A1 (en) | Navigation method and apparatus to define favorite spot and extract information concerning the favorite spot | |
CN107155342A (en) | Virtual camera for 3d maps | |
CN102620738A (en) | Interactive geographic feature | |
US20090234572A1 (en) | Surrounding Search Data Generating System, Surrounding Search System, Surrounding Search Data Generating Method, Surrounding Search Method, and Navigation Apparatus | |
KR20080104278A (en) | Map information distribution center and map information distribution method | |
JP4622126B2 (en) | Navigation device, navigation method, and navigation program | |
JP2014230616A (en) | Sport supporting system, terminal device, server device, information providing method, information totaling method, information providing program, and information totaling program | |
JP2012052876A (en) | Route management system, route management apparatus, control method, program, and recording medium | |
JP2001195459A (en) | System and method for itinerary planning | |
US20040204836A1 (en) | System and method for using a map-based computer navigation system to perform geosearches | |
JP4591307B2 (en) | Map information distribution system | |
KR100412023B1 (en) | Method For Indication Of Advertisement by using position information In Electronic Map | |
CN1746628B (en) | Navigation apparatus | |
JP2010038860A (en) | Navigator and facility search method | |
JP2003114608A (en) | Automatic training course generating device and automatic training course generating program | |
JP2010282526A (en) | Point retrieval device, point retrieval method and program | |
JP2011237289A (en) | Navigation device | |
Narvaza | Around Metro: A Mobile Public Transport–Geographical Information System for Metro Manila |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NAVITRAIL LLC, MISSOURI Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MCBRIDE, SANDRA L.;MCBRIDE, THOMAS C.;REEL/FRAME:018602/0499 Effective date: 20061130 Owner name: NAVITRAIL LLC,MISSOURI Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MCBRIDE, SANDRA L.;MCBRIDE, THOMAS C.;REEL/FRAME:018602/0499 Effective date: 20061130 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: STRATEGIC DESIGN FEDERATION W, INC., VIRGIN ISLAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NAVITRAIL LLC;REEL/FRAME:025771/0349 Effective date: 20110127 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552) Year of fee payment: 8 |
|
AS | Assignment |
Owner name: STRATEGIC DESIGN FEDERATION W, LLC, DELAWARE Free format text: RE-DOMESTICATION AND ENTITY CONVERSION;ASSIGNOR:STRATEGIC DESIGN FEDERATION W, INC.;REEL/FRAME:050088/0792 Effective date: 20190621 |
|
AS | Assignment |
Owner name: HUAWEI TECHNOLOGIES CO., LTD., CHINA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:STRATEGIC DESIGN FEDERATION W, LLC;REEL/FRAME:054145/0079 Effective date: 20201022 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |