Linear projection-based navigation

Embodiments of the present invention provide methods, systems, and computer program products for generating a linear projection of a route. In one embodiment, route information is received and parsed. Supplementary route data is received. A linear route is generated and provided to a user, the linear route comprising a straight line and one or more segments extending form the straight line, where ends of the straight line represent a starting point and destination of the linear route, and the one or more segments represent turns.

BACKGROUND OF THE INVENTION

The present invention relates generally to navigation systems, and more particularly to linear projection-based navigation.

Global positioning systems (GPS) and navigation systems that use GPS are becoming increasingly widespread. For example, navigation systems are often installed in automobiles and are incorporated into handheld devices such as smartphones and tablet computers. Navigation systems can provide users with visual and aural information, including maps, turn-by-turn directions, and alerts.

SUMMARY

Embodiments of the present invention provide systems, methods, and program products for generating a linear projection of a route. In one embodiment, a method is provided, comprising: receiving, by one or more computer processors, route information; parsing, by one or more computer processors, the route information into a starting point, a destination, and one or more turns; receiving, by one or more computer processors, supplementary route data comprising one or more of: weather data, traffic data, and alerts; generating, by one or more computer processors, a linear route comprising a straight line and one or more segments extending from the straight line, wherein a first end of the straight line represents the starting point, a second end of the straight line represents the destination, and each of the one or more segments represents a turn; and providing, by one or more computer processors, the linear route to a user.

DETAILED DESCRIPTION

Embodiments of the present invention recognize that routes and other information displayed by navigational systems can be difficult for users to digest and act upon, particularly when users are traveling and other tasks require attention. For example, small screen sizes of handheld devices and automobile navigation systems can make fitting full routes on a display screen difficult. Routes and other pertinent information that is displayed (e.g., landmark data, places of interest, traffic data, warnings, etc.) can also crowd graphical user interfaces, making it difficult for users to interact with navigational systems.

Furthermore, while many navigational systems provide route information to users in the form of road names and/or numbers, embodiments of the present invention recognize that such navigational systems can be difficult to use where users are not familiar with the road names and/or numbers, and where road names and/or numbers are not clearly and consistently marked.

Embodiments of the present invention provide systems, methods, and computer program products for generating linear projections of routes. Embodiments of the present invention can parse route information and generate linear projections of routes that are more easily digested by users, even where small display screens are used. Furthermore, such linear projections of routes can better convey navigational information to users where those users may not be familiar with road names, may not be able to see road signs, and/or where roads are not marked with signage.

FIG. 1is a functional block diagram of computing environment100, in accordance with an embodiment of the present invention. Computing environment100includes computer system102. Computer system102can be a smartphone, tablet computer, laptop computer, specialized computer, or any other computer system known in the art. In general, computer system102is representative of any electronic device, or combination of electronic devices, capable of executing machine-readable program instructions, as described in greater detail with regard toFIG. 10.

Computer system102includes navigation program104, user interface106, global positioning system (GPS) transceiver108, and data store110. Navigation program104parses route information and generates linear projections of routes. In this embodiment, navigation program104uses GPS location data received from GPS transceiver106to generate routes and track the location of computer system102on such routes. Navigation program104can be implemented as one or more stand-alone programs or in conjunction with existing navigation software, such as map software.

User interface106is used by navigation program104to provide navigational information to a user of computer system102. In this embodiment, user interface106can display linear projections of routes generated by navigation program104, along with supplementary information such as locations of interest, landmarks, hazards, warnings, speed limits, icons, road signs, traffic data, and weather data. User interface106can also provide information to the user aurally, such as by announcing instructions and other information, and playing alert tones.

GPS transceiver108communications with GPS satellites to identify the location of computer system102. GPS transceiver108can be implemented with any suitable GPS technology known in the art.

Data store110is used to store information such as user preferences and route information. Data store110can be implemented with any suitable storage medium and storage architecture known in the art.

FIG. 2is a flowchart200illustrating operational steps for generating a linear route, in accordance with an embodiment of the present invention.

In step202, navigation program104receives route information. In this embodiment, navigation program104receives route information entered by a user. Navigation program104can also receive route information from one or more other programs, such as from mapping programs and web services.

In step204, navigation program104parses the received route information. In this embodiment, navigation program104parses the received route information to identify the starting point of the route, the destination, planned left turns, streets that will be passed on the left of the route, planned right turns, and streets that will be passed on the right of the route.

In step206, navigation program104receives supplementary route data. In this embodiment, supplementary data can include, for example, traffic data, weather data, warnings, landmarks, places of interest, and other data pertaining to one or more portions of the generated route.

In step208, navigation program104generates a linear route using the parsed route data. In this embodiment, navigation program104plots a linear route comprising a central straight line beginning from the starting point of the route and extending to the destination (e.g., with the starting point oriented below the destination), and line segments (e.g., arrows) extending from the left and right sides of the central straight line representing left turns and right turns and left and right streets that will be passed, respectively. Line segments representing planned turns can be visually distinguished from line segments representing streets that will be passed along the planned route (e.g., as more heavily weighted lines). In this embodiment, navigation program104also displays supplementary route data on the generated route. For example, where supplementary route data indicates a traffic accident or a washed out road on a particular portion of the generated route, navigation program104can overlay an icon or other notification of such data on the appropriate portion of the central straight line associated with that particular portion of the generated route. Optionally, the straight line can be configured to be shown diagonal to the display for the purpose of covering more area.

In step210, navigation program104uses user interface106to provide the generated linear route and supplementary information to a user of computer system102. In this embodiment, user interface106displays the information on a display screen and can also play audio.

FIG. 3is a flowchart300illustrating operational steps for providing navigation information, in accordance with an embodiment.

In step302, navigation program104initiates navigation along a generated linear route. For example, a linear route can be generated in accordance with the operational steps of flowchart200. In this embodiment, navigation program104initiates navigation in response to a user issuing a command to initiate navigation and/or upon detecting via GPS transceiver108that computer system102has started moving.

In step304, navigation program104and user interface106display the current position of computer system102on the generated linear route. In this embodiment, GPS transceiver108provides location information for computer system102, and the location of computer system102is plotted on the generated linear route using an icon overlaid on the appropriate portion of the generated linear route. In this embodiment, as the user travels along the route, line segments representing turns the user has made and streets the user has passed, as well as supplementary route data for those portions of the route, are removed from the generated linear route, and additional line segments representing upcoming turns and streets that the user will pass are added the generated linear route, along with any additional supplementary route data for those added portions of the route.

In step306, navigation program104optionally instructs user interface106to auto-zoom. In this embodiment, navigation program104can instruct user interface106to auto-zoom in response to various conditions, such that information on user interface106is displayed in a larger, more focused manner. For example, in response to GPS transceiver108determining that computer system102has started to slow down (e.g., in preparation for a turn or arrival at a place of interest), navigation program104can issue a command to user interface106to enlarge the portion of the generated linear route at which computer system102is currently located. In another example, navigation program104can issue a command to user interface106to enlarge portions of the generated linear route such that each line segment is at least a minimum specified size or has a minimum spacing from other line segments (e.g., in pixels, percent screen size, etc.). In other embodiments, navigation program104can issue a command to user interface106to enlarge portions of the generated linear route in response to detecting other conditions, such as a user selection, an indication that the user is lost, and an indication of traffic congestion (e.g., increased numbers of vehicles and/or increased density of traffic lanes).

In step308, navigation program104optionally instructs user interface106to display the current position of computer system102on one or more conventional maps or photographic views of the street. For example, a user may wish to view his or her current location on a conventional map generated by mapping software. The user can select a button, causing navigation program104to issue an instruction to user interface106to display the current position on that conventional map instead of, or in addition to, the generated linear route.

In step312, navigation program104determines whether navigation should be ended. In this embodiment, navigation program104continues navigation until a user enters an end navigation command, or the destination is reached. If, in step312, navigation program104determines that navigation should not be ended, then the operational steps repeat at step204, where navigation program104and user interface106display the current (i.e., updated) position of computer system102on the generated linear route.

If, in step312, navigation program104determines that navigation should be ended, then the operational steps of flowchart300end.

FIGS. 4A and 4Bdepict an example linear route and conventional route, respectively, in accordance with an embodiment of the present invention. As shown inFIG. 4B, given the current location of the user (e.g., the larger arrow head), and following the route illustrated by arrows, the conventional route comprises the following elements in the following order (from starting point to destination): a street on the right side, a street on the right side, a planned right turn, a street on the right side, a street on the right side, a planned right turn, a street on the left, a planned left turn, a street on the right side, and a planned right turn.FIG. 4Adepicts the same route displayed as linear route402on display screen404. In the linear route, the starting point is represented by the bottom end of the central straight line, and the destination is represented by the opposing, top end of the central straight line. Planned turns are represented by larger, darker arrows extending from the left (i.e., for planned left turns) and right (i.e., for planned right turns) of the central straight line. Streets on the left and right sides that will be passed along the planned route are represented by smaller, lighter arrows extending from the left (i.e., for streets on the left) and right (i.e., for streets on the right) of the central straight line. As shown, arrows representing planned turns and streets on the left or right are placed in the order in which those turns or streets will be made or passed, respectively, as the user travels along the planned route. In addition, supplementary route data is displayed in the form of bus stop icon408and traffic light icon406beside two planned right turns, indicating that there is a bus stop and traffic light at those respective intersections.

FIG. 4Balso includes dashed box410representing the size of display screen404shown inFIG. 4A. As can be seen, given the same screen size and/or available screen real estate, linear route402is able to display more information (including the complete route) to a user in a clean and easily digestible manner.

FIG. 5depicts auto-zooming a portion of an example linear route, in accordance with an embodiment of the present invention. As shown, portion502of a linear route is expanded and displayed as expanded portion504, such that possible turns and other features of the route possess a minimum specified size and spacing. In this embodiment, a user can specify minimum sizes and spacing for routes and other features generated by navigation program104in terms of pixels, percentage of screen size, or any other suitable measure.

FIG. 6depicts auto-zooming a portion of an example linear route, in accordance with another embodiment of the present invention. In this embodiment, portion602of a linear route is expanded to display expanded portion604upon GPS transceiver108detecting that computer system102(i.e., and the user operating computer system102) has slowed down to a specified speed. For example, computer system102may slow down when the user operating computer system102is approaching a turn or destination, is looking about for something of interest, or is lost. In each of these scenarios, the user may benefit from an expanded view of the linear route to more easily glean important information at a time when other things require the user's attention.FIG. 6also depicts how expanded portion604can be used to display additional information to the user, such as icons indicating places of interest (e.g., a bank, gas station, and hospital) and names of roads for turns that the user should make and names of roads the user will pass.

FIG. 7depicts display of a portion of an example linear route in an additional format, in accordance with an embodiment of the present invention. In this embodiment, portion702of a linear route is displayed in additional format704(i.e., a photographic view of the street) upon GPS transceiver108detecting that computer system102(i.e., and the user operating computer system102) has slowed down to a specified speed.

FIG. 8depicts display of an alternative route for a portion of an example linear route, in accordance with an embodiment of the present invention. In this embodiment, an indication is provided to the user that alternative route exists for portion802of the linear route, and the alternative route is 10 km shorter.

FIGS. 9A through 9Ddepict selection of an alternative route for a portion of an example linear route, in accordance with an embodiment of the present invention. In this embodiment, route constraints are provided to the user based on dynamic data. An alert is displayed, allowing the user to select the alert to zoom the route to the particular affected area. Automatic zooming can also be configured for specified areas, types of alerts, etc. For example, weather data like flooding, or GPS data showing vehicles ahead on the same route are slowing down, can trigger an alert to be sounded and the particular affected area of the route to be zoomed in showing appropriate icons. The user can, for example, ignore the alerts or modify the route to avoid the affected areas.

As shown inFIG. 9A, weather information904is displayed over an associated portion of generated linear route902, which can be selected by a user (e.g., point and click, or with a touch screen). As shown inFIG. 9B, alternative route906can be generated for the selected portion of the route. For example, alternative route906may be one which avoids inclement weather. As shown inFIGS. 9C and 9D, alternative route906can be selected by the user and placed into the generated linear route (e.g., by dragging and dropping or sliding with a single finger). In this manner, the user can readily drag and drop alternative routes for one or more portions of a linear route.

In another embodiment, navigation program104can provide additional accessibility functions based on individual drivers and route data. For example, a user profile can be configured for a particular driver such that when approaching turns, turn signals are ensured to be activated. In another example, headlights can be turned on and off when navigation program104detects that the driver is entering and exiting a tunnel, respectively.

FIG. 10is a block diagram of internal and external components of a computer system1000, which is representative the computer system ofFIG. 1, in accordance with an embodiment of the present invention. It should be appreciated thatFIG. 10provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. In general, the components illustrated inFIG. 10are representative of any electronic device capable of executing machine-readable program instructions. Examples of computer systems, environments, and/or configurations that may be represented by the components illustrated inFIG. 10include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, laptop computer systems, tablet computer systems, cellular telephones (e.g., smart phones), multiprocessor systems, microprocessor-based systems, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices.

Computer system1000includes communications fabric1002, which provides for communications between one or more processors1004, memory1006, persistent storage1008, communications unit1012, and one or more input/output (I/O) interfaces1014. Communications fabric1002can be implemented with any architecture designed for passing data and/or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within a system. For example, communications fabric1002can be implemented with one or more buses.

Memory1006and persistent storage1008are computer-readable storage media. In this embodiment, memory1006includes random access memory (RAM)1016and cache memory1018. In general, memory1006can include any suitable volatile or non-volatile computer-readable storage media. Software is stored in persistent storage1008for execution and/or access by one or more of the respective processors1004via one or more memories of memory1006.

Persistent storage1008may include, for example, a plurality of magnetic hard disk drives. Alternatively, or in addition to magnetic hard disk drives, persistent storage1008can include one or more solid state hard drives, semiconductor storage devices, read-only memories (ROM), erasable programmable read-only memories (EPROM), flash memories, or any other computer-readable storage media that is capable of storing program instructions or digital information.

Communications unit1012provides for communications with other computer systems or devices via a network. In this exemplary embodiment, communications unit1012includes network adapters or interfaces such as a TCP/IP adapter cards, wireless Wi-Fi interface cards, or 3G or 4G wireless interface cards or other wired or wireless communication links. The network can comprise, for example, copper wires, optical fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. Software and data used to practice embodiments of the present invention can be downloaded to computer system102through communications unit1012(e.g., via the Internet, a local area network or other wide area network). From communications unit1012, the software and data can be loaded onto persistent storage1008.

One or more I/O interfaces1014allow for input and output of data with other devices that may be connected to computer system1000. For example, I/O interface1014can provide a connection to one or more external devices1020such as a keyboard, computer mouse, touch screen, virtual keyboard, touch pad, pointing device, or other human interface devices. External devices1020can also include portable computer-readable storage media such as, for example, thumb drives, portable optical or magnetic disks, and memory cards. I/O interface1014also connects to display1022.

Display1022provides a mechanism to display data to a user and can be, for example, a computer monitor. Display1022can also be an incorporated display and may function as a touch screen, such as a built-in display of a tablet computer.