1. Field of the Invention
The present invention is directed to systems, methods, and computer program products for products, services, events, and activity-based interactive trip mapping; more particularly interactive mapping of a multi-point trip.
2. Discussion of the Background
Recently, online web services have seen the growth of available online mapping services, such as Google Maps, Yahoo! Maps, and MapQuest, and at the same time an increasing number of product and service listing websites and databases have become available for consumers, such as Froogle, Shopping.com, Shopzilla, and yellowpages.com. Current online mapping services allow a user to create directions to specific locations; for example: directions from a starting point to an end point, or from starting point to an end point by passing by one or more intermediate points. Further, mapping service sites usually are configured to show a certain number of sponsored locations or links to shops or services for consumers that are in the wider geographic area of the calculated directions.
Current product listing websites only list products based upon product details, specification, price, and store information, etc. A store, retailer, or other business offering products or services today usually provides a reference by a link on their webpage to a mapping service by using the address or other geographical data of the corresponding store.
The inventors of the present invention have recognized that presently there is no integration of the above-noted two web-based services available, and no software or service is available to provide a combination of these services. The present invention bridges the gap between the online mapping services and online product listing sites or databases, so as to provide a combined service for interactive mapping. Accordingly, one object of the present invention is to provide a solution to the above described deficiency of online mapping systems and online product listing services. A process for interactive mapping, such as an interactive mapping system of a multi-point itinerary or trip is provided, where the route mapping is based upon information about each point and preferences of the user. The mapping process generates an access route map including individual intermediary or route points such as: service points, shopping locations, geographical locations, and other service or activity locations. The route is based upon overall itinerary or trip constraints and preferences, individual stop point constraints and preferences, and the current availability of products and services at the route points. The interactive mapping system calculates an optimized trip by optimizing global constraints of the itinerary including, but not limited to, time, cost, and distance. The mapping system also takes into account limitations or parameters set for the individual route points. The service then allows the user to reserve or purchase available items from the set route points.
To address the above described and other objects, the present inventors have invented a novel computer-based system, method, and computer program product by which an interactive mapping system is provided, where the trip as a whole and the individual intermediary or route points and destinations are fully configurable. Based on a query entered by a user, such as a potential customer, to the interactive mapping system via a web interface or another type of user interface or access terminal, the interactive mapping system creates a shopping, service, activity, or event trip or itinerary, with a starting point and/or an end point, where the route is made up of route points or intermediary geographical points that are generated from a list of products, services, activities, and/or events that the user would like to purchase, use, rent, or perform during the trip. As one of ordinary skill in the art would recognize, the invention is not limited to the above examples of possible activities. The user can thereby create a query for the interactive mapping system including data related to a start point or end point, and can also create a list of possible products, services, activities, and events the user wants purchase, use, or rent during the trip. Any activity, service, event, or product that has to be purchased, rented, used, or performed during the trip, and that is related to a geographical location, can be used to generate the route points or intermediary geographical points. The user can further specify the individual product, service, activity, or event, before or after the querying of the interactive mapping system. In certain embodiments of the invention, it is also possible to enter overall trip or itinerary constraints and thereby set global itinerary criteria to be applied to any of the products, services, activities, or events that were not individually specified. The itinerary can be optimized based specified criteria (minimize distance, maximize fuel efficiency, etc.).
Based on the query and other information entered by the user, the interactive mapping system creates a map or accesses a service that routes a map based upon the specification data. Once the interactive mapping system has proposed a route, the user can then interactively change constraints to the individual intermediary points (route points) or to the overall trip, and such modification is possible until the user is satisfied with the route. Further, driving directions may be generated, and the route created by the interactive mapping system may be exported to a printer to print a convenient mapping document for the user, to a personal digital assistant (PDA), to a mobile phone, to a car navigation system, to another mobile device, or to a navigation system.
Example constraints to the route points can be any parameter describing the products, services, activities, locations, or events. Constraints or criteria to the overall trip can be, for example, the time, distance, or any other user-related or consumer-related constraints. A non-limiting example of parameters that may be used as global itinerary parameters of the overall trip include: total cost of the trip (including costs associated with a product, service, activity, or event, gas costs, car maintenance costs per mile), total costs of the trip excluding the transportation costs, total distance of the trip, maximum number of locations the user wants to travel to, total duration of the trip, departure time at the starting point, latest possible end time of the trip, minimal stops at traffic lights, avoiding dangerous areas (heavy traffic or crime), avoiding highways, preferring highways, maximum distance between two route points, and so on. A non-limiting example of parameters specifying the products, services, activities, and events include: the price of a product, service, activity, or event, location of an establishment, hours of operation, item availability (store stock, status of your dry cleaning, etc.), user ratings of the place offering the requested product, service, activity, or event, desired or required duration of different types of activities on the trip, such as the duration of meetings, movies, show at a theater, amusement parks or sports activities, etc.
Other characteristics and advantages of the invention will become apparent from the following detailed description, particularly when considered in conjunction with the drawings in which:
Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts throughout the several views.
The interactive mapping system 2 provides access to different types of databases and can also maintain its own databases to create a route. The database of interactive mapping system 2 can be stored or created locally at the user's PC or other terminal device, or can be stored at a server that is accessed by the interactive data system. Information databases such as databases on price and availability 10, may include information related to store or service location, activity availability, and current price. Examples include the availability of a particular product a user wants to purchase, status information such as whether the dry cleaning is ready, availability of seats for a movie, opera, theater, musical, available space in the fitness center, driving range, tennis courts, and so on. Other possible databases include those having information on store or activity location and hours of operation 11 (geographical location of the shop, service, activity, or event location), and databases including user reviews 12. It is also within the scope of the invention to access databases 13 having other types of available information, such as databases with information on road construction, traffic information, local access direction for individual shops, etc.
Different scenarios are within the scope of invention how to use the interactive mapping system 2. For example, the interactive mapping service 2 can be accessed by a user interface 6. The interactive mapping system 2 itself can access a mapping system through any kind of Internet browser or locally installed mapping system via a mapping interface 3, and the mapping results can be shown on the Internet browser, and the result can be exported by a export interface 4 to a printer, a personal digital assistant (PDA), a cell phone, or a car navigation system, or any other system or mobile electronic device. The results of the interactive mapping system 2 shown on an Internet browser can be exported to any type of device that can display or instruct the user how to use the generated interactive map. In one embodiment, the interactive mapping system is accessed via a mobile phone, cellular phone, or PDA, and the results are subsequently shown on the device, without further exporting the results to a second device. By means of the data exchange interface 5, other information can be accessed by the interactive mapping system, for example, the file system of the local PC or an e-mail system can be accessed and used by the interactive mapping system 2.
Next, the use of the interactive mapping system from a user's view is explained. In this illustrative example, a user uses the interactive mapping system 2 to plan his trip or itinerary. During his trip, he wants to do three activities: pizza for lunch, drop off the laundry at the dry cleaning, and gas-up the car. These three activities are the intermediary points (route points) of the trip. His start location is 801 Gateway Boulevard, South San Francisco, Calif., and the end location, which signifies the location where he ends his trip, is the same address as the start location. The trip or itinerary can also be given a name or a label, for example “afternoon shopping trip,” such name or label can be used to identify the trip when it is saved by the user. In another embodiment, rather than indicating different activities the user wants to do, a shopping list or service list is set up. The interactive mapping system 2 therefore can also include the functionality of a “shopping cart” service. Such list can include a variety of items that the user would like to purchase or rent, or services or activities that the user would like to use or accomplish. The shopping cart list can be associated with a particular shop, a shopping mall, a sports center, etc. and thereby it is possible to add additional information to an intermediary point search request. The user may also enter a certain number of products or services to the interactive mapping system, and the interactive mapping system will combine as many products or services together to reduce the number of intermediary or route points. For example, the pizza and the dry cleaners may be located in the same shopping mall, thereby consisting of only one route point.
The interactive mapping system permits data and status exchange between the shop, service, activity, or event locations and their respective databases or websites (such as e-commerce systems), and the interactive mapping system 2 itself. The local database of the interactive mapping system can thereby be updated with data that are time-variable. For example, stock and availability information of products, services, and activities, as well as status of tasks that are processed and can-be updated. In the example of the dry cleaning mentioned above, the shopping cart of the dry cleaners could have two or more entries. The first entry is the dropping off of the dry cleaning, while the second would be a reminder that the dry cleaning is ready to be picked up. The pick-up date and time could be set by the user when querying the dry cleaners when planning the trip, or integrated into the system such that the dry cleaner sends notice, when the dry cleaning is ready, thus updating the system and notifying the user. The interactive mapping system can be updated by a database update system or a logistics or stock management software of the dry cleaners. Such information on the status of the dry cleaners or any over service can also automatically update the shopping cart of the user, as soon as the service is performed. The notification can be in the form of an alarm or reminder data transmission, for example in form of an e-mail, Internet data packet, text message, or an Internet control message protocol packet (ICMP-packet), so that an itinerary can be generated to accomplish all the ready tasks. It should be noted that products could also be purchased at a location being primarily service providers. In the above case of a dry cleaner, a consumer may want to purchase cleaning related products that they have for sale at the dry cleaner.
If a conventional mapping system would be used together with conventional “yellow pages” website, it would take a substantial amount of time and effort to map the trip. First, most of the current mapping systems only allow searching and mapping of two-point trips, where one known point forms the start point. Some systems allow an additional intermediary stop point. Second, by using the current mapping systems and the businesses or activities yellow pages, the user would have to look for a pizza place close to the address of the start point of a particular trip. Therefore, two or more separate searches for suitable dry cleaner companies and gas stations, if possible, those closest to the pizza place, would have to be performed and all the information would have to be assembled manually so as to create a desired trip. The present invention allows the user to merely perform one search to create the activity trip. Further searches are optional to further specify or modify the trip.
The above example using three intermediary or route points as intermediary destinations (pizza, dry cleaning, gas station) during the trip provides a basic query for the initial mapping or activity trip based on the interactive mapping service 2. The minimal requirement to create an activity trip includes a starting point and at least one desired intermediary point (route point). However, the invention is not limited as to the number or variety of intermediary destinations (route points) or as to the start and end points for the trip. The intermediary point or route point can be a geographic location or address (such as the name or address of a shopping mall), but can also be a product, service, activity, or event name, a shop or restaurant name (Joe's Pizza) or just the name of a product itself (IPOD), which is not related to a geographic position or address. The interactive mapping system 2 is configured to find the ideal geographic position or address for the route point.
Also shown on this exemplary interface 30 is a field in which a user can enter an end point 42. The route can be a one-way route, for example from work to home, but can also start and end at the same point. If the end point is the same as the start point, option box 44 can be checked, or if the box 42 for the end point is not filled out, the interactive mapping system can automatically assume that the start point is also the end point. Another example of a one-way route would be a trip from the user's home to a friend's house, where the user wants to buy a gift or some food for his friend along the way. By adding additional parameters to the intermediary or route points, a highly customer-rated liquor, flower, or chocolate shop could be chosen along the way. After the first parameters are provided to the graphical user interface 30, the user can click or activate the go button 48, to proceed to the next step in the interactive mapping system. As would be recognized by one of ordinary skill, the examples just described are not limiting and many other variants could be devised while staying within the scope of the invention.
Each possible route point shown in the lists 51, 52, and 54 can be accompanied with a hyperlink or a link to a database providing further information about the route point, such as for example hours of operation or customer reviews. In the examples given in
In
It is also within the scope of the invention that the user can select the individual route point destinations such as the symbols 81 shown on the map, so as to reconfigure the parameters or constraints associated with the route point. For example, the symbol 81 could be clicked on or by clicking on the right mouse button, a new window or context window would be shown, where this particular route point could be modified, deleted, or further specified. If the user is pleased with the trip or itinerary that the interactive system has provided, the user can print the itinerary by selecting the print button 82 or can export the itinerary to another electronic device by selecting the export button 84.
It is also within the scope of the invention that the itinerary can be saved as a file to a disk, memory card, or optical data carrier such as a CD, DVD, etc., and that an electronic device subsequently reading the saved itinerary can display the map and/or the driving directions. The itinerary can also include, in addition to the driving directions, different key information such as estimated time for the trip, overall distance, estimated gas consumption, and this information can be also dependent on the time when the trip will be done. Other business-related aspects can also be included in the listings of different shops, service locations, activities, or event centers, including, but not limited to customer satisfaction rankings or payment possibilities.
The computer system 701 includes a bus 1102 or other communication mechanism for communicating information, and a processor 1103 coupled with the bus 1102 for processing the information. The computer system 701 also includes a main memory 1104, such as a random access memory (RAM) or other dynamic storage device (e.g., dynamic RAM (DRAM), static RAM (SRAM), and synchronous DRAM (SDRAM)), coupled to the bus 1102 for storing information and instructions to be executed by processor 1103. In addition, the main memory 1104 may be used for storing temporary variables or other intermediate information during the execution of instructions by the processor 1103. The computer system 701 further includes a read only memory (ROM) 1105 or other static storage device (e.g., programmable ROM (PROM), erasable PROM (EPROM), and electrically erasable PROM (EEPROM)) coupled to the bus 1102 for storing static information and instructions for the processor 1103.
The computer system 701 also includes a disk controller 1106 coupled to the bus 1102 to control one or more storage devices for storing information and instructions, such as a magnetic hard disk 1107, and a removable media drive 1108 (e.g., floppy disk drive, read-only compact disc drive, read/write compact disc drive, compact disc jukebox, tape drive, and removable magneto-optical drive). The storage devices may be added to the computer system 701 using an appropriate device interface (e.g., small computer system interface (SCSI), integrated device electronics (IDE), enhanced-IDE (E-IDE), direct memory access (DMA), or ultra-DMA).
The computer system 701 may also include special purpose logic devices (e.g., application specific integrated circuits (ASICs)) or configurable logic devices (e.g., simple programmable logic devices (SPLDs), complex programmable logic devices (CPLDs), and field programmable gate arrays (FPGAs)).
The computer system 701 may also include a display controller 1109 coupled to the bus 1102 to control a display 1110, such as a cathode ray tube (CRT), for displaying information to a computer user. The computer system includes input devices, such as a. keyboard 1111 and a pointing device 1112, for interacting with a computer user and providing information to the processor 1103. The pointing device 1112, for example, may be a mouse, a trackball, or a pointing stick for communicating direction information and command selections to the processor 1103 and for controlling cursor movement on the display 1110. In addition, a printer may provide printed listings of data stored and/or generated by the computer system 701.
The computer system 701 performs a portion or all of the processing steps of the invention in response to the processor 1103 executing one or more sequences of one or more instructions contained in a memory, such as the main memory 1104. Such instructions may be read into the main memory 1104 from another computer readable medium, such as a hard disk 1107 or a removable media drive 1108. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in main memory 1104. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions. Thus, embodiments are not limited to any specific combination of hardware circuitry and software.
As stated above, the computer system 701 includes at least one computer readable medium or memory for holding instructions programmed according to the teachings of the invention and for containing data structures, tables, records, or other data described herein. Examples of computer readable media are compact discs, hard disks, floppy disks, tape, magneto-optical disks, PROMs (EPROM, EEPROM, flash EPROM), DRAM, SRAM, SDRAM, or any other magnetic medium, compact discs (e.g., CD-ROM), or any other optical medium, punch cards, paper tape, or other physical medium with patterns of holes, a carrier wave (described below), or any other medium from which a computer can read.
Stored on any one or on a combination of computer readable media, the present invention includes software for controlling the computer system 701, for driving a device or devices for implementing the invention, and for enabling the computer system 701 to interact with a human user. Such software may include, but is not limited to, device drivers, operating systems, development tools, and applications software. Such computer readable media further includes the computer program product of the present invention for performing all or a portion (if processing is distributed) of the processing performed in implementing the invention.
The computer code devices of the present invention may be any interpretable or executable code mechanism, including but not limited to scripts, interpretable programs, dynamic link libraries (DLLs), Java classes, and complete executable programs. Moreover, parts of the processing of the present invention may be distributed for better performance, reliability, and/or cost.
The term “computer readable medium” as used herein refers to any medium that participates in providing instructions to the processor 1103 for execution. A computer readable medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical, magnetic disks, and magneto-optical disks, such as the hard disk 1107 or the removable media drive 1108. Volatile media includes dynamic memory, such as the main memory 1104. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that make up the bus 1102. Transmission media also may also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
Various forms of computer readable media may be involved in carrying out one or more sequences of one or more instructions to processor 1103 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions for implementing all or a portion of the present invention remotely into a dynamic memory and send the instructions over a telephone line using a modem. A modem local to the computer system 701 may receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector coupled to the bus 1102 can receive the data carried in the infrared signal and place the data on the bus 1102. The bus 1102 carries the data to the main memory 1104, from which the processor 1103 retrieves and executes the instructions. The instructions received by the main memory 1104 may optionally be stored on storage device 1107 or 1108 either before or after execution by processor 1103.
The computer system 701 also includes a communication interface 1113 coupled to the bus 1102. The communication interface 1113 provides a two-way data communication coupling to a network link 1114 that is connected to, for example, a local area network (LAN) 1115, or to another communications network 1116 such as the Internet. For example, the communication interface 1113 may be a network interface card to attach to any packet switched LAN. As another example, the communication interface 1113 may be an asymmetrical digital subscriber line (ADSL) card, an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of communications line. Wireless links may also be implemented. In any such implementation, the communication interface 1113 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
The network link 1114 typically provides data communication through one or more networks to other data devices. For example, the network link 1114 may provide a connection to another computer through a local network 1115 (e.g., a LAN) or through equipment operated by a service provider, which provides communication services through a communications network 1116. In preferred embodiments, the local network 1114 and the communications network 1116 preferably use electrical, electromagnetic, or optical signals that carry digital data streams. The signals through the various networks and the signals on the network link 1114 and through the communication interface 1113, which carry the digital data to and from the computer system 701, are exemplary forms of carrier waves transporting the information. The computer system 701 can transmit and receive data, including program code, through the network(s) 1115 and 1116, the network link 1114 and the communication interface 1113. Moreover, the network link 1114 may provide a connection through a LAN 1115 to a mobile device 1117 such as a personal digital assistant (PDA) laptop computer, or cellular telephone. The LAN communications network 1115 and the communications network 1116 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on the network link 1114 and through the communication interface 1113, which carry the digital data to and from the system 701, are exemplary forms of carrier waves transporting the information. The processor system 701 can transmit notifications and receive data, including program code, through the network(s), the network link 1114 and the communication interface 1113.
http://www.adaptivepath.com/publications/essays/archives/000385.php
The ShopSpot middleware 250 includes a ShopSpot server 255. The ShopSpot server can access five separate services, an inventory server 251, a yellow pages or listing server 252, a mapping server 256, a route management server 257, and an e-commerce server 258. Each of these servers can be part of the interactive mapping system. These servers can be installed on a single computer system or on a distributed computer system linked through a network. The inventory server 251 controls the search through the product database 271 and service catalogue 272 using the product items, services, activities, or events requested by the user as key terms that were entered into a query for the interactive mapping system. The yellow pages or listing server 252 interfaces with the business listings 273 so that items, services, activities, or events found by the inventory server 251 can be associated with particular businesses, shopping malls, sports centers, etc., and their respective locations. A reviews and coupons database 274 can provide additional information on all the business places for products, services, activities, and events. The database update module 270 is used to update the product database 271, the service categories 272, the business listings 273, and the reviews and coupons database 274. For example, availability of products of a shop can be updated on a continuous basis. Also, information on the mere existence or relocation of a shop or a service location is maintained for the interactive mapping system.
The e-commerce server 258 provides access to companies who aggregate and share their data on a request-by-request basis. For example, the e-commerce server can directly access the stock or price databases of individual companies, so as to provide updated information to the user of the interactive mapping system. If a product that is queried by the user is not available in a particular shop, or is for example out of the price range specified by the user when querying the interactive mapping system, the e-commerce server allows the interactive mapping system to access the relevant data of the individual shops. Thus, it is possible to remove certain shops from consideration based on a determination that they cannot provide the product, service, activity, or event as desired by the user at the time the user intends to make his trip. In another example, a fitness center, movie theater, opera, reservation system, and update on available seats or available fitness machines can be accessed, and thus a trip to a full fitness center, movie theater, or opera can be avoided if places are not available. If places or seats are available for the fitness center, theater, or opera, the seats could then be reserved or purchased.
The route management server 257 generates the individual route points and also, if applicable, a stop-point based on the results of the inventory server 251 and yellow pages or listing server 252. Further, the route management server 257 takes into account other information that was input to the interactive mapping system by the user, such as time limitations to the entire trip or to the individual route points, start time of the trip, maximum prices for products, services, activities, or events, quality or user review ratings required by the user for the individual product, service, activity, or event, availability of the products, services, activities, or events, or any other trip criteria the user would like to take into account.
The mapping server 256 gets the resulting stop-points from the route management server 257 and creates the route map that is displayed for the user via a graphical user interface. The mapping server can for example access a generic mapping program like MS Streets and Trips or access Internet-based mapping services, such as mapquest or others. If the trip or itinerary proposed by the mapping server 256 does not fulfill the global trip criteria set by the user, for example, the itinerary exceeds the maximum expected length of the trip, duration of the trip, too high gas costs, number of stops at traffic lights, or too high a traffic density on the roads, the mapping server 256 or the ShopSpot server 255 can inform the user by showing this information, or by listing alternative routes for comparison. It is also possible for the user to modify his criteria and subsequently request a new trip from the mapping server 256. Data entered by the user to query the ShopSpot server 255 can be stored within the session data of the web browser that can be identified optionally with a cookie that contains the unique session identification. Several such sessions can be tracked to analyze user intent and interests, allowing for more intuitive selection of services, vendors, and products to the user, so as to create an user profile. Additionally, the user can create a personal account on ShopSpot that allows for user data to be built into a user profile.
One possible embodiment of the implementation of the search algorithm is done by optimizing a function based upon all possible trip constraints (e.g., total time, total cost, length of trip, etc.). The function can be set up to only optimize upon constraints found pertinent by the user or the program. The optimized function then returns the proposed trip itinerary.
If the user of the interactive mapping system has consumer habits that are regularly repeated or if the user wants to memorize a certain itinerary, the user can save an itinerary calculated by the interactive mapping system. For example, every Friday the user may want to go to the dry cleaners, to the car wash, and to the video store to rent a couple of DVD's for the weekend. This itinerary can be saved, for example under the name “weekend starter trip” and can be recalled every Friday afternoon, before performing the trip. The query page 110 shows on the left side of the screen a list of favorite trips 112 that were saved by the user, or were proposed by the interactive mapping system and their commercial partners, such as companies who pay the interactive mapping system provider to have their shopping trips listed for different types of users. Such trips can be dedicated to a theme, such as Christmas shopping, Halloween experience, city afternoon workout, etc. In the example given in
Obviously, numerous modifications and variations of the present invention are possible in light of the above teachings. It is therefore to be understood that, within the scope of the appended claims, the invention can be practiced otherwise than as specifically described herein.