As mobile computing devices become more commonplace, users have become more reliant on location-based mobile applications to navigate their environment. Global Positioning System (GPS) technology is commonly used for providing directions to outdoor locations. Directions may be provided within indoor environments based on maps that have been processed to identify different routes in an indoor environment. However, mobile applications have not been developed to allow users to navigate to and access requested items at different locations within indoor environments.
Aspects of the present disclosure relate generally to providing directions to locations in an indoor environment where specific items may be accessed. A current location of a user's mobile computing device is identified and a map corresponding to an indoor environment at or near the current location is retrieved. The user may input an item or a list of items to be accessed in the indoor environment. The item(s) are matched to inventory listings associated with the indoor environment. The map is then returned to the user's device with indications of where the item(s) may be accessed in the indoor environment. The map may also indicate a path for the user to follow in the indoor environment such that each item may be accessed while traversing the shortest distance within the indoor environment.
In one aspect, a computer-implemented method, executed by a processor, includes receiving a request for at least one item from a mobile computing device, and receiving an identifier associated with the mobile computing device. A current location of the mobile computing device is also received. The current location of the mobile computing device is associated with an indoor environment. A floor plan corresponding to the indoor environment is accessed. A location indicator of a location on the floor plan where each requested item may be accessed is provided. A path is determined from the current location of the mobile computing device to the location of each requested item. A path indicator for the path indicates a shortest distance through the indoor environment from the current location of the mobile computing device to the location of each requested item. The floor plan is prepared using a processor. The floor plan includes the location indicators and the path indicator for display on the mobile computing device. The floor plan including the location indicators and the path indicator is transmitted to the mobile computing device based on the identifier.
In another aspect, a computer-implemented method, executed by a processor includes, receiving, as input to a mobile computing device, a list of items to be accessed in an indoor environment. The list of items, a current location of the mobile computing device, and an identifier associated with the mobile computing device are transmitted to a server. A map corresponding to the indoor environment is received at the mobile computing device. The map includes a location indicator corresponding to a location of each item in the indoor environment. The map also includes a path indicator for a path from the current location of the mobile computing device to the locations of the items to be accessed. The path indicator identifies a shortest distance through the indoor environment from the current location of the mobile computing device to the items to be accessed.
In another aspect, a system includes a memory and a processor. The memory stores a plurality of maps and a list of inventory of items accessible at specific indoor environments. Each map corresponds to an indoor environment. The list includes a location identifier of a location in the indoor environment where each corresponding item may be accessed. The processor is configured to receive a request for at least one item from a mobile computing device, and receive a current location of the mobile computing device. The current location of the mobile computing device is associated with a particular indoor environment. The processor is additionally configured to access from the memory a map corresponding to the particular indoor environment and, access from the memory the list of inventory of items associated with the particular indoor environment. The processor is further configured to identify the locations in the indoor environment where the requested items may be accessed using the location identifiers from the list of the inventory of items; and provide a location indicator of each location on the map where each requested item may be accessed. The indicator is positioned on the map based on the location identifier associated with the item. The processor determines a path from the current location of the mobile computing device to the locations of the requested items. A path indicator for the path indicates a shortest distance through the indoor environment from the current location of the mobile computing device to the locations of the requested items. The processor also prepares the map including the location indicators and the path indicator for transmission to and display on the mobile computing device.
The present disclosure is directed to providing a mobile device with a map of an indoor environment that includes indications of where requested items are located in the indoor environment. A current location of a user's mobile device is determined and a map of an indoor environment corresponding to the user's current location is identified. The user may input an item or list of items to be located in the indoor environment. The map is then provided to the user's device with indications of where each item is located in the indoor environment. The map may also indicate a path for the user to follow such that each item may be accessed by traversing the shortest possible distance in the indoor environment.
In one illustrative example, a user may disembark from an airplane at an airport terminal and have a limited amount of time before boarding a different airplane at the same terminal or a different terminal at that airport. The user may wish to obtain a newspaper, a toy for her child, and a vegetarian meal before boarding her next flight. The user may activate a feature on her mobile device that identifies her current location at a specific air terminal. The user may then be prompted to identify items to be accessed in the concourse of the terminal. The user might enter the following search terms: “New York Times,” “doll,” and “salad.” The user may also enter the departure gate of the connecting flight. In response, the user's mobile device may display a floor plan of the air terminal with an indication of a location where each of the requested items may be accessed. The floor plan may also be displayed with an indication of a path to navigate through the terminal such that the user may access each item and arrive at the boarding gate after traversing the shortest distance through the air terminal.
As shown in
The instructions 132 may be any set of instructions to be executed directly (such as machine code) or indirectly (such as scripts) by the processor. For example, the instructions may be stored as computer code on the computer-readable medium. In that regard, the terms “instructions” and “programs” may be used interchangeably herein. The instructions may be stored in object code format for direct processing by the processor, or in any other computer language including scripts or collections of independent source code modules that are interpreted on demand or compiled in advance. Functions, methods and routines of the instructions are explained in more detail below.
The data 134 may be retrieved, stored or modified by the processor 120 in accordance with the instructions 132. For instance, although the architecture is not limited by any particular data structure, the data may be stored in computer registers, in a relational database as a table having a plurality of different fields and records, XML documents or flat files. The data may also be formatted in any computer-readable format. By further way of example only, image data may be stored as bitmaps comprised of grids of pixels that are stored in accordance with formats that are compressed or uncompressed, lossless or lossy, and bitmap or vector-based, as well as computer instructions for drawing graphics. The data may comprise any information sufficient to identify the relevant information, such as numbers, descriptive text, proprietary codes, references to data stored in other areas of the same memory or different memories (including other network locations) or information that is used by a function to calculate the relevant data.
The processor 120 may be any conventional processor. Alternatively, the processor 120 may be a dedicated controller such as an ASIC. Although
The computer 110 may be at one node of a network 150 and capable of directly and indirectly receiving data from other nodes of the network. For example, computer 110 may comprise a web server that is capable of receiving data from client devices 160, 170 via network 150 such that server 110 uses network 150 to transmit and display information to a user on display 165 of client device 160. Server 110 may also comprise a plurality of computers that exchange information with different nodes of a network for the purpose of receiving, processing and transmitting data to the client devices 160, 170. In this instance, the client devices 160, 170 will typically still be at different nodes of the network than any of the computers comprising server 110.
Network 150, and intervening nodes between server 110 and client devices 160, 170, may comprise various configurations and use various protocols including the Internet, World Wide Web, intranets, virtual private networks, local Ethernet networks, private networks using communication protocols proprietary to one or more companies, cellular and wireless networks (e.g., Wi-Fi), instant messaging, HTTP and SMTP, and various combinations of the foregoing. Although only a few computers are depicted in
The client devices 160, 170 may include an antenna 182 and receiver 183 which may be used to scan the wireless network spectrum and identify local wireless network signals. For example, the antenna 182 may receive “beacon” messages and send them to the receiver 183 which demodulates the information to identify wireless network access points. In one example, these beacon messages may be IEEE 802.11 management frames transmitted by access points to announce themselves to potential wireless network users. These frames may contain Service Set Identifiers (“SSID”) information as well as physical layer parameters that assist devices in connecting to the wireless network. The beacon messages may also include additional network access information which also assists devices in accessing the network, including whether the access point is accepting new users, whether the data is encrypted, and which type of authentication is being used, for example, no authentication (open to all), password based, web-portable based, or Media Access Control (“MAC”) address based. However, it will be understood that data collected in accordance with this disclosure may be limited to the information discussed above, for example MAC addresses, SSIDs or other identifiers and signal strengths, and need not contain additional information. For example, information contained in the network traffic or payload data, such as personal information, need not be collected, and in fact, may actually be removed, encrypted or scrubbed in order to protect the privacy of the wireless network's users.
Users may be required to take an affirmative step in order to select or “opt-in” to participate. For example, users may be required to sign in to a service before providing any information and may be provided with an explanation of how and why their feedback is being used. Similarly, users may be provided with the opportunity to cease participation temporarily or permanently at any time. By requiring users to opt-in and sign in for the service, this may also reduce the amount of third parties attempting to spam the system. Over time, the system may determine whether the data provided by some users' devices is consistently at odds with that of other users, and disregard the information provided by inconsistent devices.
Each client device 160 may be configured similarly to the server 110, with a processor, memory and instructions as described above. Each client device 160 may be a personal computer intended for use by a person, and have all of the components normally used in connection with a personal computer such as a central processing unit (CPU) 162, memory (e.g., RAM and internal hard drives) storing data 163 and instructions 164, an electronic display 165 (e.g., a monitor having a screen, a touch-screen, a projector, a television, a computer printer or any other electrical device that is operable to display information), and user input 166 (e.g., a mouse, keyboard, touch-screen or microphone). The client device 160 may also include a camera 167, geographical position component 168, accelerometer, speakers, a network interface device, a battery power supply 169 or other power source, and all of the components used for connecting these elements to one another.
The geographical position component 168 may be used to determine the geographic location and orientation of the client device 160. For example, the geographical position component 168 may comprise a GPS receiver to determine the device's latitude, longitude and altitude. Thus, as the client device 160 changes locations, for example by being physically moved, the GPS receiver may determine a new current location. The position component 168 may also comprise software for determining the position of the client device 160 based on other signals received at the client device 160, such as signals received at a cellular phone's antennas from one or more cellular phone towers if the client device 160 is a cellular phone.
Although the client devices 160, 170 may each comprise a full-sized personal computer, they may alternatively comprise mobile computing devices capable of wirelessly exchanging data, including position information derived from position component 168, with a server over a network such as the Internet. By way of example only, client device 160 may be a wireless-enabled PDA, a cellular phone, a netbook or a tablet PC capable of obtaining information via the Internet or other network. The user may input information using a small keyboard, a keypad, voice recognition or a touch screen.
Data 134 of server 110 may include maps of indoor environments 135 that provide a graphic representation of specific areas accessible by users (e.g., a floor plan of an airport concourse or a shopping mall). Each map may be associated with a specific building or address. Data 134 of server 110 may also include a list of inventory of items 136 that are accessible by users at locations in each area represented by the map. Data 134 of server 110 may further include information about a position of specific items of inventory in each area represented by the map.
The list of inventory and corresponding positions may be acquired in different ways. In one example, a retail establishment may provide the listing and position of inventory accessible at each physical store location. In another example, a distributor may provide the inventory information based on items sent to a retail store and the retail store could update the inventory quantities as items are sold. In a further example, images may be captured of each retail establishment by an image capturing device that moves around the retail store. These images may be used to identify the type and position of inventory in the store.
In addition to the operations described below and illustrated in the figures, various operations in accordance with example embodiments will now be described. It should also be understood that the following operations do not have to be performed in the precise order described below. Rather, various steps can be handled in a different order or simultaneously, and may include additional or fewer operations.
In response to receiving the current location of the device, the server identifies a map associated with an environment at or near the current location (block 320). The server may identify the map in memory that stores a large number of different maps each associated with a particular location. The map that is identified may be a floor plan of a building that is closest to the current location of the mobile device. For example, if the current location of the device is just outside a shopping mall, the map that is identified is a floor plan of the shopping mall that the mobile device is near. The map may be identified using the current location of the device and a known address located at or near the device's current location.
The user may be prompted to input items to be accessed from the environment. In response to the prompt, the user inputs the desired items into the mobile device, and a list of the items is received at the server (block 330). The prompt may correspond to the type of floor plan identified as corresponding to the current location of the mobile device. Using the shopping mall example, the user may be prompted to enter the items to be purchased at the shopping mall. Then the user may enter the items from a shopping list (e.g., “men's socks,” “toner cartridge for printer,” “DVD,” “art supplies,” and “jewelry.” These search terms are then provided to the server.
In response to receiving the search terms, an indication is made on the map of a location where each of the items may be accessed (block 340). The different locations on the map that correspond to positions where items may be accessed may each be tagged with terms that correspond to inventory available at those locations. In some implementations, any location where the item may be accessible is indicated on the map. In other implementations, only the locations that correspond to a popular location are indicated on the map. In a shopping mall, the following types of stores might be indicated as locations where the requested items may be found: men's clothing stores, department stores, pharmacies, electronics stores, hobby shops, office supply stores, and jewelry stores. The indication on the map may also include a designation of the search term that resulted in the particular location being highlighted on the map. For example, the electronics store may include a designation that indicates that both DVDs and toner cartridges may be available in the electronics store. In addition, the floor plan of the electronics store may include separate indicators for the different locations where DVDs and toner cartridges may be accessed.
In some implementations, if more than one location is identified as having a particular item, the user may be prompted to identify a preferred location for obtaining the item. For example, the mobile device may indicate that men's socks are available from three different department stores, four men's clothing boutiques, a store that sells only socks, and two different pharmacies. In this case, the user may select one or more of the locations where men's socks are available.
After the different locations where the items are accessible are identified on the map, a determination is made of the path from the user's current location to locations where the requested items are accessible (block 350). In some implementations, the path follows the shortest distance between the current location and the locations where the items are accessible. For example, the path may start at the user's current location in the shopping mall and continue to a pharmacy (with an indication of “men's socks” and “art supplies”), a department store (with an indication of “jewelry” and “men's socks”), and an electronics store (with an indication of “toner cartridge for printer” and “DVD”).
The path may also indicate the locations within each store where the different items may be accessed. For example, the electronics store may be provided on the map with one indication where the toner cartridges are located and a different indication where the DVDS are located. The map is then returned for display on the user's mobile device such that the user may navigate the indoor environment and access the requested items (block 360).
The user is then prompted to input items to be accessed in the Airport. The user may input the items to be accessed as text. In some implementations, the user may select entries from a menu of items that are known to be available in the Airport. The menu could be provided by any retail establishment that sells items in the Airport. As shown in the drawing, the user entered the following search terms: “vegetarian meal,” “New York Times,” and “girl toy.”
Since the user's current location is known to be the Airport, the application may prompt the user about supplemental locations where the user may need to be present but where items are not purchased. Examples of supplemental locations include a boarding gate for a connecting flight, a passport/customs clearance area, or a shoe shine station. If the user needs to access a supplemental location, this information will be taken into account when determining the user's navigation path. In this example, the user inputs that his connecting flight leaves Gate A15 at 3:20 PM. The search terms and the supplemental location information are then forwarded to a server for processing.
The locations where a requested item can be accessed in the Airport may be identified. Since the same item can be accessed from different locations, the application performs a process to determine a path from the user's current location to a final desired location such that the user can access the requested items by traversing the shortest distance through the Airport. Accordingly, the floor plan 165 is displayed with path segments 550 from the user's current location indicator 510 to each indicator 530 that corresponds to a location where a requested item may be accessed. The last path segment 550 provides a path to the user's last destination, departure Gate A15, as symbolized by indicator 540. The other indicators 520 correspond to locations where the items could be accessed but these locations would result in a longer distance from the user's initial location (Gate C5) to the user's final location (Gate A15). Accordingly, these locations are not included as part of the path provided on the floor plan 165.
In some implementations, the context of the locations and requested items may be taken into account to determine the order with which the locations are provided on the path. For example, a user moving through an airport terminal would likely want to eat just prior to boarding the aircraft and would presumably want to eat near the boarding gate within earshot of any public announcements made by the flight attendants. Therefore, the path would lead the user from his current location to the location where the requested items could be purchased before directing the user to a restaurant near the departure gate.
As these and other variations and combinations of the features discussed above can be utilized without departing from the scope of the claims, the foregoing description of exemplary embodiments should be taken by way of illustration rather than by way of limitation as defined by the claims. It will also be understood that the provision of example embodiments (as well as clauses phrased as “such as,” “e.g.”, “including” and the like) should not be interpreted as being limited to the specific examples; rather, the examples are intended to illustrate only some of many possible aspects.