Conventional mapping systems generally require users to enter information into a series of fields before a map that is truly useful is made available. The types of required information often include a starting or current address location and the address information for the intended destination. For example, on the Internet, individual websites more commonly offer a view of a business's actual location and sometimes directions can be provided through the use of a third party service. Regardless of the content type or the viewing options offered, most if not all content created for use by an end user requires explicit entry of input by a user in order to receive meaningful information in return. This is especially problematic given the ever-shrinking size of computing devices. From mini-laptops, PDAs, smart phones, and mobile phones, display screens are getting smaller and input means are becoming increasingly more limited. Auto-fill or auto-suggest features have attempted to alleviate some of the burden, however, these features are not always available. When available, however, they can still be cumbersome to activate given such limited input means or else do not provide all the needed information to generate a useful map.
The following presents a simplified summary in order to provide a basic understanding of some aspects of the systems and/or methods discussed herein. This summary is not an extensive overview of the systems and/or methods discussed herein. It is not intended to identify key/critical elements or to delineate the scope of such systems and/or methods. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
The subject application relates to a system(s) and/or methodology that facilitate providing map related information to a user with minimal user action or data entry. In particular, the systems and methods can automatically deliver or present one or more custom map views and/or customized directions to a desired destination based on the automatic detection of the current location of an end user. This can be accomplished in part by employing location technology that can pinpoint the dynamic location of the end user and relate it to a static location of content (e.g., business, building, park, restaurant, store, etc.). The static location information can be correlated with the dynamic information in order to generate a customized map view of the destination with respect to the user's current location.
In addition, a customized set of directions can be provided to the end user via his/her computing device. The directions can be created with consideration of user preferences (e.g., user settings), weather conditions, time of day of intended travel, and many other factors. For example, given the same end user location and the same static location (destination), a different set of directions may be presented to the user based on historical traffic conditions, current traffic reports, time of day, and/or a user's preference to avoid tollways.
The systems and methods can also infer that the end user prefers the most reasonable route to travel to the selected destination. Therefore, when multiple static locations exist for the same content, the systems and methods can select the one located closest to the end user or the one that is most reachable by the end user in the shortest estimated amount of time. For instance, one route may be the shortest in terms of distance, but due to high traffic volumes, it may take longer than an alternative route which may actually require a few more miles of driving.
Given the growing concern over privacy for the end user, the systems and methods can also provide privacy control. Various permissions can be set or communicated to block location technologies from accessing and/or sharing the dynamic location with anyone or any other communications service or network.
To the accomplishment of the foregoing and related ends, certain illustrative aspects of the invention are described herein in connection with the following description and the annexed drawings. These aspects are indicative, however, of but a few of the various ways in which the principles of the invention may be employed and the subject invention is intended to include all such aspects and their equivalents. Other advantages and novel features of the invention may become apparent from the following detailed description of the invention when considered in conjunction with the drawings.
The subject systems and/or methods are now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the systems and/or methods. It may be evident, however, that the subject systems and/or methods may be practiced without these specific details. In other instances, well- known structures and devices are shown in block diagram form in order to facilitate describing them.
As used herein, the terms “component” and “system” are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers.
The subject systems and/or methods can incorporate various inference schemes and/or techniques in connection with determining the most relevant static location in view of the current dynamic location information. For example, a user may access web content for a clothing store. The clothing store has several (static) locations such as one location downtown (Downtown), another location west of downtown (West) and yet another location north of downtown (North). The user's current location data (e.g., dynamic location) can be obtained and based on this data, the systems and methods can infer that the closest and most reasonable location to direct the user to is the North location. By making such inferences, input by the user is further minimized and more meaningful location information can be provided to the user.
As used herein, the term “inference” refers generally to the process of reasoning about or inferring states of the system, environment, and/or user from a set of observations as captured via events and/or data. Inference can be employed to identify a specific context or action, or can generate a probability distribution over states, for example. The inference can be probabilistic—that is, the computation of a probability distribution over states of interest based on a consideration of data and events. Inference can also refer to techniques employed for composing higher-level events from a set of events and/or data. Such inference results in the construction of new events or actions from a set of observed events and/or stored event data, whether or not the events are correlated in close temporal proximity, and whether the events and data come from one or several event and data sources.
Content creators such as businesses or individuals that advertise on the Web or maintain websites, for example, often include their address information so that customers can go to their places of business. Many of the content creators, however, make use of traditional mapping and/or navigation systems which often call for the end user to enter detailed information such as the user's current locality, the desired locality, and/or attributes of the area of interest. On a standard sized desktop computer or laptop, this process tends to be laborious at best but is very impractical on smaller more portable devices. Such smaller or handheld devices typically have user interfaces that are not well suited for data entry. Hence, accessing a navigable map with relevant and useful information can be challenging especially when on-the- go and needing accurate information quickly. The systems and methods presented herein mitigate many of these obstacles by providing additional local information at map generation time with minimal user input or action.
Referring now to
The mapping processor 130 can analyze and correlate the dynamic user location data with the static content location data in order to produce at least one map view of the static content location. For instance, a first map view can show the static content location without regard to the dynamic user location; and a second map view can show the static content location with respect to the dynamic user location and a suggested route from the user location to the content location. In addition, a set of directions can accompany the map view.
In some cases, the content can include more than one static location. Take for example a restaurant chain that has multiple locations within a metropolitan area. When multiple static locations exist for the content, the mapping processor 130 can analyze each static location with respect to the dynamic location and determine which static location can be more readily reached given such factors as the time of day, traffic volumes or patterns, road construction, traffic accident reports, and/or user preferences (e.g., exclude a specified highway). By default, the system 100 or the mapping processor 130 in particular can determine the optimum location given one or more of those factors and generate the respective map view(s) and/or directions. Thus, the determination depends on the dynamic location of the user. For instance, when a user is accessing the content from his office in downtown Chicago, the restaurant location on Michigan Avenue may be selected by the mapping processor 130 as the most convenient location and thus the most desirable destination. However, when the user accesses the same content from his house in the suburbs, a different location such as next to a nearby shopping plaza can be a more appropriate location.
A display component 150 can provide a custom map view(s) and/or customized directions according to the user's location and type of device employed by the user. Moreover, the system 100 can automatically determine the user's location and then generate specific map views and/or directions based on that location with nominal input by the user.
For many computer users, privacy concerns still remain at the forefront of their minds particularly with regard to personal safety and identity theft. As indicated in
Depending on the system settings for privacy control, the location component 110 can be characterized as content specific meaning that it operates on behalf of some content (e.g., specific website). Therefore, the dynamic location 140 for any user can be communicated to the location component 110 when the content or the location component for that content has been given the required permission level. For example, each individual set of content such as individual websites can request permission by prompting the user just prior to map generation time. Hence, few if any privacy settings need to be made prior to using the system 100 (
Turning now to
In practice for instance, the mapping control 330 can be activated by a press or click of a button. When activated, the mapping control 330 calls the location service 310 to fetch the current location data of a user. This location data as well as the static location data for the current content can be provided to the mapping service 320 via the mapping control 330. The mapping service 320 can then return customized map views based on all the above data—rather than just a generic map view of the content without consideration of the user.
As demonstrated in
In-car navigation systems are often very costly upgrades in newer vehicles or are not typically compatible with older vehicles as an after-market installation. In addition, they are often limited to only information maintained in their databases and are not always updated with new businesses or new locations for existing businesses. However, through the use of any portable computing device, the user can have access to customized driving directions and map views with minimal input from just about anywhere whether on a train, in a car, or walking.
Various methodologies will now be described via a series of acts. It is to be understood and appreciated that the subject system and/or methodology is not limited by the order of acts, as some acts may, in accordance with the subject application, occur in different orders and/or concurrently with other acts from that shown and described herein. For example, those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all illustrated acts may be required to implement a methodology in accordance with the subject application.
Referring now to
The method 700 can be incorporated into content such as by the content's author. For example, imagine the content is a website or web page for an appliance store. The website can include a mapping feature that when selected, presents a map view of the store in relation to the viewer's location. This is unlike conventional mapping features which simply present a map of the store's location. Directions may be available using such conventional features but the user is required to enter their current location information. On some devices, this is a tedious and repetitive task when multiple sites are viewed to obtain their map information. However, on other devices, this task can be unrealistic and unfeasible given relatively small user interfaces and limited input means (e.g., no standard keyboard). Thus, the subject method 700 can obtain and input the user's current location and provide at least an informative map or set of directions based on the user's current location.
Referring now to
Turning now to
The systems and/or methods discussed hereinabove can be employed on a variety of computing devices in conjunction with one or more data or communications networks. For example, map views or directions can be accessed on a desktop computer, laptop, PDA, mini laptop, smart phone, mobile phone, tablet PC, or other mobile computing device.
In order to provide additional context for various aspects of the subject invention,
Generally, however, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular data types. The operating environment 1010 is only one example of a suitable operating environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Other well known computer systems, environments, and/or configurations that may be suitable for use with the invention include but are not limited to, personal computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include the above systems or devices, and the like.
With reference to
The system bus 1018 can be any of several types of bus structure(s) including the memory bus or memory controller, a peripheral bus or external bus, and/or a local bus using any variety of available bus architectures including, but not limited to, 11-bit bus, Industrial Standard Architecture (ISA), Micro-Channel Architecture (MCA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Universal Serial Bus (USB), Advanced Graphics Port (AGP), Personal Computer Memory Card International Association bus (PCMCIA), and Small Computer Systems Interface (SCSI).
The system memory 1016 includes volatile memory 1020 and nonvolatile memory 1022. The basic input/output system (BIOS), containing the basic routines to transfer information between elements within the computer 1012, such as during start-up, is stored in nonvolatile memory 1022. By way of illustration, and not limitation, nonvolatile memory 1022 can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), or flash memory. Volatile memory 1020 includes random access memory (RAM), which acts as external cache memory. By way of illustration and not limitation, RAM is available in many forms such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM). 100461 Computer 1012 also includes removable/nonremovable, volatile/nonvolatile computer storage media.
It is to be appreciated that
A user enters commands or information into the computer 1012 through input device(s) 1036. Input devices 1036 include, but are not limited to, a pointing device such as a mouse, trackball, stylus, touch pad, keyboard, microphone, joystick, game pad, satellite dish, scanner, TV tuner card, digital camera, digital video camera, web camera, and the like. These and other input devices connect to the processing unit 1014 through the system bus 1018 via interface port(s) 1038. Interface port(s) 1038 include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB). Output device(s) 1040 use some of the same type of ports as input device(s) 1036. Thus, for example, a USB port may be used to provide input to computer 1012 and to output information from computer 1012 to an output device 1040. Output adapter 1042 is provided to illustrate that there are some output devices 1040 like monitors, speakers, and printers among other output devices 1040 that require special adapters. The output adapters 1042 include, by way of illustration and not limitation, video and sound cards that provide a means of connection between the output device 1040 and the system bus 1018. It should be noted that other devices and/or systems of devices provide both input and output capabilities such as remote computer(s) 1044.
Computer 1012 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 1044. The remote computer(s) 1044 can be a personal computer, a server, a router, a network PC, a workstation, a microprocessor based appliance, a peer device or other common network node and the like, and typically includes many or all of the elements described relative to computer 1012. For purposes of brevity, only a memory storage device 1046 is illustrated with remote computer(s) 1044. Remote computer(s) 1044 is logically connected to computer 1012 through a network interface 1048 and then physically connected via communication connection 1050. Network interface 1048 encompasses communication networks such as local-area networks (LAN) and wide-area networks (WAN). LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet/IEEE 1102.3, Token Ring/IEEE 1102.5 and the like. WAN technologies include, but are not limited to, point-to-point links, circuit switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL).
Communication connection(s) 1050 refers to the hardware/software employed to connect the network interface 1048 to the bus 1018. While communication connection 1050 is shown for illustrative clarity inside computer 1012, it can also be external to computer 1012. The hardware/software necessary for connection to the network interface 1048 includes, for exemplary purposes only, internal and external technologies such as, modems including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards.
What has been described above includes examples of the subject system and/or method. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the subject system and/or method, but one of ordinary skill in the art may recognize that many further combinations and permutations of the subject system and/or method are possible. Accordingly, the subject system and/or method are intended to embrace all such alterations, modifications, and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the term “includes” is used in either the detailed description or the claims, such term is intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim.