Patent ID: 12204599

The figures depict various embodiments for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein.

DETAILED DESCRIPTION

FIG.1illustrates a detailed view of an environment in which users use their client devices120to communicate with an online system100, such as to request transportation services, according to one embodiment. For example, the online system100can provide a network service to enable users to request location-based services using their respective designated client applications. The online system100can process the requests to identify service providers to provide the requested services for the users. Still further, the online system100receives data—such as user trip pickup or destination data, or user location query data— based on which the server enhances a user interface for improving identification of a meeting location for a trip. Although described in relation to a “trip,” the interface improvements described herein may be used for any display of a location on a map to assist users in identifying a physical location corresponding to the location displayed on a map provided by the online system100. One possible example of the environment depicted inFIG.1is a network in which users use their client devices120to communicate and arrange transportation services.

The client device120can correspond to a computing device, such as a smart phone, tablet computer, laptop, or any other device that can communicate over the network140with the online system100. In the embodiment illustrated inFIG.1, the client devices120include an application121that the users of the client devices use to interact with the server100, e.g., to provide location data and queries to the server100, to receive map-related data and/or directions from the server, and the like. In one embodiment, the application121is created and made available by the same organization responsible for the server100. Alternatively, in another example, the application121can be a third-party application that includes features (e.g., an application programming interface or software development kit) that enables communications with the server100. Although for simplicity only one server100and several client devices120are illustrated in the environmentFIG.1, it is appreciated that there may be any number of both client devices120and servers100within the environment.

The network140may be any suitable communications network for data transmission. In an embodiment such as that illustrated inFIG.1, the network140uses standard communications technologies and/or protocols and can include the Internet. In another embodiment, the entities use custom and/or dedicated data communications technologies.

The online system100receives requests from client devices120operated by various users and provides mapping and other services to users of the client devices120. As described herein, the online system100provides mapping and navigation to users of the client devices120, and may provide additional features and services. The online system100may also coordinate travel services comprising a “trip” provided by a user operating a vehicle, termed a provider, and a user wishing to travel to a destination, termed a rider. The online system100provides travel coordination services by matching riders and providers and by assisting riders and providers to jointly identify a meeting location (e.g., at which a rider may enter a provider's vehicle) and a destination (e.g., at which a rider may exit the provider's vehicle). In other examples, the provider may transport other objects or goods, such as groceries, packages, and the like, rather than the requesting user. E.g., the requesting user may not actually enter the vehicle, but may use the online system100to coordinate a meeting place and destination for other objects to enter the provider's vehicle. Thus, the online system100facilitates the transportation of one user (hereinafter referred to as the rider)—or of objects, such as groceries, packages, or the like—by a second user (hereinafter referred to as the provider) from a first location (hereinafter referred to as the meeting location) to a second location (hereinafter referred to as the destination location, or simply the destination), such as by providing map and/or navigation instructions to the respective client applications of the rider and the driver. In one example, the online system100can include a matching service (not illustrated inFIG.1for purposes of simplicity) that facilitates a rider requesting a trip from a pickup location to a destination location, and further facilities a driver agreeing to provide the trip to the rider. For example, the matching service interacts with the applications121of the rider and a selected driver, establishes a trip for the rider to be transported from the pickup location and the destination location, and handles payment to be made by the rider to the driver. Additionally, in one embodiment, the online system100interacts with at least the application121of the driver during the trip, obtaining trip location information from the application (e.g., via Global Positioning System (GPS) or other geolocation coordinates) and providing navigation directions to the application that aid the driver in traveling from the driver's current location to the specified destination of the trip. The online system may also facilitate a driver navigating to or obtaining information about a particular location, regardless of whether the driver has a rider, such as permitting the driver to navigate to a particular gas station, or to the pickup location of a rider.

To aid in permitting the rider and provider to meet in a jointly desirable location for providing the trip, the online system100retrieves information about the areas in which the online system100provides mapping information and modifies the user interface display of mapping data to assist users in correctly navigating the area and in identifying locations in the around the mapped area.

FIG.2illustrates components of the online system100according to one embodiment. In this example, the online system100includes a map enhancement module210, a scoring module220, a hotspot determination module230, an image data store240, a map data store250, a trip data store260, and a point of interest data store270. In implementation, the online system100may include additional modules and features as not illustrated or discussed in detail herein, including modules and systems for providing matching among providers and riders and routing providers to destinations. Various example user interfaces as provided by the online system100are shown inFIGS.3A-3I.

The online system100includes various data stores for providing improved mapping services and enhancement to users. The map data store250includes various types of data that online system100uses to provide mapping and navigation services and otherwise facilitate transportation. More specifically, the map data store may include information used to calculate routes, to render graphical maps, and the like. For example, the maps data include elements such as intersections and the roads connecting them, bridges, off-ramps, buildings, and the like, along with their associated locations (e.g., as geo-coordinates). The map data may include association with points of interest as further discussed with point of interest data store270, relating to points of interest, such as landmarks, businesses, and entities associated with different portions of a map.

The map data store250may further include prior searches that various users have conducted in the past. The searches may be, for example, a search for a particular point of interest (e.g., “Contemporary Jewish Museum”), or a rider request for a trip designating an address (e.g., from the pickup location designated by the address “1455 Market Street, San Francisco” to the destination location designated by the landmark name “Contemporary Jewish Museum”).

In some embodiments, the online system includes image data store240, which associates images captured from along routes (e.g., the streets being driven) with positions and directions from which they were captured. For example, the image data store140might indicate that individual images are associated with a particular geo-coordinate with a particular orientation angle. The image data store240may additionally include metadata derived from processing the street image data, such as text derived from optical character recognition (OCR) of text within the images (e.g., street names, shop names), or indications of point of interest identity (e.g., the Contemporary Jewish Museum) as determined by image analysis, thereby indicating that a particular point of interest is visible from the street.

The trip data store260may include data related to prior trips coordinated by the online system, including, for example, pickup and destination locations for trips coordinated by the online system100. The trip data store260may include additional information describing prior trips, such as timestamps associated with pickup and drop off during the prior trips.

The point of interest data store270may include information related to various points of interest, such as businesses, landmarks, and other information related to different geographical areas. The points of interest may also be correlated with particular locations in the map data store250, such as a geographical location or geofence, or with a particular building of the map data store250. Thus the points of interest may reflect areas viewable by a person near portions of a location. The image data store240may be analyzed to identify text and other associations of images captured in a map with the points of interest in the point of interest data store170. For example, the image data store240may include images of a side of a building from the street. The point of interest data store270may include multiple points of interest associated with that building. When analyzing the image, the text may be analyzed for the side of the building to identify one or more of those points of interest represented by the image, for example as having words in common with text on the side of the building. The images may also designate a time associated with the image. In these cases, the visibility of a point of interest may also be affected by the time of day.

The map enhancement module210receives a request for a map of a location and enhances the map of the location based on various characteristics of the area in the map and the requesting user. When providing a travel coordination service, for example, the online system100may receive a request for transport for a rider, who may designate a destination and a location to meet the provider for the travel service. The request from the rider may include location information of the rider. The map enhancement module210identifies the location associated with the rider and coordinates map enhancements to customize the map for the user's request. In particular, the map enhancement module210may use available data to add point of interest, hotspot, and pickup curb designations to the interface shown to the user when providing the map to the user.

To provide this data, the map enhancement module210may identify a building associated with a user's location, as well as any exit and entry points to the user's location. In addition, the map enhancement module210may identify points of interest within a threshold distance from the user location and provide the points of interest to the scoring module220to score. After scoring, the map enhancement module210may identify a number of points of interest (e.g., up to a maximum number, or above a minimum threshold score) to provide on the map. Examples are shown inFIGS.3A-3I. In addition, the map enhancement module may provide the location and building to hotspot determination module230to identify hotspots relevant to the location of the user or to the building.

The scoring module220scores the points of interest to determine their relevance and prominence with respect to the ability of the point of interest to navigate a user. The scoring may be performed based on the particular user, and may for example use a user's prior trips and familiarity with an area to increase the score for a point of interest that the user has previously had a trip to. In addition, the scoring module220may use point of interest data from the point of interest data store270to determine the ability of a point of interest to assist in orienting or navigating a user's view of the area, such as the relative visibility of the point of interest at the time of the current request. For example, those points of interest which are particularly visible at the time of the request may score more highly relative to other points of interest that are not relatively visible. The visibility of a point of interest may be determined by analyzing an image associated with the location to determine text or other content in the image from the image data store240and determine whether the text matches terms associated with the point of interest.

In addition, the scoring for the point of interests may include whether trips begin or end at the point of interest at that time. For example, a point of interest such as a library may be active or busy during the day, while a nightclub may be active or busy in the evening and early morning. Accordingly, these points of interest are assigned higher scores during the times when they are more likely to receive trips, such that the points of interest which score well may reflect the current activity in an area, and do not highlight those points of interest which are unlikely to be of interest.

The hotspot determination module230identifies “hotspots” for travel in relation to a particular area. For example, a hotspot represents a cluster of locations in which trips commonly begin or end. These hotspots may be a clustering of the meeting location or the destination for a trip, and thus represent convenient locations for beginning a trip. These hotspots may be provided to the map enhancement module210to determine the location for pickup or drop off.

FIGS.3A-3Iillustrate example user interfaces for enhancing a map display for a user.

FIG.3Ashows an interface for a user to select a pickup location. In this example, a user's location300is designated with a range of uncertainty about the user's location. After the user's location is determined, as discussed above the points of interest310may be identified and scored, and displayed on the map. In this example, several points of interest, such as “The Fillmore” or “USPS” are shown, while other points of interest in other buildings, which did not score highly, are not shown. In addition, multiple hotspots320are shown, designating locations at which users are commonly picked up. In this example, a user has selected a meeting/pickup location325. The map enhancement module210may also identify a curb or side of the street as shown for the meeting location325to designate to the rider which side of the street to use for the pickup. Likewise, the meeting location325when shown to the provider may also highlight a side of the street.

To determine a side of the street, the user may indicate on the map which side of the street is desired. In other examples, when the hotspot is automatically generated, the hotspot may be associated with a side of the street based on the location coordinates of the trips which have been grouped to identify the hotspot. For example, the coordinates may have a centroid on one side of the street rather than the other. In another example, the side of the street for a hotspot may be inferred based on the prior approach to the hotspot by a rider along a street, or by the direction of travel of a provider while picking up a rider at a hotspot. By automatically associating and displaying a side of the street and permitting highlight of a curb associated with the pickup, the display may more effectively show to the rider and provider where to meet for the service.

FIG.3Billustrates an additional example in which the rider may be notified that there are additional hotspots or “pickup spots” near the user's selected location. In the example ofFIG.3B, responsive to a user selecting a pickup spot330, the user is notified via a text box335that additional hotspots or “pickup points” are nearby (“2 other pickup points nearby”). In one embodiment, the additional hotspots320are shown. Users may select the additional hotspots320to adjust the pickup spot330. In one embodiment, the user is additionally prompted to confirm the pickup340at the selected location.

FIGS.3C-3Dillustrate an additional example prompting the user to move the map to another location or building and displaying additional hotspots shown in relation to that location or building. As shown inFIG.3C, the user's selection of a pickup location may be based on a selected building and hotspots associated with that building. As discussed in conjunction withFIG.3A, multiple hotspots320are identified based on a user's location300and a building associated with that location. In the case that another building or location is more desirable for pickup (e.g., the user intends to move in the direction of the other building or location), the user may select and move a pin330to indicate a location other than the current user location300.

InFIG.3D, additional hotspots are identified based on a building or location selected by the user. Responsive to the user dropping the pin330to indicate another building or location, the map enhancement module210identifies a point of interest345associated with the selected building or location and modifies the user interface to display the point of interest and an additional hotspot350associated with the point of interest. Previously identified hotspots320may still be shown in association with the selected building or location.

FIG.3Eillustrates an example in which the user is associated with a location300inside a building355. In this example, the geographical footprint of the building355may be highlighted, along with possible entrances and exits to the building. In this example, the user has selected a hotspot360, which is not associated with a side of the street. Therefore, when the user selects the hotspot, rather than designating a curb or side of street, the user interface may more generally designate the location, for example in the middle of the street. As another alternative, the user interface may provide the user an option to select a side of the street when no side is automatically associated with the hotspot.

FIG.3Fillustrates another example interface in which building information describing the geographical footprint or layout of the building is not available. In this example, the map may be enhanced by highlighting nearby points of interest365and emphasizing the street name370within the interface.

FIG.3Gillustrates another example interface in which building information is available, while point of interest information is not. In this example, the map may be enhanced by highlighting multiple building footprints375and emphasizing the street names370within the interface.

FIG.3Hillustrates an example interface in which no building or point of interest information is available. In that case, the user interface may designate one or more pickup locations or hotspots380along with emphasizing the street name370. As shown in the example interface ofFIG.3I, this configuration may also include a highlight of the curb or street side385for the meeting location.

FIG.4is a flow chart illustrating a method of enhancing a map display for a user, according to one embodiment. The steps ofFIG.4may be performed by the online system100. Some or all of the steps may be performed by other entities in other embodiments. In addition, other embodiments may include different and/or additional steps, and the steps may be performed in different orders.

The online system100receives405a trip request from a user of the online system, the trip request including a location of the user. Based on the received location, the online system100identifies410one or more buildings or geographies associated with the location. For example, the online system100determines whether the location of the user is inside of a building. The online system100additionally identifies415location boundaries associated with the one or more buildings or geographies. In the example where a user is inside of a building, the online system100determines the boundaries of the building and exits from the building to a street. The online system100identifies420a set of hotspots at or within a threshold distance of the location of the user. A hotspot is a cluster of locations in which trips commonly begin or end and represents an area likely to be convenient for pickup or drop off. For example, hotspots may be entrances to buildings, portions of sidewalks, or prominent or visible landmarks frequently used for pickup or drop off. The online system100identifies425a set of points of interest. Points of interest may be, for example, businesses, landmarks, building names, or other physical or visible reference points at the user's location. The online system100scores430the points of interest. The scoring represents a relative value of displaying each point of interest with respect to the point of interest's ability to assist in orienting or navigating a user's view of the area when shown on a map of the area. In one embodiment, the scoring additionally accounts for a relative visibility of the point of interest, a frequency of trips associated with the point of interest, and other factors. The online system100modifies435a user interface displaying a map of the area to include location boundaries, hotspots, and points of interest identified for the area.

FIG.5is a high-level block diagram illustrating physical components of a computer500used as part or all of the online system100or client devices120fromFIG.1, according to one embodiment. Illustrated are at least one processor502coupled to a chipset504. Also coupled to the chipset504are a memory506, a storage device508, a graphics adapter512, and a network adapter516. A display518is coupled to the graphics adapter512. In one embodiment, the functionality of the chipset504is provided by a memory controller hub520and an I/O controller hub522. In another embodiment, the memory506is coupled directly to the processor502instead of the chipset504.

The storage device508is any non-transitory computer-readable storage medium, such as a hard drive, compact disk read-only memory (CD-ROM), DVD, or a solid-state memory device. The memory506holds instructions and data used by the processor502. The graphics adapter512displays images and other information on the display518. The network adapter516couples the computer500to a local or wide area network.

As is known in the art, a computer500can have different and/or other components than those shown inFIG.5. In addition, the computer500can lack certain illustrated components. In one embodiment, a computer500such as a server or smartphone may lack a graphics adapter512, and/or display518, as well as a keyboard or pointing device. Moreover, the storage device508can be local and/or remote from the computer500(such as embodied within a storage area network (SAN)).

As is known in the art, the computer500is adapted to execute computer program modules for providing functionality described herein. As used herein, the term “module” refers to computer program logic utilized to provide the specified functionality. Thus, a module can be implemented in hardware, firmware, and/or software. In one embodiment, program modules are stored on the storage device508, loaded into the memory506, and executed by the processor502.

Embodiments of the entities described herein can include other and/or different modules than the ones described here. In addition, the functionality attributed to the modules can be performed by other or different modules in other embodiments. Moreover, this description occasionally omits the term “module” for purposes of clarity and convenience.

The present invention has been described in particular detail with respect to one possible embodiment. Those of skill in the art will appreciate that the invention may be practiced in other embodiments. First, the particular naming of the components and variables, capitalization of terms, the attributes, data structures, or any other programming or structural aspect is not mandatory or significant, and the mechanisms that implement the invention or its features may have different names, formats, or protocols. Also, the particular division of functionality between the various system components described herein is merely for purposes of example, and is not mandatory; functions performed by a single system component may instead be performed by multiple components, and functions performed by multiple components may instead performed by a single component.

Some portions of above description present the features of the present invention in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. These operations, while described functionally or logically, are understood to be implemented by computer programs. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules or by functional names, without loss of generality.

Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system memories or registers or other such information storage, transmission or display devices.

Certain aspects of the present invention include process steps and instructions described herein in the form of an algorithm. It should be noted that the process steps and instructions of the present invention could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by real time network operating systems.

The present invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored on a computer readable medium that can be accessed by the computer. Such a computer program may be stored in a non-transitory computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of computer-readable storage medium suitable for storing electronic instructions, and each coupled to a computer system bus. Furthermore, the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.

The algorithms and operations presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may also be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will be apparent to those of skill in the art, along with equivalent variations. In addition, the present invention is not described with reference to any particular programming language. It is appreciated that a variety of programming languages may be used to implement the teachings of the present invention as described herein, and any references to specific languages are provided for invention of enablement and best mode of the present invention.

The present invention is well suited to a wide variety of computer network systems over numerous topologies. Within this field, the configuration and management of large networks comprise storage devices and computers that are communicatively coupled to dissimilar computers and storage devices over a network, such as the Internet.

Finally, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention.