Applications, e.g., software applications available over the World Wide Web, that provide driving directions, and that plot driving routes on maps, are well known. For example, many presently existing applications allow a user to provide a specific starting address, e.g., an address in Detroit, Mich., and a specific destination address, e.g., an address in New York, N.Y. Such presently existing applications might then provide the user with a set of step-by-step directions regarding the route to take to get from a specified starting address to the specified destination address. Further, such known applications may plot a driving route on a map to provide a visual representation of the provided driving directions. Further, some presently existing applications have the ability to suggest stopping points along the suggested driving route.
However, existing applications are limited to providing users with a suggested list of stopping points based on short lists of business categories. For example, a user may be able to specify an interest in stopping points associated with “restaurants,” but the user will be unable to specify the names of specific restaurants at which the user would like to stop. Thus, users of existing applications are unable to specify the precise location of their desired stopping points, nor are they able to specify with precision what they would like those stopping points to be.
Further, persons driving from point A to point B often may want to stop along the way at a specific street address. For example, someone driving from Detroit to New York may want to stop to see a friend in Cleveland. Moreover, a person driving from point A to point B might want to specify a particular place on a map at which the person would like to stop while enroute, e.g., to get gas, visit an attraction, etc. For example, the person driving from Detroit to New York may wish to stop at Niagara Falls, which may be easily found on a map. Further, a person driving from point A to point B may want to stop a certain distance from either point A or point B along the route. For example, the person driving from Detroit to New York may wish to stop after driving two-hundred (200) miles from Detroit, e.g., to get gas. Further, a person driving from point A to point B may want to stop along the way for a specific purpose, e.g., to buy a gift for a friend, before having lunch with the friend at a Chinese restaurant. Similarly, the person driving from point A to point B may wish to stop at a specific business of other location along the way. However, existing applications do not allow users to specify where they wish to stop according to points on maps or according to specific purposes or location names.
Accordingly, a need exists for an interactive route based search application that allows users to search for stopping points along driving routes, where the stopping points satisfy the user's precise search criteria.
In some embodiments, server 102 and computer 103 are the same physical computing device. In other embodiments, server 102 and computer 103 communicate via a connection 106. Connection 106 is generally a network connection such as will be known to those skilled in the art, and may include an internet connection, or a connection to a local area network (LAN) or wide area network (WAN). However, connection 106 may use any kind of telecommunications or computer network known to those skilled in the art.
Server 102 also communicates with a map server 108. In some embodiments, server 102 and map server 108 are the same physical computing device, although in other embodiments server 102 and map server 108 communicate via a connection 106. Map server 108 also communicates with a map database 110, either via a connection 106 or by virtue of locating map server 108 and map database 110 on the same physical computing device. In one embodiment, map server 108 and map database 110 are effectively replaced by an application service provider such as the Microsoft® MapPoint Web Service offered by Microsoft Corporation of Redmond, Wash., which is known to those skilled in the art.
Server 102 also communicates with an information database 112. Server 102 and information database 112 may exist on one physical computing device, or may communicate via a connection 106.
Information database 112 includes data relating to the locations and other information associated with entities such as individuals, businesses, government agencies, etc. For each individual and/or business listed in information database 112, associated information may include a street address, a telephone number, as well as data providing information about a category or categories to which the person or business belongs. In some embodiments, information database 112 includes a yellow pages directory and/or a white pages directory such as is known to those skilled in the art. Storing and retrieving information related to entities listed in information database 112 is described in more detail in the presently co-pending applications fully incorporated by reference herein above.
Those skilled in the art will understand that the processes explained below may be tangibly embodied as one or more computer programs stored on computer readable media attached to computer 103, servers 102 and 108, and/or databases 110 and 112. Further, it should be understood that system 100 depicted in
In step 200, a user 101 plans a route, including a start point and an end point. A process of planning a route is described in more detail below with reference to
In step 210, the user 101 selects stopping points along the route specified in step 200. The process of selecting stopping points is described in more detail below with reference to
In step 220, the user 101 is provided with driving directions. Driving directions are discussed in more detail below with reference to
In step 305, the user 101 provides input to computer 103 indicating a manner in which a starting point is to be chosen. Control then proceeds to one of steps 310, 315, or 320, according to the input received.
In step 310, the user 101 specifies a street address by providing input to computer 103. An input form for providing a street address according to one embodiment is depicted in
In step 315, the user 101 provides input to computer 103 to select stopping points based on points of interest. For example, the user 101 may be presented with a list of categories of points of interest, such as restaurants, museums, hotels, amusement parks, etc. From step 315, control proceeds to step 325, in which the user 101 is presented with possible points of interest which the user 101 can then select as a starting point of interest (P01).
In step 320, the user 101 selects a staring point based on addresses that have been saved in information database 112 and associated with the particular user 101.
In each of steps 310, 320, and 325, the selected starting POI is submitted to server 102, whereupon control proceeds to step 330. Alternatively, the selected starting point may be submitted to server 102 at some other time, such as following steps 335, 345, and 350, described below.
In step 330, the user 101 selects a manner of specifying an endpoint for the intended driving route of the user 101. Accordingly, points are selected in either of steps 335, 340, and 345, in the same manner as discussed above with respect to 310, 315, and 320. Further, from step 340, control proceeds to step 350, just as described above regarding steps 315 and 325.
In each of steps 335, 345, and 350, the selected ending POI is submitted to server 102, whereupon control proceeds to step 330.
In step 355, server 102 validates the addresses of the starting and ending points chosen by the user 101. Generally, this is accomplished by submitting these addresses to map server 108, which in turn determines whether the addresses specified by the user 101 exist in map database 110. Alternatively, the addresses submitted by the user 101 could be checked against a list of possible valid addresses stored in information database 112.
If the server 102 determines in step 355 that one or both of the addresses provided by the user 101 are invalid, the user 101 is returned to the beginning of the process depicted in
In step 360, the starting and ending points submitted by the user 101 are stored in information database 112.
It will be understood by those skilled in the art that with reference to the steps described in
Following step 360, the process described with respect to
In step 505, the user 101 specifies a manner of selecting stopping points along an indicated driving route, such as, for example, the driving route chosen as described with respect to
With respect to the process described by
In step 705, the user 101 indicates what action the user 101 would like to take with respect to the stopping point that has been specified by a street address. Depending on the selection made in step 705, control proceeds to any one of steps 710, 715, 720 or 725.
Control proceeds to step 710 if the user 101 has indicated in step 705 that the stopping point should be added to the user's route.
Control proceeds to step 715 if the user 101 has made an indication both to select the stopping point and to search for places to stop within proximity to the stopping point.
Control proceeds to step 720 if the user 101 has made an indication not to add the stopping point, but to use the stopping point as a basis for searching for possible places to stop, as discussed above with respect to step 715.
Control proceeds to step 725 if the user 101 has made an indication to search the driving route selected as described with respect to
It should be understood that the distance from the stopping point searched in steps 715 and 720 may be provided by the user 101, or may be predetermined. Similarly, both the distance from the driving route to be searched in step 725, as well as the distance along the driving route from the stopping point to be searched, may be provided as input from the user 101, or may be predetermined.
Following each of steps 710, 715, 720 and 725, control proceeds to step 730. In step 730, the user 101 provides input indicating whether to add the selected stopping point to the driving route selected as described with reference to
In step 740, the user 101 provides input indicating whether or not the user 101 wishes to select another stopping point to be added to the driving route. If yes, control proceeds to the beginning of the process flow described with respect to
In step 1305, the user 101 selects an action to be taken with respect to the indicated stopping point.
Control proceeds to step 1310 if the user 101 has selected to search for places to stop near the indicated stopping point. Accordingly, in step 1310, the user 101 is presented with a list of search results, possibly after being prompted for further criteria to narrow the search. For example, the user could be prompted to search for particular categories of businesses or other entities near the indicated stopping point.
Control reaches step 1315 if the user 101 has indicated to search near the closest city to the indicated stopping point.
In step 1320, the user 101 is prompted for an indication as to whether the stopping point should be added to the driving route. If not, control proceeds to step 1330. If yes, control proceeds to step 1325.
In step 1325, the stopping point is saved in information database 112. Control then proceeds to step 1330.
In step 1330, the user 101 provides input indicating whether or not the user 101 wishes to select another stopping point to be added to the driving route. If yes, control proceeds to the beginning of the process flow described with respect to
In step 1605, the user 101 selects an action for the indicated stopping point. Control then proceeds to one of steps 1610, 1615, or 1620.
In step 1610, the user 101 is able to search for places to stop near the indicated stopping point. Step 1610 is similar to step 715 described above with reference to
In step 1615, the user 101 has made an indication to search near the city closest to the indicated stopping point. Step 1615 is similar to step 1315 described above with reference to
In step 1620, the user 101 has made an indication to search for places to stop near the indicated stopping point along the route selected, for example, as described above with reference to
Steps 1625 through 1635 are similar to steps 730 through 740 described above with reference to
In step 1805, the user 101 indicates either a category or a key word within which to search. Referring back to
Step 1807 is optional, and is generally used in embodiments in which a user 101 has indicated a category search in step 1805. In step 1807, a user 101 is presented with a list of categories possibly responsive to the request submitted in step 1805; the user 101 may select a category to see a listing of search results relevant to that category.
In step 1810, the user 101 selects from the results of the search undertaken within the category or key words provided as described above with respect to step 1805.
In step 1815, after the user has selected search results to be included in the driving route, the user 101 indicates whether the point is to be added as a stopping point or as a link. If a stopping point is added, the driving route will be altered to include whatever addresses are associated with selected stopping points. On the other hand, if the user 101 selects to add the points as links, the driving route will not be altered, but driving directions to and from the driving route will be provided for the indicated point.
Control proceeds to step 1820 if the user 101 has selected to add a point as a link in step 1815. In step 1820, the link is saved and associated with the user 101 in the indicated driving route. Generally, this information is saved on server 102 in flash or information database 112.
Control proceeds to step 1825 when the user 101 has selected to save a point as a stopping point in step 1815. In step 1825, the point is saved as a stopping point and associated with the user 101, generally on server 102 or in information database 112.
Following either of steps 1820 and 1825, control proceeds to step 1830. In step 1830, it is determined whether or not the user 101 wishes to find another stopping point along the indicated driving route.
While the present invention has been particularly shown and described with reference to the foregoing preferred and alternative embodiments, it should be understood by those skilled in the art that various alternatives to the embodiments of the invention described herein may be employed in practicing the invention without departing from the spirit and scope of the invention as defined in the following claims. It is intended that the following claims define the scope of the invention and that the method and apparatus within the scope of these claims and their equivalents be covered thereby. This description of the invention should be understood to include all novel and non-obvious combinations of elements described herein, and claims may be presented in this or a later application to any novel and non-obvious combination of these elements. The foregoing embodiments are illustrative, and no single feature or element is essential to all possible combinations that may be claimed in this or a later application.
This application is related to U.S. application Ser. No. 10/948,425, entitled “Business Rating Placement Heuristic,” filed Sep. 23, 2004; U.S. application Ser. No. ______, entitled “Improving Search Relevance And Yellow Page Classification Integration by Using Business Profile Content And Vertical Industry Templates,” filed Feb. 17, 2005; U.S. application Ser. No. ______, entitled “Method For Extraction And Selection Of Enhanced Business Information From Websites, Business Profiles And Advertising Products,” filed Feb. 17, 2005; U.S. application Ser. No. 10/872,050, entitled “Automated Search Parameter Resubmission For Map Based Searches,” filed Jun. 18, 2004; U.S. application Ser. No. 10/872,266, entitled “Stackable Icons,” filed Jun. 18, 2004; U.S. application Ser. No. 10/872,051, entitled “Hierarchial Category Index Navigational System,” filed Jun. 18, 2004; application Ser. No. 10/800,887, entitled “Information Distribution System And Method That Provides For A Position Adjustment Factor,” filed Mar. 15, 2004; application Ser. No. 10/801,156, entitled “Information Distribution System And Method That Provides For Enhanced Display Formats,” filed Mar. 15, 2004; application Ser. No. 10/800,444, entitled “Information Distribution System And Method That Organizes Listings Using Tiers,” filed Mar. 15, 2004; U.S. application Ser. No. 10/680,952, entitled “Information Distribution System,” filed Oct. 8, 2003; and U.S. Provisional Application 60/505,597, entitled “Information Distribution System,” filed Sep. 24, 2003. Each of the above-referenced applications is hereby incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
Parent | 11087337 | Mar 2005 | US |
Child | 12749081 | US |