Patent ID: 12253379

DETAILED DESCRIPTION

Currently, there are many user functions that may help a user better navigate a map environment. Displaying the points of interest, traffic conditions, and the zoom function on a map are each functions that may make a map environment easier to navigate and better display the desired information to a user. Embodiments of the present invention seek to provide a method for displaying the direction and distance of preferred locations using a multiple arrow icon in a map environment.

The present invention will now be described in detail with reference to the Figures.FIG.1is a functional block diagram illustrating an environment, generally designated100, in accordance with one embodiment of the present invention. Modifications to environment100may be made by those skilled in the art without departing from the scope of the invention as recited by the claims. In an exemplary embodiment, environment100includes computing device120and map information server130, all interconnected over network110.

Network110can be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of the two, and can include wired, wireless, or fiber optic connections. In general, network110can be any combination of connections and protocols that will support communication between computing device120and map information server130.

Map information server130contains map data files131. Map information server130may be a management server, a web server, or any other electronic device or computing system capable of receiving and sending data. In other embodiments, map information server130can be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or any programmable electronic device capable of communicating with computing device120via network110and with various components and devices within environment100. In other embodiments of the present invention, map information server130can represent a computing system utilizing clustered computers and components to act as a single pool of seamless resources when accessed through a network. In the exemplary embodiment, map information server130is capable of processing requests for map environment information from map icon program124, located on computing device120. Map information server130may include internal and external hardware components, as depicted and described in further detail with respect toFIG.4.

Map data files131includes information detailing a map environment. In the exemplary embodiment, map data files131includes detailed parameter information, such as points of interest, roadways, and/or distances, among other information, for a location or area.

Computing device120includes user interface (UI)122and map icon program124. Computing device120may be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, a thin client, or any programmable electronic device capable of communicating with map information server130via network110. Computing device120may include internal and external hardware components, as depicted and described in further detail with respect toFIG.4.

UI122may be, for example, a graphical user interface (GUI) or a web user interface (WUI) and can display text, documents, web browser windows, user options, application interfaces, and instructions for operation, and includes the information (such as graphic, text, and sound) a program presents to a user and the control sequences the user employs to control the program. In the exemplary embodiment, UI122allows a user to interact with map icon program124through electronic devices, such as a computer keyboard and/or cursor control devices, such as a computer mouse or touchpad, and through graphical icons and visual indicators, such as secondary notation, as opposed to text-based interfaces, typed command labels, or text navigation.

In the exemplary embodiment, map icon program124is a software application capable of receiving information, such as a user input, via UI122. Although depicted as a separate component, in an embodiment, map icon program124may be partially or fully integrated with UI122. In the exemplary embodiment, map icon program124is capable of communicating with map information server130and retrieving parameter information, such as map data files131, via network110. In other embodiments, map icon program124is fully or partially integrated within a web-based map service, which retrieves a set of parameters from a server associated with the web-based map service. In yet another embodiment, map icon program124retrieves the requested parameters using a software program or a plug-in service.

FIG.2is a flowchart depicting operational steps of map icon program124for depicting location attributes in a map environment, in accordance with an embodiment of the present invention.

Map icon program124receives a request from a user of computing device120, for information about a location of interest (step201). In the exemplary embodiment, map icon program124retrieves the requested information about a location of interest from map data files131, located on map information server130. For example, a user may request information about a type of location, such as a gas station, a restaurant, or a park. The requested information may include information about parameters, such as, the distance from an origin point, a user rating, traffic data, and/or cost information. In the exemplary embodiment, a user also specifies a geographical area for map icon program124to search, the number of search results for map icon program124to return to the user, and which parameter information about the specified location for map icon program124to search. For example, a user may request information regarding gas stations with the lowest fuel cost within a five (5) mile radius from a point of origin, with the search limited to five (5) returned search results.

Map icon program124determines properties associated with a directional arrow for each location of interest searched by a user (step202). In the exemplary embodiment, map icon program124determines a direction and a distance, from the point of origin indicated by a user, to each location of interest. Map icon program124creates a directional arrow based on the determined direction and distance, with the length of the directional arrow being proportional to the distance. For example, if the location represented by the first directional arrow is two (2) miles from the point of origin, and the location represented by the second directional arrow is one (1) mile from the point of origin, map icon program124may create a first directional arrow of a length that is twice the length of a second directional arrow. In other embodiments, map icon program124determines additional parameters for each location of interest, such as a user rating, an average price, and/or the current traffic to the location of interest. For example, if a restaurant represented by a first directional arrow has an average user rating of four (4) stars and a restaurant represented by a second directional arrow has an average user rating of two (2) stars, map icon program124may create the first directional arrow of a length that is twice the length of the second directional arrow.

In one embodiment, map icon program124determines a weight for each directional arrow to reflect the distance from the point of origin indicated by a user to a location of interest. For example, a directional arrow with a heavier weight may indicate that a location of interest is a closer distance to the point of origin than a directional arrow with a lighter weight (depicted inFIG.3A). In other embodiments, the weight on each directional arrow represents a second set of parameters for a location. For example, if a user is searching for gas stations in a geographic region, the length and the direction of a directional arrow may indicate to a user the relative distance and direction of a location of interest from a point of origin on a map while, simultaneously, the weight of each directional arrow may show a fuel price, where a heavier weighted directional arrow may indicate a higher fuel cost.

In another embodiment, the directional arrow representing a location of interest that is the closest distance to the point of origin may be shown as a different color than the directional arrows representing the other locations of interest. For example, a user may select an input to depict the directional arrow representing the location of interest that is the closest distance to the point of origin in green, while the directional arrows representing the other locations of interest are depicted in red. In another embodiment, a color of the directional arrow may be used to represent a type of location when more than one type of location is searched by a user. For example, a red directional arrow may be used to represent gas stations, and a blue directional arrow may be used to represent restaurants. In yet another embodiment, multiple directional arrow attributes are implemented to represent multiple sets of parameters about a location of interest. For example, if a user is searching for restaurants in a geographic region, the length and the direction of each directional arrow may indicate to a user the relative distance and direction of a restaurant from a point of origin. In the same example, simultaneously, the weight of each directional arrow may correspond to an average menu price, where a heavier weighted directional arrow may indicate a higher average menu price while, simultaneously, the color of the arrow may represent an average customer rating, where a darker shade of red indicates a higher average customer rating, and a lighter shade of red indicates a lower average customer rating.

Map icon program124displays the determined directional arrows for each location of interest (step203). In the exemplary embodiment, map icon program124displays all of the determined directional arrows pointing to the respective location of interest as one icon, called the directional arrow icon. The movement of the directional arrow icon is reflective of a cursor movement, controlled by a user of a mouse device. Map icon program124is able to determine the movement of the cursor by communicating with the operating system of the computing device, which can determine whether a selection has been made in the user interface or if the mouse device is hovering (stopping movement while the cursor is within the bounds of an area) over an area. In other embodiments, a user does not use a mouse device to control the directional arrow icon movement, and the directional arrow icon will move responsive to a different user implementation, for example, a user touching the display screen of a tablet device. In the exemplary embodiment, a map icon is displayed at the determined location of interest in the visible region of the map or, if the location of interest is not within the visible region of the map, a ghost image is displayed next to the associated directional arrow. A ghost image is a transparent map image of a location of interest that is located outside the visible area of the map (depicted inFIG.3A). In other embodiments, the ghost image, associated with a location of interest that is outside the visible area of the map, has the distance from the point of origin written on or near it.

Map icon program124determines whether a directional arrow has been selected by a user of the computing device (decision block204). In the exemplary embodiment, the directional arrow icon follows the cursor movement controlled by a user of a mouse device. The directional arrows and ghost images become selectable when a user of the computing device invokes a function key on the keyboard. By subsequently invoking the same function key on the keyboard a second time, or by invoking a different function key, the directional arrow icon reverts back to follow the cursor movement controlled by a user of a mouse device. For example, a user may press a function key on the keyboard, such as F2, which causes the directional arrow icon to stop movement responsive to the mouse device, and causes each directional arrow and each ghost image to become clickable links, which a user may select by clicking on the desired directional arrow, using a mouse device. A user may then press the F2 key a second time, causing the directional arrow icon to revert back to following the cursor movement, controlled by a user of the mouse. In other embodiments, a user does not use a mouse device to interact with a user interface and selects a directional arrow from the directional arrow icon by interacting directly with the display screen. For example, a user of a touch-screen tablet device may select a directional arrow from the directional arrow icon by touching the directional arrow directly on the display screen.

If a directional arrow has been selected by a user of the computing device (decision block204, YES branch), map icon program124resizes the map image to fit the location of interest, selected by a user, in the visible map area (step205). In the exemplary embodiment, map icon program124automatically resizes the map image responsive to a user selecting a directional arrow in order to fit the location of interest associated with the selected directional arrow, as well as the point of origin, in the visible map area. In the same embodiment, a location of interest that was not selected by the user may automatically become visible in the resized map if the location is in the same direction and closer to the point of origin than the selected location of interest. For example, in order to fit a selected location of interest that is a significant distance from the point of origin in the visible map area, map icon program124may need to zoom out the map image in order to show a larger area in the visible range of the map image, and this may allow a second location of interest to be in the visible range as well (detailed inFIG.3B). In other embodiments, map icon program124determines that the location of interest is within the visible map area and the map image does not need to be resized.

Map icon program124resizes the directional arrow icon to reflect the location of interest selected by a user (step206). In the exemplary embodiment, responsive to a user selecting a location of interest, each non-selected directional arrow of the directional arrow icon is resized proportionately to reflect the changed arrow properties at the selected location of interest (detailed inFIG.3B). For example, the directional arrows associated with locations of interest, which may be located on the east side of a map image, will increase in length after the directional arrow icon is moved to a location of interest which may be located on the west side of a map image. In the exemplary embodiment, responsive to a user selecting a directional arrow, each location of interest that is not in the visible map area after it has been resized has a ghost image associated with the directional arrow. If the location of interest is in the visible range after the map has been resized, a map icon will be shown to indicate the location of interest on the map image. In other embodiments, the weight of each directional arrow and/or the color of each directional arrow changes (if using these directional arrow properties), along with the change in length of each directional arrow, to reflect the location of interest selected by the user.

If a directional arrow has not been selected by a user of the computing device (decision block204, NO branch), map icon program124determines if the visible area of the map has been adjusted by a user (decision block207). In the exemplary embodiment, a user selects a location of interest outside the visible map area to view in the same zoomed state by clicking the mouse device and dragging the cursor in the opposite direction of the directional arrow associated with the location of interest the user wishes to view. For example, a user may click a mouse device and drag the cursor in the opposite direction of the directional arrow at the desired location of interest, moving the desired location of interest into the visible map area while the map image remains in the same zoomed state (detailed inFIGS.3C-3D). In other embodiments, a user moves the map image by using a function key on a keyboard and scrolling the mouse device, or by swiping the device display directly if using a touch device.

If the visible area of the map has been adjusted by a user (decision block207, YES branch), map icon program124resizes the directional arrow icon based on the user adjustment (step208). In the exemplary embodiment, responsive to a user adjusting the visible area of the map, map icon program124moves the directional arrow icon to the visible map area of the selected location of interest on the map image and resizes each directional arrow of the directional arrow icon to proportionately reflect the arrow properties at the selected location of interest. In the same embodiment, responsive to a user adjusting the visible area of the map, each location of interest that is not in the visible map area after it has been adjusted has a ghost image associated with the directional arrow. If the location of interest is in the visible range after the map has been adjusted, a map icon is shown to indicate the location of interest on the map image (detailed inFIGS.3C-3D). In other embodiments, the weight of each directional arrow and/or the color of each directional arrow changes (if using these directional arrow properties), along with the change in length of each directional arrow, to reflect the location of interest selected by the user.

If the visible area of the map has not been adjusted by a user (decision block207, NO branch), map icon program124ends.

FIG.3Ais a map environment depicting an example of directional arrow icon302, in accordance with an embodiment of the present invention. Point of origin301is a location determined by a user, and is the location from which the distance and direction to each location of interest is measured. Directional arrow icon302is a display icon which shows the direction and distance from point of origin301to each location of interest searched by a user. Directional arrow icon302includes directional arrows304,306, and308, and map icons303,305, and307. Map icons303,305, and307are associated with directional arrows304,306, and308, respectively, and are transparent map images to represent a location of interest outside the visible map area. As depicted inFIG.3A, the locations of interest associated with map icons303,305, and307are each outside the visible map area, and are shown as ghost images within directional arrow icon302. Directional arrows304,306, and308are each arrows pointing in the direction of the respective location of interest. Cursor300is a cursor point in the map environment controlled by a user of the computing device, and is the center point of directional arrow icon302from which directional arrows304,306, and308originate.

In the exemplary embodiment, the length of each arrow, as well as the weight of each arrow, is proportionately reflective of the distance from the point of origin to the location of interest. For example, directional arrow304is the shortest arrow in length, and the heaviest arrow in weight, depicting the location of interest which is the closest in distance from the point of origin. Directional arrows306and308are proportionately longer and less heavy in weight than directional arrow304, depicting that the locations of interest associated with directional arrows306and308are each proportionately further in distance from the point of origin than the location of interest associated with directional arrow304.

FIG.3Bis a map environment depicting an example of directional arrow icon302, after a user selects a location of interest from the map environment ofFIG.3A, in accordance with an embodiment of the present invention. Point of origin301is a location selected by a user, and is the location from which the distance and direction to each location of interest is measured. Directional arrow icon302is a display icon, which shows the direction and distance to each location of interest, searched by a user, and includes directional arrows304,306, and308and map icons303,305, and307. As depicted inFIG.3B, map icon307is a ghost image, and is associated with directional arrow308. Map icons303and305, associated with directional arrows304and306, respectively, depict a location of interest that is in the visible region of the map image, and do not have the accompanying transparent map images of a ghost image. Directional arrows304,306, and308are each arrows pointing in the direction of the respective location of interest. Cursor300is a cursor point in the map environment controlled by a user of the computing device, and is the center point of directional arrow icon302from which directional arrows304,306, and308originate.

In the exemplary embodiment, map icon305is the location of interest selected by a user, and the visible map area has been resized from the map environment ofFIG.3A, to fit map icon305, associated with directional arrow306, in the visible map area. Map icon303is the location of interest associated with directional arrow304, and is automatically visible in the resized map, as it is located at a nearer distance to the point of origin than map icon305, and is in the same general direction as map icon305.

FIG.3Cis a map environment depicting an example of directional arrow icon302before a user adjusts the visible map area, in accordance with an embodiment of the present invention. Point of origin301is a location selected by a user, and is the location from which the distance and direction to each location of interest is measured. Directional arrow icon302is a display icon, which shows the direction and distance to each location of interest, searched by a user. Directional arrow icon302includes directional arrows304,306, and308, each pointing in the direction of the respective location of interest, and map icons303,305, and307, each reflecting a location of interest inside the visible map area. Map icons303,305, and307are associated with directional arrows304,306, and308, respectively. Cursor300is a cursor point in the map environment controlled by a user of the computing device and is the center point of directional arrow icon302from which directional arrows304,306, and308originate.

FIG.3Dis a map environment depicting an example of directional arrow icon302, after a user adjusts the visible map area ofFIG.3C, in accordance with an embodiment of the present invention.FIG.3Dremains in the same zoomed state asFIG.3C, and directional arrow icon302inFIG.3Dincludes directional arrows304,306, and308, and map icons303,305, and307. Map icon305, the exemplary selected location of interest, is associated with directional arrow306, and is within the visible map area. Map icons303and307, associated with directional arrows304and308, respectively, each reflect a location of interest outside the visible map area. Map icon303reflects a location of interest which remains outside the visible map area fromFIG.3CtoFIG.3D, while map icon307reflects a location of interest that is adjusted from inside the visible map area (map icon307inFIG.3C), to outside the visible map area (map icon307inFIG.3D). Directional arrows304,306, and308ofFIG.3Dare each proportionately adjusted in direction and length from directional arrows304,306and308ofFIG.3C, to reflect the direction and distance of each respective location of interest, from the selected location of interest (map icon305). Cursor300is a cursor point in the map environment controlled by a user of the computing device and is the center point of directional arrow icon302from which directional arrows304,306, and308originate.

FIG.4depicts a block diagram of components of computing device120and map information server130, in accordance with an illustrative embodiment of the present invention. It should be appreciated thatFIG.4provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made.

Computing device120and map information server130each include communications fabric402, which provides communications between computer processor(s)404, memory406, persistent storage408, communications unit410, and input/output (I/O) interface(s)412. Communications fabric402can 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 fabric402can be implemented with one or more buses.

Memory406and persistent storage408are computer readable storage media. In this embodiment, memory406includes random access memory (RAM)414and cache memory416. In general, memory406can include any suitable volatile or non-volatile computer readable storage media.

The programs user interface122and map icon program124in computing device120, and programs map data files131in map information server130are stored in persistent storage408for execution and/or access by one or more of the respective computer processors404via one or more memories of memory406. In this embodiment, persistent storage408includes a magnetic hard disk drive. Alternatively, or in addition to a magnetic hard disk drive, persistent storage408can include a solid state hard drive, a semiconductor storage device, read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, or any other computer readable storage media that is capable of storing program instructions or digital information.

The media used by persistent storage408may also be removable. For example, a removable hard drive may be used for persistent storage408. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer onto another computer readable storage medium that is also part of persistent storage408.

Communications unit410, in these examples, provides for communications with other data processing systems or devices, including between computing device120and map information server130. In these examples, communications unit410includes one or more network interface cards. Communications unit410may provide communications through the use of either or both physical and wireless communications links. The programs user interface122and map icon program124in computing device120and programs map data files131in map information server130may be downloaded to persistent storage408through communications unit410.

I/O interface(s)412allows for input and output of data with other devices that may be connected to computing device120and map information server130. For example, I/O interface412may provide a connection to external devices418such as a keyboard, keypad, a touch screen, and/or some other suitable input device. External devices418can also include portable computer readable storage media such as, for example, thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present invention, e.g., the programs user interface122and map icon program124in computing device120, and programs map data files131in map information server130, can be stored on such portable computer readable storage media and can be loaded onto persistent storage408via I/O interface(s)412. I/O interface(s)412also connect to a display420.

Display420provides a mechanism to display data to a user and may be, for example, a computer monitor.

The programs described herein are identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature herein is used merely for convenience and thus, the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.

The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network (LAN), a wide area network (WAN), and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.

The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.