Shared Mapping Sessions
By implementing the shared mapping session function in the navigation application, multiple users can share and collaborate navigation, solving the problem of inefficient navigation of single users and single devices in the existing technology, and improving resource sharing and navigation efficiency.
Patent Information
- Application Number
- JP2024562332
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2022-04-22
- Publication Date
- 2025-05-09
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Existing navigation or mapping applications can only be used by a single user or device, and cannot enable multiple users to connect physically or digitally, search points together with interest or send suggestions, resulting in waste of resources and inefficiency.
By implementing the shared mapping session function, allowing multiple electronic devices to share mapping information, including information and navigation information of the point's interest, users can see other users' mapping information and suggestions in real time and jointly decide on the next action.
It realizes collaborative navigation and resource sharing among multiple users, improves navigation efficiency, reduces resource waste, and improves the accuracy of location measurement through real-time information sharing.
Smart Images

Figure 2025514828000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates generally to a shared mapping session for a navigation or mapping application, and more particularly, to a method and electronic device for implementing a shared mapping session for a navigation or mapping application. [Background technology]
[0002] Users frequently use navigation or mapping applications to search for points of interest such as local businesses, find directions to the points of interest, and navigate from one location to another. In some cases, the navigation application may be used by one or more users who may be physically in the same location or who may contact via digital channels (e.g., via email or chat). These navigation applications allow only a single user or a single device when conducting a search for a point of interest. When different users wish to contact each other regarding a search for a potential common meeting point, the need for the different users to send suggestions to each other (e.g., via separate applications such as email, chat, or phone) results in increased overhead and resource usage. Summary of the Invention
[0003] Aspects and advantages of embodiments of the present disclosure will be set forth in part in the description that follows, or may be learned from the description, or may be learned by practice of exemplary embodiments.
[0004] In one or more exemplary embodiments, a computer-implemented method for a shared mapping session is provided. The computer-implemented method may include initiating a shared mapping session involving a plurality of electronic devices, including a first electronic device having a first user and a second electronic device having a second user, receiving second point of interest (POI) information associated with the second user from the second electronic device via the shared mapping session, the second POI information including a visual element identifying the second POI as an item of interest to the second user, and displaying a user interface for the shared mapping session on a display of the first electronic device, the user interface displaying map information indicative of the visual element and a location associated with the first user, the at least visual element being simultaneously visible to the first user via the first electronic device and to the second user via the second electronic device in the shared mapping session.
[0005] In some embodiments, the method may further include sending a request for a real-time map view of the shared mapping session from the perspective of a second user of the second electronic device, receiving the real-time map view of the shared mapping session from the perspective of the second user of the second electronic device, and displaying the real-time map view of the shared mapping session from the perspective of the second user of the second electronic device in a user interface of the shared mapping session.
[0006] In some embodiments, the method may include receiving second navigation information indicating travel information from a starting location of the second user to a location of the second POI, and displaying, in a user interface of the shared mapping session based on the second navigation information, at least one of a travel time or a travel route from the starting location of the second user to the location of the second POI simultaneously with at least one of a travel time or a travel route from the starting location of the first user to the location of the second POI.
[0007] In some implementations, the method may include sending to a server first location information associated with a first user of the first electronic device and first point of interest (POI) information associated with the first user; receiving from the server one or more recommended POIs determined by the server based at least in part on the first location information, the first POI information, second location information associated with the second user, and the second POI information; displaying, in a user interface of the shared mapping session, at least one of a travel time or a travel route from a starting location of the first user to locations of the one or more recommended POIs; and displaying, in a user interface of the shared mapping session, locations of the one or more recommended POIs simultaneously visible to a second user via the second electronic device in the shared mapping session.
[0008] In some implementations, the method may further include, in response to determining that the first electronic device is co-located with the second electronic device, automatically sending an invitation to the second electronic device to join the shared mapping session, and in response to determining that the first electronic device and the second electronic device are no longer co-located, automatically terminating the shared mapping session.
[0009] In some implementations, the method may further include obtaining location information from at least one sensor of the second electronic device to improve accuracy of the location measured by the first electronic device in response to determining that the first electronic device and the second electronic device are co-located with each other and that an accuracy of the location measured by the first electronic device is less than a threshold value.
[0010] In one or more exemplary embodiments, an electronic device (e.g., a smartphone, a table, a laptop, a personal computer, etc.) for conducting a shared mapping session is provided. The electronic device may include a display, one or more memories configured to store instructions, and one or more processors configured to execute the instructions stored in the one or more memories to initiate a shared mapping session involving a plurality of electronic devices, including an electronic device having a first user and a second electronic device having a second user, receive second point of interest (POI) information associated with the second user from the second electronic device via the shared mapping session, the second POI information including a visual element identifying the second POI as an item of interest to the second user, and display on the display a user interface for the shared mapping session, the user interface displaying map information indicative of a location associated with the first user, at least the visual element being simultaneously visible to the first user via the electronic device and to the second user via the second electronic device in the shared mapping session.
[0011] In some implementations, the one or more processors may be configured to send a request for a real-time map view of the shared mapping session from the perspective of a second user of the second electronic device, receive the real-time map view of the shared mapping session from the perspective of the second user of the second electronic device, and display the real-time map view of the shared mapping session from the perspective of the second user of the second electronic device in a user interface of the shared mapping session.
[0012] In some implementations, the one or more processors may be configured to receive second navigation information indicating travel information from a starting location of the second user to a location of the second POI, and based on the second navigation information, display at least one of a travel time or a travel route from the starting location of the second user to the location of the second POI simultaneously with at least one of a travel time or a travel route from the starting location of the first user to the location of the second POI in a user interface of the shared mapping session.
[0013] In some implementations, the one or more processors may be configured to: send to a server first location information associated with a first user of the electronic device and first point of interest (POI) information associated with the first user; receive from the server one or more recommended POIs determined by the server based at least in part on the first location information, the first POI information, second location information associated with a second user, and the second POI information; display, in a user interface of the shared mapping session, at least one of a travel time or a travel route from a starting location of the first user to locations of the one or more recommended POIs; and display, in a user interface of the shared mapping session, locations of the one or more recommended POIs that are simultaneously visible to a second user via the second electronic device in the shared mapping session.
[0014] In some implementations, the one or more processors may be configured to, in response to determining that the electronic device is co-located with the second electronic device, automatically send an invitation to the second electronic device to join the shared mapping session, and in response to determining that the electronic device and the second electronic device are no longer co-located, automatically terminate the shared mapping session.
[0015] In some implementations, the one or more processors may be configured to, in response to determining that the electronic device and the second electronic device are co-located with each other and that an accuracy of the location measured by the electronic device is below a threshold, obtain location information from at least one sensor of the second electronic device to improve accuracy of the location measured by the electronic device.
[0016] In one or more exemplary embodiments, a computer-implemented method for a shared mapping session is provided. The computer-implemented method may include receiving a request to initiate a shared mapping session including a plurality of electronic devices including a first electronic device and a second electronic device, receiving from the first electronic device via the shared mapping session first point of interest (POI) information associated with a first user associated with the first electronic device, the first POI information including a visual element identifying the first POI as an item of interest to the first user, and transmitting the visual element to the second electronic device such that the visual element is simultaneously visible to the second user via the second electronic device and to the first user via the first electronic device in the shared mapping session.
[0017] In some implementations, the method may further include receiving a request from the first electronic device to provide a real-time map view of the shared mapping session from the perspective of a second user of the second electronic device, and in response to receiving the request, transmitting the real-time map view of the shared mapping session from the perspective of the second user of the second electronic device to the first electronic device.
[0018] In some embodiments, the method may further include transmitting second navigation information to the first electronic device, the second navigation information indicating at least one of a travel time or a travel route from a starting location of the second user to the location of the first POI, such that the at least one of the travel time or the travel route from the starting location of the second user to the location of the first POI is visible to the first user in the shared mapping session simultaneously with the at least one of the travel time or the travel route from the starting location of the first user to the location of the first POI.
[0019] In some implementations, the method may further include receiving first location information associated with the first user and second location information associated with the second user, receiving second POI information associated with the second user, determining one or more recommended POIs based at least in part on the first location information, the second location information, the first POI information, and the second POI information, and transmitting the one or more recommended POIs to the first electronic device and the second electronic device such that the one or more recommended POIs are simultaneously visible to the first user via the first electronic device and to the second user via the second electronic device in the shared mapping session.
[0020] In some embodiments, the method may further include, in response to receiving a query for one or more recommended POIs from the first electronic device, obtaining a plurality of candidate recommended POIs based on one or more search results corresponding to the query, and ranking each of the plurality of candidate recommended POIs based in part on search criteria from the query and user profile information of at least one user other than the first user among the users of the plurality of electronic devices in the shared mapping session, wherein determining the one or more recommended POIs is further based in part on the ranking of each of the plurality of candidate recommended POIs.
[0021] In some implementations, ranking each of the plurality of candidate recommended POIs may be further based in part on at least one of a travel time or a travel route from a respective starting location associated with each user of the plurality of electronic devices in the shared mapping session to a respective location of each of the plurality of candidate recommended POIs.
[0022] In some implementations, the method may further include, in response to determining that the first electronic device is co-located with the second electronic device, automatically sending an invitation to the second electronic device to join the shared mapping session, and in response to determining that the first electronic device and the second electronic device are no longer co-located, automatically terminating the shared mapping session.
[0023] In some implementations, the method may further include, in response to determining that the first electronic device and the second electronic device are co-located with each other and receiving information indicating that an accuracy of the location measured by the first electronic device is below a threshold, obtaining location information from at least one sensor of the second electronic device, and providing the location information obtained from the at least one sensor of the second electronic device to the first electronic device to improve accuracy of the location measured by the first electronic device.
[0024] In one or more exemplary embodiments, an electronic device (e.g., a server) for conducting a shared mapping session is provided. The electronic device may include one or more memories configured to store instructions, and one or more processors configured to execute the instructions stored in the one or more memories to initiate a shared mapping session involving a plurality of electronic devices, including a first electronic device and a second electronic device, receive a request from the first electronic device via the shared mapping session to receive first point of interest (POI) information associated with a first user associated with the first electronic device, the first POI information including a visual element identifying the first POI as an item of interest to the first user, and transmit the visual element to the second electronic device such that the visual element is simultaneously visible to the second user via the second electronic device and to the first user via the first electronic device in the shared mapping session. The one or more processors of the electronic device may be further configured to perform one or more other operations of a computer-implemented method of an electronic device as described herein.
[0025] In one or more exemplary embodiments, a computer-readable medium (e.g., a non-transitory computer-readable medium) is provided that stores instructions executable by one or more processors of an electronic device and / or a server. In some implementations, the computer-readable medium stores instructions that may include instructions that cause the one or more processors to perform one or more operations (e.g., server operations and / or electronic device operations) of any of the methods described herein. The computer-readable medium may store additional instructions that perform other aspects of the server and electronic device, and corresponding methods of operation, as described herein.
[0026] These and other features, aspects, and advantages of various embodiments of the present disclosure will become better understood with reference to the following description, drawings, and appended claims, which are incorporated in and constitute a part of this specification, illustrate exemplary embodiments of the present disclosure and, together with the description, serve to explain associated principles.
[0027] A detailed description of exemplary embodiments, directed to those skilled in the art, is set forth in the specification, which refers to the accompanying drawings. [Brief description of the drawings]
[0028] [Figure 1] FIG. 1 illustrates an example system in accordance with one or more exemplary embodiments of the present disclosure. [Diagram 2] FIG. 1 includes an example block diagram of an electronic device and a server in accordance with one or more example embodiments of the present disclosure. [Figure 3A] 1A-1C are diagrams including exemplary user interface screens for a user initiating a shared mapping session in accordance with one or more exemplary embodiments of the present disclosure. [Figure 3B] 1A-1C are diagrams including exemplary user interface screens for a user initiating a shared mapping session in accordance with one or more exemplary embodiments of the present disclosure. [Figure 3C] 1A-1C are diagrams including exemplary user interface screens for a user initiating a shared mapping session in accordance with one or more exemplary embodiments of the present disclosure. [Figure 4A] A diagram including exemplary user interface screens of a user annotating points of interest that are visible to other users in a shared mapping session, in accordance with one or more exemplary embodiments of the present disclosure. [Figure 4B] A diagram including exemplary user interface screens of a user annotating points of interest that are visible to other users in a shared mapping session, in accordance with one or more exemplary embodiments of the present disclosure. [Figure 5A]11A-11C include exemplary user interface screens through which a user switches to another user's perspective in a shared mapping session, in accordance with one or more exemplary embodiments of the present disclosure. [Figure 5B] 11A-11C include exemplary user interface screens through which a user switches to another user's perspective in a shared mapping session, in accordance with one or more exemplary embodiments of the present disclosure. [Figure 6A] FIG. 13 includes an example user interface screen displaying navigation information to ranked recommended points of interest in accordance with one or more example embodiments of the present disclosure. [Figure 6B] FIG. 13 includes an example user interface screen displaying navigation information to ranked recommended points of interest in accordance with one or more example embodiments of the present disclosure. [Figure 7] FIG. 1 includes a flow diagram of an exemplary, non-limiting computer-implemented method according to one or more exemplary embodiments of the present disclosure. [Figure 8] FIG. 1 includes a flow diagram of an exemplary, non-limiting computer-implemented method according to one or more exemplary embodiments of the present disclosure. [Figure 9] FIG. 1 includes a flow diagram of an exemplary, non-limiting computer-implemented method according to one or more exemplary embodiments of the present disclosure. [Figure 10] FIG. 1 includes a flow diagram of an exemplary, non-limiting computer-implemented method according to one or more exemplary embodiments of the present disclosure. [Figure 11] FIG. 1 includes a flow diagram of an exemplary, non-limiting computer-implemented method according to one or more exemplary embodiments of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0029] Reference will now be made to the embodiments of the present disclosure, one or more examples of which are illustrated in the drawings. In the drawings, like reference numerals refer to like elements. Each example is provided for the purpose of illustrating the disclosure, and is not intended to limit the disclosure. In fact, it will be apparent to one skilled in the art that various modifications and variations can be made to the disclosure without departing from the scope or spirit of the disclosure. For example, features illustrated or described as part of one embodiment can be used with other embodiments to yield still other embodiments. It is therefore intended that the present disclosure cover such modifications and variations as come within the scope of the appended claims and their equivalents.
[0030] The terms used herein are used to describe exemplary embodiments and are not intended to limit and / or restrict the present disclosure. The singular forms "a", "an" and "the" are intended to include the plural unless the context clearly indicates otherwise. In this disclosure, terms such as "including", "having", "comprising" and the like are used to specify features, numbers, steps, operations, elements, components, or combinations thereof, but do not exclude the presence or addition of one or more of the features, elements, steps, operations, elements, components, or combinations thereof.
[0031] Terms such as first, second, third, etc. may be used herein to describe various elements, but it should be understood that the elements are not limited by these terms. Instead, these terms are used to distinguish one element from another. For example, a first element may be referred to as a second element, and a second element may be referred to as a first element, without departing from the scope of the present disclosure.
[0032] The term "and / or" includes a combination of two or more associated listed items or any item of two or more associated listed items. For example, the scope of an expression or phrase "A and / or B" includes item "A," item "B," and the combination of items "A and B."
[0033] Additionally, the scope of the expression or phrase "at least one of A or B" is intended to include all of the following: (1) at least one of A, (2) at least one of B, and (3) at least one of A and at least one of B. Similarly, the range expression or phrase "at least one of A, B, or C" is intended to include all of the following: (1) at least one of A, (2) at least one of B, (3) at least one of C, (4) at least one of A and at least one of B, (5) at least one of A and at least one of C, (6) at least one of B and at least one of C, and (7) at least one of A, at least one of B, and at least one of C.
[0034] Examples of the present disclosure are directed to computer-implemented methods whereby multiple users (e.g., each user operating a respective electronic device) can collaboratively share a mapping session. A shared mapping session allows for a shared browsing experience by multiple users (who may or may not be physically co-located). A shared mapping session allows multiple users to view or share a navigation path from each of their respective source points to a point of interest that may be agreed upon by group-based result ranking.
[0035] Users frequently use navigation or mapping applications to search for points of interest such as local businesses, find directions to the points of interest, and navigate from one location to another. In some cases, a navigation application may be used by one or more users who may be physically in the same location or who may contact through digital channels (e.g., via email or chat). For example, two users living on different sides of a city may separately use the same navigation application to search for restaurants to meet at for a meal and share various suggestions through separate chat applications or by exchanging emails. After eating at the restaurant, while still physically together, they may separately search on their respective electronic devices for bars to go for drinks.
[0036] According to examples disclosed herein, a navigation application allows users to easily search for points of interest and obtain associated directions in a collaborative shared mapping session. For example, two users living on different sides of a city can separately use the navigation application to search for restaurants to meet for meals and simultaneously collaboratively share various suggestions via a shared mapping session provided by the navigation application, thereby avoiding the need to utilize separate applications such as chat applications or email applications. This saves resources on the user device because such separate applications do not need to be invoked with the necessary allocation of application resources on each user device. For example, a user may drop a pin on a restaurant displayed on a map that is of interest to the user, and the pin may be visible to other users in real time. In addition, directions and / or travel times from each of the users' respective starting locations to the restaurant may be displayed on the map, allowing each user to see travel information to the restaurant and, in some cases, to display travel information to the restaurant to other users. In an exemplary embodiment, the server may provide recommended restaurants according to location information of each of the users and according to information provided by the users (preferred food types, allergies, travel restrictions (e.g., maximum distance or time of travel), etc.). The recommended restaurants may be ranked by the server and provided to the users, e.g., in the form of a list. The server may automatically select the highest ranked restaurants and provide navigation information to each of the users in the shared mapping session, the users may vote for one of the restaurants provided in the list, or the user (e.g., the initiator of the shared mapping session) may select one of the restaurants from the list.According to other examples disclosed herein, when users are in the same physical location (e.g., at a restaurant together) and engaged in a shared mapping session, resources (e.g., a GPS sensor) may be shared between electronic devices belonging to the users in the shared mapping session to improve the location accuracy of at least one of the electronic devices used by the users, which may also conserve resources between the electronic devices of the shared mapping session.
[0037] According to examples of the present disclosure, an electronic device (e.g., a server) may be configured to execute a computer-implemented method for a shared mapping session. The server may include one or more memories (e.g., a computer-readable storage medium, which may be non-transitory) for storing instructions, and one or more processors for executing instructions stored in the one or more memories to perform operations of the method described herein. The method may include initiating a shared mapping session including at least a first user and a second user of a plurality of users. For example, a user of the electronic device may execute an application installed in the electronic device (e.g., by opening one of a navigation application, a mapping application, etc.) and initiate a shared mapping session with other users. The shared mapping session may be implemented using a server that maintains each user's respective state with respect to the shared mapping session and provides information (e.g., updates, messages, content, notifications, data, etc.) to each of the users whenever there is an update to the shared mapping session.
[0038] The shared mapping session may be initiated (e.g., automatically initiated) by the server in response to a navigation application (mapping application) being executed by the first user (first electronic device). In some implementations, the shared mapping session may be initiated via account sharing in the application. The user may specify other users who have accounts with the application service provider and may add these accounts to the shared mapping session (e.g., by specifying a username associated with the account, an email associated with the account, etc.). As an alternative or additional example, the user may provide a QR code, a unique link, or other information to potential participants to be added in the shared mapping session. As a further alternative or additional example, the user may discover or receive suggestions of potential participants to join the shared mapping session via a wireless protocol, including one or more of NFC, Bluetooth, Wifi Direct, Android Nearby, etc. The user may send an invitation to the discovered potential participants via the wireless protocol to request the potential participants to join the shared mapping session.
[0039] In some implementations, a user may create a shared mapping session across multiple other devices belonging to the user, in which case the user's known devices may be populated within the mapping application so that multiple other devices can be added to the session.
[0040] In some implementations, to streamline the process of creating and sharing shared mapping sessions, the mapping application may automatically provide suggestions of potential participants to add once a new session is created. For example, the mapping application may automatically provide suggestions of potential participants to add in response to discovering nearby users / devices via one or more wireless protocols described herein, or based on other contextual information (e.g., the user's contacts who are in the same location as the user and who also have the same application active, potential participants who share common calendar events, etc.).
[0041] In response to receiving an invitation to participate in a shared mapping session, a potential participant may enter (join) the shared mapping session via a variety of methods. For example, in some implementations, a potential participant may be required to provide an additional authentication factor to verify that they are authorized to participate in the shared mapping session. For example, a potential participant may be required to provide an additional authentication factor if the session sharing mechanism is less secure (below a first secure sharing mechanism criterion), e.g., via a link-based session sharing mechanism. For example, in some implementations, a potential participant may not be required to provide an additional authentication factor if the session sharing mechanism is more secure (above a second secure sharing mechanism criterion), e.g., via an account-based session sharing mechanism.
[0042] In some implementations, the authentication factor may be an automatically generated prompt based on existing information present in the shared mapping session. For example, the server may send a query to the joining user requesting verifying information about the context of the session (e.g., a location associated with the shared mapping session). For example, the joining user may be asked, "What city is this session focused on?" If the joining user correctly provides a response (e.g., "Paris"), the joining user is approved to join (e.g., by the server). If the joining user does not provide a correct response, the join request may be rejected (e.g., by the server) and the joining user may be asked another question or the joining user may be given another opportunity to respond correctly.
[0043] The authentication prompt may also include other verifying information about the context of the session (e.g., the names of other participants, such as the initiator or host of the shared mapping session). For example, the joining user may be sent or presented (e.g., by the server) with a query such as "What is the name of the owner of this session?" If the joining user correctly provides a response (e.g., "John"), the joining user is approved to join (e.g., by the server). If the joining user does not provide a correct response, the join request may be rejected (e.g., by the server) and the joining user may be asked other questions or the joining user may be given another opportunity to respond correctly.
[0044] In the foregoing example, participating users' inputs may be fuzzy matched (e.g., by the server) against expected text to allow for variations in spelling or shortened versions, for example. For example, one or more processors of the server may perform the fuzzy matching based on text normalization techniques or via ML-based models that embed both the input and the expected values within a common feature space.
[0045] In some implementations, when a new user is added to a shared mapping session (e.g., by a server), one or more of the existing users in the shared mapping session are notified of the joining event so that those users are aware of the other users joining the shared mapping session. For example, the shared mapping session may provide a message to each existing user in the shared mapping session indicating that another user has joined.
[0046] According to an example of the present disclosure, a server may receive first location information associated with a first user in the shared mapping session and location information associated with another user who participated in the shared mapping session (e.g., second location information associated with a second user who participated in the shared mapping session). The location information of each of the users may be used (e.g., by the server) to determine a common meeting point (i.e., a point of interest) for the users. For example, the location information may indicate a geographic location of the user's electronic device running a navigation application through the shared mapping session (e.g., based on a location determined based on a GPS signal or based on a wireless network). For example, the location information may indicate a geographic location of a planned starting location of the user (e.g., the geographic location of the user's home, work, or other location), which may be based on an address, a world coordinate system, or other location information that may be publicly known. Each of the users may be traveling from various source locations (e.g., their respective homes or work). To find a suitable common meeting point, each user in the shared mapping session may provide their own origin (starting) point. For example, each time a user joins a shared mapping session, the server may receive the user's location (origin or planned starting point) (e.g., the current location of the electronic device the user is using, or the user's planned starting location, such as the user's home, work, or other location). The user's location may be automatically provided to the server when joining a shared mapping session, or the user may be prompted to provide an origin or starting location when joining a shared mapping session. Other information, such as the user's preferred mode of transportation (e.g., car, bus, train, etc.), may also be provided (e.g., to the server) by the user.In some embodiments, the user's departure location may be automatically shared with other users via a shared mapping session, while in other embodiments, the user's departure location may be shared only with authorized users via a shared mapping session, or the user's departure location may not be shared with other users at all.
[0047] The server may use the starting location information of each of the users to determine possible meeting points (points of interest). For example, the server may use the starting location information of each of the users to determine points of interest locations that are equidistant to all users in the shared mapping session, or may determine points of interest locations that are easily accessible to all users in the shared mapping session. The term "easily accessible" may refer to points of interest that are located within a preset distance of each of the users in the shared mapping session. For example, if three users each specify a maximum distance they are willing to travel of 4 miles, 5 miles, and 3 miles, respectively, the server may set the preset distance to a minimum distance of 3 miles, or may set it to an average of the specified distances (4 miles). As another example, the term "easily accessible" may refer to points of interest that are located within a preset time of each of the users in the shared mapping session given a specified mode of travel for each of the users. For example, if three users each specify a maximum time they are willing to travel of 30 minutes, 10 minutes, and 20 minutes, respectively, the server may set the preset time to a minimum time of 10 minutes, or may set it to an average of the specified times (20 minutes). As another example, the term "easily accessible" may refer to a point of interest that can be reached in a convenient manner and / or meets other criteria such that it can also be reached by each of the users in the shared mapping session (e.g., a destination that can be reached by or accommodated for users with physical disabilities).
[0048] According to an example of the present disclosure, a server may be configured to execute a computer-implemented method for a shared mapping session, which may include an operation in which the server receives first point of interest (POI) information associated with a first user and POI information associated with other users in the shared mapping session (e.g., second POI information associated with a second user). The points of interest may include any feature, place, or destination of interest to a user or users in the shared mapping session. For example, one or more of the users may wish to travel to or visit to meet at least one other user in the shared mapping session. For example, the points of interest may include restaurants, museums, stadiums, concert halls, amusement parks, schools, places of business, grocery stores, gas stations, movie theaters, shopping malls, lodgings, etc. The points of interest information may include any information that may be useful in identifying the points of interest. For example, the points of interest information may include any information that may be included in a search query by a user for points of interest. For example, the points of interest information may include category information (e.g., lodging, restaurant, etc.), names of points of interest (e.g., stadium, restaurant name, etc.), preferences for points of interest (e.g., preferences for a particular environment, such as a quiet atmosphere), preferences for a particular type of food, such as vegetarian food, preferences for a minimum review rating by other users and / or reviewers (e.g., 3 stars or at least a rating of 4.0 out of 5.0), preferences for a particular travel time and / or travel distance (e.g., less than 10 minutes away from the user), preferences for a particular budget level (e.g., $$ or $$$ rating, etc.). For example, the points of interest information may include user profile information of the user that may be used to identify the points of interest. The user profile information may include information about the user, such as demographic information (e.g., age, gender, etc.), address information, preferences such as food preferences, hotel preferences, movie preferences, etc.The user profile information may also include user history information, such as past reviews of points of interest by the user, previous visits to points of interest, the user's spending habits, etc. In some implementations, the points of interest information received by the server may automatically include the user's user profile information if the user has authorized or permitted the user profile information to be shared with the server.
[0049] A shared mapping session allows multiple users to participate in a shared mapping session in an application (e.g., a map application, a navigation application, etc.), with each user indicating a preference for points of interest in the shared mapping session that is immediately (e.g., in real time) visible to other users in the shared mapping session. For example, a user may indicate a preference for a point of interest by placing a visual element or icon next to the location of the point of interest in the map. For example, a user may place a star on or next to the location of the point of interest in the map, or may drop a pin on or next to the location of the point of interest in the map. The visual element or icon may be immediately visible to other users in the shared mapping session. For example, the visual element or icon may be color coded or have some other unique identifier that represents the user, allowing other users in the shared mapping session to understand which user has indicated a preference for the point of interest.
[0050] In an exemplary embodiment, a first user may indicate a preference for a first POI by placing a visual element, such as a pin, next to the first POI in a map. The first POI information received by the server may include a visual element representing the first user's preference for the first POI, and the server, in response to the first user indicating a preference for the first POI, may transmit the visual element to other users (e.g., the second user) in the shared mapping session such that the visual element is visible to the other users (e.g., the second user) in the shared mapping session in real time. For example, the user may highlight or mark certain locations and / or routes and add annotations associated therewith. This information may be included as part of the POI information transmitted from the user to the server and may be shared with the other users in the shared mapping session.
[0051] As previously described, the server may obtain location information of the users in the shared mapping session as well as point of interest information from one or more of the users in the shared mapping session. The server may use the location information of the users and the point of interest information to determine one or more recommended POIs to present to the users in the shared mapping session. According to an example of the present disclosure, the server may be configured to execute a computer-implemented method for the shared mapping session, the method including operations of determining one or more recommended POIs based at least in part on first location information of a first user, second location information of a second user, first POI information provided to the server by the first user, and second POI information provided to the server by the second user. Thus, the users in the shared mapping session may obtain recommendations for one or more points of interest from the server based on one or more queries sent to the server by one or more users in the shared mapping session. The server may determine one or more recommended POIs by considering search criteria (e.g., POI information such as the search term "restaurant") provided by one or more users, and the server may use user profile information (if shared) of one or more of the users in the shared mapping session to suggest one or more recommended POIs that are preferred by all users and are also convenient for each user to travel to. According to an example of the present disclosure, the server may be configured to execute a computer-implemented method for a shared mapping session, including an act of transmitting the one or more recommended POIs to a first user and another user (e.g., a second user) in the shared mapping session such that the one or more recommended POIs are visible (e.g., simultaneously visible) to the first user and the other user (e.g., the second user) in the shared mapping session.
[0052] In connection with determining the one or more recommended POIs, the server may also determine navigation information (e.g., directions, travel times, alternative routes, etc.) from each of the origin or departure locations of each of the users in the shared mapping session to the one or more recommended POIs. The server may also transmit the navigation information to each user so that each user can view the navigation information from their respective origin or departure locations to the one or more recommended POIs. The navigation information to the recommended POIs may be differentiated from navigation information to other recommended POIs by the use of color, by using different markings for travel paths and / or travel times, or by a combination thereof. According to an example of the present disclosure, the server may be configured to execute a computer-implemented method for a shared mapping session, the computer-implemented method including the operations of transmitting first navigation information to the first user (the first navigation information indicating travel information from a location associated with the first user to a location of the one or more recommended POIs) such that at least one of the travel times or travel paths from a location associated with the first user to a location of the one or more recommended POIs is visible to the first user in the shared mapping session. According to examples of the present disclosure, the server may be configured to execute a computer-implemented method for a shared mapping session that includes an act of transmitting navigation information to another user, such as second navigation information to the second user, where the second navigation information may indicate travel information from a location associated with the second user to locations of one or more recommended POIs such that at least one of a travel time or a travel path from a location associated with the second user to the locations of the one or more recommended POIs is visible to the second user in the shared mapping session.
[0053] In one or more exemplary embodiments, a computer-implemented method for a shared mapping session is provided. The computer-implemented method may include initiating a shared mapping session including a plurality of electronic devices including a first electronic device and a second electronic device, receiving from the second electronic device via the shared mapping session, second navigation information associated with a second user of the second device, the second navigation information indicating travel information from a location associated with the second user (e.g., an origin of the second user) to a location of a point of interest (POI), and displaying a user interface for the shared mapping session on a display of the first electronic device, the user interface displaying map information indicating the first navigation information indicating the travel information from the location associated with the first user (e.g., an origin of the first user) to the location of the POI, the first navigation information including at least one of a travel time or a travel route from the location associated with the first user to the location of the POI, and the second navigation information including at least one of a travel time or a travel route from the location associated with the second user to the location of the POI.
[0054] In some implementations, the server may transmit the navigation information to the user in response to a request from the user for navigation information to the point of interest. For example, the first navigation information may be transmitted to the first user in response to the server receiving a request from the first user and / or the second user for one or more recommended POIs or directions to a POI selected by the first user and / or the second user. For example, the server may determine and transmit directions to the POI given a number of origins corresponding to a number of users in the shared mapping session. In response to a request from the users in the shared mapping session for directions to a selected location or point of interest, the server may determine and transmit directions from each origin or starting location to the selected point of interest to each user in the shared mapping session. Thus, each user can quickly review travel information from each origin or starting location to the selected point of interest and determine whether the selected point of interest is acceptable for travel. This allows each of the users to easily find points of interest that all users can reach in a single step. For example, in a shared mapping session, each user may indicate whether a POI is in an acceptable location (e.g., by a voting mechanism in the shared mapping session, by providing a "thumbs up" indication within the shared mapping session, or by providing some other indication or visual element within the shared mapping session (e.g., a heart, a happy face, etc.)).
[0055] In some implementations, in response to a request from a user in the shared mapping session for directions to a selected location or point of interest, the server may determine and transmit to each user in the shared mapping session directions to the selected point of interest from one or more origin or departure locations of one or more users in the shared mapping session. According to examples of the present disclosure, the server may be configured to execute a computer-implemented method for a shared mapping session, the computer-implemented method including transmitting navigation information of another user (e.g., a second user) to a first user such that at least one of a travel time or travel route from a location associated with the other user (e.g., the second user) to a location of one or more recommended POIs is visible to the first user in the shared mapping session. The navigation information of the other user may be visible simultaneously with at least one of a travel time or travel route from a location associated with the first user to a location of one or more recommended POIs. That is, in some implementations, a user may be able to view a travel route and / or travel time from an origin or departure location of the other user to a selected or recommended point of interest. Thus, users can quickly see travel information (e.g., directions and / or travel times) from other users' origin or departure locations to selected or recommended points of interest (as well as travel information from the user's own origin or departure location to selected or recommended points of interest). Thus, users in a shared mapping session can better understand other users' travel information when determining whether selected or recommended points of interest are acceptable in terms of travel convenience. For example, users in a shared mapping session may get recommendations of points of interest to travel to that are easily accessible to all users in the shared mapping session. For example, travel information to different recommendations of points of interest can be represented by color coding on a map.For example, the most accessible points of interest recommendations may be represented in green, the least accessible points of interest may be represented in red, and points of interest of medium accessibility may be represented in yellow.
[0056] According to one or more examples of the present disclosure, users may switch or snap to the perspective of other users to enable a shared viewing experience. For example, if a first user is viewing a particular area in London, a second user may select an option in the shared mapping session to quickly hop to the first user's location on the map. According to examples of the present disclosure, a server may be configured to execute a computer-implemented method for a shared mapping session, the computer-implemented method including an act of receiving a request from the first user to provide a real-time map view of the shared mapping session from the second user's perspective. In response to receiving the request, the server may transmit the real-time map view of the shared mapping session from the second user's perspective to the first user.
[0057] According to an example of the present disclosure, the server may use the user's location information and point of interest information to determine one or more recommended POIs to present to the users in the shared mapping session. When a group of users are collaborating in a shared mapping session, it is often useful to find points of interest relevant to all users. For example, the one or more recommended POIs may be determined by the server according to a ranking mechanism. Any of the users may make a query or request for suggestions or recommendations via the shared mapping session. In the context of the shared mapping session, these results may be ranked based on the POI information received by the server from the users in the shared mapping session. The POI information may include user profile information of one or more users in the shared mapping session. Ranking the POIs may also help ensure that the recommended POIs are relevant to most, if not all, users in the shared mapping session (e.g., ensuring that the type of restaurant is of interest to all participants) and ensure that the recommended POIs are easily accessible from the origin or departure location of the users in the shared mapping session.
[0058] As mentioned above, for any action that requires ranking of places or routes, this is done collectively for all users in the shared mapping session. For example, if a user searches for "restaurants", the returned recommended restaurants are ranked to be of mutual interest to all users in the shared mapping session (not just the query initiator). For example, ranking of POIs may be done (e.g., by the server) by extending the current ranking mechanism to jointly score the candidate POIs for each user and come up with an average (or other aggregate) score. The results may be sorted by the server based on the aggregate score before displaying the top results to the users in the shared mapping session. As an additional input for ranking the candidate POIs, the respective travel times for each of the users in the shared mapping session may be considered. Candidate POIs that exceed a specified travel time for any one of the users may be eliminated as possible recommended POIs, which may be incorporated into the ranking signal. Candidate POIs with short average travel times for all users in the shared mapping session (e.g., below a first threshold) may be given a greater weight than candidate POIs with long travel times (e.g., longer than the first threshold or longer than a second threshold). Thus, one or more recommended POIs suggested by the server may have expected travel times that are not too long for any one user.
[0059] In one or more exemplary embodiments, a computer-implemented method for a shared mapping session is provided. The computer-implemented method may include receiving, by a server, first location information associated with a first user of a first electronic device among the plurality of electronic devices in the shared mapping session and second location information associated with a second user of a second electronic device among the plurality of electronic devices in the shared mapping session, receiving, by the server, first point of interest (POI) information associated with the first user and second POI information associated with the second user, determining, by the server, one or more recommended POIs based at least in part on the first location information, the second location information, the first POI information, and the second POI information, and transmitting, by the server, the one or more recommended POIs to the first electronic device and the second electronic device, such that the one or more recommended POIs are simultaneously visible to the first user and the second user in the shared mapping session.
[0060] According to an example of the disclosure, a server may be configured to execute a computer-implemented method for a shared mapping session, the computer-implemented method including, in response to receiving a query from a first user for one or more recommended POIs, an operation of obtaining a plurality of candidate recommended POIs based on one or more search results corresponding to the query. The method may further include ranking each of the plurality of candidate recommended POIs based in part on search criteria from the query and user profile information of at least one other user among the plurality of users in the shared mapping session (e.g., any user in the shared mapping session that shares its user profile information). The method may further include ranking each of the plurality of candidate recommended POIs based in part on at least one of a travel time or a travel path from a respective location associated with every user among the plurality of users in the shared mapping session to a respective location of each of the plurality of candidate recommended POIs. The method may further include determining one or more recommended POIs based in part on ranking each of the plurality of candidate recommended POIs. The method may further include eliminating as one of the one or more recommended POIs a candidate recommended POI having a travel time for any user among the plurality of users in the shared mapping session that is greater than a threshold value.
[0061] According to examples of the present disclosure, an electronic device (e.g., a smartphone, a laptop, a tablet, etc.) may be configured to execute a computer-implemented method for a shared mapping session. The electronic device may include one or more memories (e.g., a computer-readable storage medium, which may be non-transitory) for storing instructions, and one or more processors for executing the instructions stored in the one or more memories to perform the operations of the method described herein. The method may include executing, by the electronic device (e.g., a first electronic device), a navigation application (mapping application) and initiating a shared mapping session via the navigation application. The method may further include sending an invitation to one or more other electronic devices (e.g., a second electronic device) for the one or more other electronic devices to join the shared mapping session including the multiple electronic devices.
[0062] As previously mentioned, in some implementations, a shared mapping session may be initiated by the electronic device providing a QR code, unique link, or other information to a potential participant to be added into the shared mapping session via account sharing in an application. As a further alternative or additional example, the electronic device may discover or receive a proposal of a potential participant to join the shared mapping session via a wireless protocol including one or more of NFC, Bluetooth, Wifi Direct, Android Nearby, etc. The electronic device may send an invitation to the discovered potential participant via the wireless protocol requesting the potential participant to join the shared mapping session.
[0063] In some implementations, a user of an electronic device may create a shared mapping session across multiple other electronic devices belonging to the user, where the user's known electronic devices may be populated within a mapping application allowing the multiple other devices to be added to the session.
[0064] According to examples of the present disclosure, the electronic device may be configured to execute a computer-implemented method for a shared mapping session, the computer-implemented method including an operation of transmitting, to a server, location information (e.g., first location information) associated with the electronic device (e.g., first electronic device) and point of interest (POI) information (e.g., first POI information) associated with a user (e.g., first user) associated with the electronic device (e.g., first electronic device). The method may further include an operation of receiving, from the server, one or more recommended POIs determined by the server based at least in part on the first location information, the first POI information, location information associated with the other electronic device (e.g., second location information associated with the second electronic device), and POI information associated with the other user in the shared mapping session (e.g., second POI information associated with the second user of the second electronic device). The method may further include receiving, from the server, first navigation information indicating travel information from a location associated with the electronic device (e.g., first electronic device) to a location of the one or more recommended POIs. The method may further include displaying a user interface of the shared mapping session on a display of the electronic device (e.g., the first electronic device), where the user interface displays map information indicating a location of the electronic device (e.g., the first electronic device), locations of the one or more recommended POIs, and at least one of a travel time or travel route from the location of the electronic device (e.g., the first electronic device) to the locations of the one or more recommended POIs.
[0065] As previously mentioned, users in a shared mapping session may wish to indicate preferences for POIs or simply inform other users of possible POIs that may be of interest to the other users. For example, a user of an electronic device may indicate a preference for a point of interest by placing a visual element or icon next to the location of the point of interest in a map displayed in a user interface of a navigation application. For example, the user may place a star on or next to the location of the point of interest in the map, or may drop a pin on or next to the location of the point of interest in the map displayed in a user interface of a navigation application. According to examples of the present disclosure, the first POI information may include a visual element representing the first user's preference for the first POI, which may be visible to other users (e.g., a second user) in the shared mapping session, and which visual element is visible in real time to users of multiple devices in the shared mapping session. According to an example of the present disclosure, the method may include receiving, by the electronic device, from a server, second POI information, the second POI information including visual elements representing a second user's preference for the second POI, and displaying, in real time, a location and visual elements of the second POI within a user interface of the shared mapping session.
[0066] As described above, navigation information to the recommended POI for the user may be shared with other users to allow other users to view travel information to the recommended POI for the user. According to an example of the present disclosure, the method may include: the electronic device receiving, from a server, second navigation information indicating travel information from a location of the second electronic device to locations of the one or more recommended POIs; and displaying, within a user interface of the shared mapping session, at least one of a travel time or a travel route from the location of the second electronic device to the locations of the one or more recommended POIs and, simultaneously, at least one of a travel time or a travel route from the location of the first electronic device to the locations of the one or more recommended POIs.
[0067] As previously discussed, a user of the electronic device may also see the perspective of the other user and have a shared viewing experience. According to an example of the present disclosure, the method may include an electronic device sending a request for a real-time map view of the shared mapping session from the perspective of a second user of a second electronic device, receiving the real-time map view of the shared mapping session from the perspective of the second user of the second electronic device, and displaying the real-time map view of the shared mapping session from the perspective of the second user of the second electronic device within a user interface of the shared mapping session.
[0068] According to examples of the present disclosure, a shared mapping session may be formed based on whether users of the shared mapping session are co-located with each other. In some cases, a shared mapping session may be performed when two or more users of respective electronic devices are physically together. For example, after two users meet in a city, they may each begin searching for points of interest using a navigation or mapping application. The shared mapping session described herein provides a mechanism for easily creating such a shared mapping session, and may automatically terminate and / or delete the shared mapping session once one or more of the electronic devices in the shared mapping session determine that the users are no longer in the same location. For example, according to methods disclosed herein, the electronic device and / or server may automatically send an invitation to one or more other electronic devices (e.g., the second electronic device) in response to the electronic device being co-located with one or more other electronic devices (e.g., the second electronic device) and each of the first electronic device and the second electronic device determining that a navigation or mapping application is active. For example, a shared mapping session may be automatically initiated in this manner. In some implementations, the shared mapping session may be initiated automatically, but still require additional authentication measures to ensure that the user intends to have a shared mapping session. For example, according to methods disclosed herein, the electronic device may automatically terminate or delete the shared mapping session in response to determining that the first electronic device and the second electronic device are no longer co-located. For example, the shared mapping session may be terminated and / or the history of the shared mapping session may be deleted.
[0069] In one or more exemplary embodiments, an electronic device (e.g., a smartphone, a table, a laptop, a personal computer, etc.) for conducting a shared mapping session is provided. The electronic device may include a display, one or more memories configured to store instructions, and one or more processors configured to execute the instructions stored in the one or more memories to execute a navigation application and to (e.g., automatically) initiate a shared mapping session with the second electronic device based on information indicating that the second electronic device is co-located with the electronic device. The information indicating that the second electronic device is co-located with the electronic device may be obtained by the electronic device itself or may be obtained from a server that determines that the electronic device and the second electronic device are co-located.
[0070] According to examples of the present disclosure, a shared mapping session between users of the shared mapping session who are co-located with each other may further enable sharing of sensors from their respective electronic devices. That is, when multiple users in the shared mapping session are detected to be physically close to each other, the shared mapping session may create a combined location stack to provide more efficient and more accurate location detection, e.g., indicating a more accurate location of the electronic devices (e.g., via a blue dot on a map) or enabling an improved navigation mode. In an example, the server may detect that multiple users in the shared mapping session are physically close to each other based on location information of the multiple users provided to the server. Additionally or alternatively, one of the users' electronic devices may detect at least one other electronic device (e.g., belonging to another user) that is physically close. In response to the server detecting that multiple users in the shared mapping session are physically close to each other and in response to detecting that the location accuracy and / or power level of at least one electronic device (e.g., the first electronic device) is below a threshold, the server may request at least one other electronic device associated with the users in the shared mapping session to provide location information to the first electronic device to form a combined location stack. Additionally or alternatively, in response to the first electronic device detecting that multiple users in the shared mapping session are in physical proximity to one another, and in response to detecting that the location accuracy and / or power level of the first electronic device is below a threshold, the first electronic device may request at least one other electronic device associated with the users in the shared mapping session to provide location information to the first electronic device to form a combined location stack.For example, according to the methods disclosed herein, in response to determining that the first electronic device and a second electronic device are co-located with each other and that the accuracy of the location measured by the first electronic device is below a threshold, the first electronic device may obtain location information from at least one sensor of the second electronic device to create a combined location stack to improve the accuracy of the location measured by the first electronic device.
[0071] For example, one user's electronic device may provide GPS functionality to another user, e.g., if that electronic device has more power or has more accurate sensor readings, or if the other user's electronic device has less power or has less accurate sensor readings. More generally, different sensors from different devices (e.g., a GPS located in a first electronic device, a WiFi / cell located in a second electronic device, a camera located in a third electronic device) may be combined to form a single, more accurate location measurement (e.g., a combined location stack). In other examples, a combined location stack may be constructed from two or more electronic devices all owned by the same user. For example, a user may pair a watch and a phone with each other to cooperatively provide a more accurate location signal whenever the two devices are in close proximity.
[0072] Forming a combined location stack (between electronic devices belonging to different users or the same user) may be done by fusing available sensors from different electronic devices. For example, one electronic device may have a compass and cell access, while another electronic device may only have WiFi. A combined location stack may also be implemented when an electronic device is wearable (e.g., smart eyewear) and can provide a visual positioning signal that can be combined with location information obtained by other electronic devices (e.g., via GPS). As a further example, a combined location stack may be implemented when the electronic device is low powered and cannot operate GPS at high frequencies. A machine-learned model may be implemented to fuse sensors from different electronic devices together. For example, the machine-learned model may be configured to receive sensor outputs from different electronic devices and combine them into a single prediction. Each sensor may be weighted by its respective confidence or measurement accuracy. Some sensors may be completely excluded from the inference (e.g., to save power). For example, the decision to include or exclude a sensor in the combined location stack may be based on heuristics.
[0073] In one or more exemplary embodiments, an electronic device (e.g., a smartphone, a table, a laptop, a personal computer, etc.) for conducting a shared mapping session is provided. The electronic device may include a display, one or more memories configured to store instructions, and one or more processors configured to execute the instructions stored in the one or more memories to initiate a shared mapping session including a plurality of electronic devices including the electronic device and a second electronic device, receive information indicating that the second electronic device is co-located with the electronic device, and in response to the electronic device and the second electronic device being co-located with each other and an accuracy of the location measured by the electronic device being below a threshold, obtain location information from at least one sensor of the second electronic device to improve the accuracy of the location measured by the electronic device. The information indicating that the second electronic device is co-located with the electronic device may be obtained by the electronic device itself or from a server that has determined that the electronic device and the second electronic device are co-located. In one or more exemplary embodiments, a server for conducting a shared mapping session is provided.The server may include one or more memories configured to store instructions; and one or more processors configured to execute the instructions stored in the one or more memories to initiate a shared mapping session involving a plurality of electronic devices, including a first electronic device and a second electronic device; receive information indicating that the second electronic device is co-located with the first electronic device; and, in response to the first electronic device and the second electronic device being co-located with each other and an accuracy of the location measured by the first electronic device being less than a threshold, obtain location information from at least one sensor of the second electronic device to improve accuracy of the location measured by the first electronic device, and provide (transmit) the location information obtained from the at least one sensor of the second electronic device to the first electronic device.
[0074] In some examples, the navigation or mapping application may be closed by the user, but the shared mapping session may remain active. For example, if the user reopens the navigation application, the user may be able to see a list of active shared mapping sessions. The user may select one of the shared mapping sessions from the list to switch back to that shared mapping session. The list of shared mapping sessions may be ranked based on various factors, such as recency, the user's current location, if other users from the shared mapping session are in the same location, etc. In some implementations, the shared mapping session may be sticky, i.e., the user may automatically join the shared mapping session when the navigation or mapping application is reopened. A sticky shared mapping session may be useful when shared mapping sessions exist for multiple electronic devices belonging to the same user. That is, the user may switch back to the shared mapping session even when using a different electronic device.
[0075] A shared mapping session may remain active indefinitely or may terminate automatically (e.g., after a predetermined period of inactivity, such as minutes, hours, days, etc.). If a shared mapping session was initiated by two or more co-located users, the shared mapping session may be terminated when the users are no longer co-located. Additionally or alternatively, a user may explicitly terminate or delete a shared mapping session after it is no longer needed.
[0076] According to examples described herein, a collaborative shared mapping session allows for shared browsing and easy identification of convenient locations or areas to reach given the starting locations of each user. In addition, such a shared mapping session may allow for shared use of resources (e.g., GPS sensors) when the users' respective electronic devices are co-located. Previous navigation applications only allowed a single user or device when conducting a search for points of interest. When different users wish to contact each other regarding a search for a potential common meeting point, the need for the different users to send suggestions to each other (e.g., via separate applications such as email, chat, or phone) would result in increased overhead and resource usage.
[0077] One or more advantages of the present disclosure include allowing users to easily plan and share geographically related information among one another. As previously mentioned, this would be done by sharing links to locations or routes between users. This would require other software applications (e.g., email, chat) to be active on the user's device in addition to the mapping application, and the links to the points of interest to be sent over channels using the other software applications. According to one or more examples of the present disclosure, the recommendations and sharing of links to points of interest can be accomplished directly through the mapping application, saving both time and device resources. That is, all of the activities can be done within a single application (e.g., the mapping application). In one or more other examples of the present disclosure, in response to a shared mapping session being initiated for two or more users (or two or more devices belonging to the same user) in the same location, one or more sensors (e.g., GPS, camera, WiFi) from one user's device may be combined with one or more sensors of the other user's device (or other devices of the same user) to form a single, more accurate location measurement. Thus, technical advantages such as resource savings and improved location accuracy may also be achieved.
[0078] Referring now to the drawings, FIG. 1 is an exemplary system according to one or more exemplary embodiments of the present disclosure. FIG. 1 illustrates an example of a system including a first electronic device 100, a second electronic device 200, a server 300, and external content 500 that may communicate with each other via a network 400. For example, the first electronic device 100 and the second electronic device 200 may include any of a personal computer, a smartphone, a tablet computer, a global positioning service device, a smart watch, and the like. The network may include any type of communication network, such as a local area network (LAN), a wireless local area network (WLAN), a wide area network (WAN), a personal area network (PAN), a virtual private network (VPN), and the like. For example, wireless communication between elements of the exemplary embodiment may be performed via wireless LAN, Wi-Fi, Bluetooth, ZigBee, Wi-Fi Direct (WFD), Ultra Wideband (UWB), Infrared Data Association (IrDA), Bluetooth Low Energy (BLE), Near Field Communication (NFC), Radio Frequency (RF) signals, and the like.
[0079] As described in more detail below, in some implementations, the first electronic device 100 and the second electronic device 200 may participate in a shared mapping session via the server 300 over the network 400. The shared mapping session may include multiple electronic devices, including electronic devices other than the first electronic device 100 and the second electronic device 200.
[0080] In some exemplary embodiments, the server 300 may retrieve data from one or more of the POI data store 370, the navigation data store 380, and the user data store 390 to perform various operations and aspects of the shared mapping session disclosed herein. The POI data store 370, the navigation data store 380, and the user data store 390 may be provided integrally with the server 300 (e.g., as part of the memory 320 of the server 300) or separately (e.g., remotely). Furthermore, the POI data store 370, the navigation data store 380, and the user data store 390 may be combined into a single data store (database) or may be multiple respective data stores. Data stored in one data store (e.g., the POI data store 370) may overlap with some data stored in another data store (e.g., the navigation data store 380). In some implementations, one data store (eg, POI data store 370) may reference data stored in another data store (eg, navigation data store 380).
[0081] The POI data store 370 can store information about points of interest, e.g., for points of interest in regions or areas associated with one or more geographic regions. Points of interest may include any destination or location. For example, points of interest may include restaurants, museums, stadiums, concert halls, amusement parks, schools, businesses, grocery stores, gas stations, movie theaters, shopping malls, lodging, etc. The points of interest data stored in the POI data store 370 may include any information associated with a POI. For example, the POI data store 370 may include location information for the POI, operating hours for the POI, phone numbers for the POI, reviews for the POI, financial information associated with the POI (e.g., average cost for services offered and / or products sold at the POI, e.g., meals, tickets, rooms, etc.), environmental information for the POI (e.g., noise level, ambience description, traffic level, etc., which may be real-time), descriptions of types of services offered and / or products sold, languages spoken at the POI, URLs for the POI, image content associated with the POI, etc.
[0082] The navigation data store 380 may store or provide map data / geospatial data to be used by the server 300. Exemplary geospatial data includes geographic imagery (e.g., digital maps, satellite imagery, aerial photographs, street-level photographs, synthetic models, etc.), tables, vector data (e.g., vector representations of roads, parcels, buildings, etc.), point of interest data, or other suitable geospatial data associated with one or more geographic regions. In some examples, the map data may include a series of sub-maps, each sub-map including data for a geographic region including objects (e.g., buildings or other static features), routes of travel (e.g., roads, highways, public transportation lines, sidewalks, etc.), and other features of interest. The navigation data store 380 may be used by the server 300 to provide navigation directions, perform searches for points of interest, provide location or classification data for points of interest, determine distances, routes, or travel times between locations, or any other suitable use or task necessary or useful in performing the operation of the exemplary embodiments disclosed herein.
[0083] In some exemplary embodiments, user data store 390 may represent a single database. In some embodiments, user data store 390 represents multiple different databases accessible from server 300. In some examples, user data store 390 may include current user location and heading data. In some examples, user data store 390 may include information related to one or more user profiles, such as various user data, such as user preference data, user demographic data, user calendar data, user social network data, user historical movement data, etc. For example, user data store 390 may include, without limitation, text content, images, calendar information related to email or contact information, social media data including comments, reviews, check-ins, likes, invitations, contacts, or reservations, calendar application data including dates, times, events, descriptions, or other content, virtual wallet data including purchases, e-tickets, coupons, or transactions, scheduling data, location data, SMS data, or other suitable data associated with a user account. According to one or more examples of the present disclosure, such data may be analyzed to determine user preferences regarding POIs, to determine user preferences regarding travel (e.g., transportation modes, acceptable time for travel, etc.), to determine possible recommendations for the user to POIs, to determine possible travel routes and transportation modes for the user to the POIs, etc.
[0084] The user data store 390 is provided to illustrate potential data that may be analyzed by the server 300 in some embodiments. Analysis may identify user preferences, recommend POIs, determine possible travel routes to the POIs, determine modes of transportation to use to travel to the POIs, etc. However, such user data may not be collected, used, or analyzed unless the user consents after being informed of what data will be collected and how such data will be used. Furthermore, in some embodiments, the user may be provided with tools (e.g., within the navigation application or via a user account) to revoke or change the scope of permissions. Additionally, certain information or data may be handled in one or more ways before being stored or used, such that personally identifiable information is removed or stored in an encrypted manner. Thus, certain user information stored in the user data store 390 may or may not be accessible to the server 300 based on permissions granted by the user, or such data may not be stored in the user data store 390 at all.
[0085] The external content 500 may be any form of external content including news articles, web pages, video files, audio files, written descriptions, reviews, gaming content, social media content, photos, commercial offers, transportation methods, weather conditions, or other suitable external content. The first electronic device 100, the second electronic device 200, and the server 300 may access the external content 500 via the network 400. The external content 500 may be searched by the server 300 according to known search methods, and the search results may be ranked according to relevance, popularity, or other suitable attributes, such as location-specific filtering or promotions.
[0086] 2, an example block diagram of an electronic device and a server in accordance with one or more example embodiments of the present disclosure will now be described. Although a first electronic device 100 is depicted in FIG. 2, features of the first electronic device 100 described herein are also applicable to a second electronic device 200.
[0087] The first electronic device 100 may include one or more processors 110, one or more memory devices 120, a navigation application 130, a position determination device 140, an input device 150, and a display 160. The server 300 may include one or more processors 310, one or more memory devices 320, and a navigation service provider 330.
[0088] For example, the one or more processors 110, 310 may be any suitable processing device that may be included in the first electronic device 100 or the server 300. For example, such processors 110, 310 may include one or more of the following: processors, processor cores, controllers and arithmetic logic units, central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), image processing units, microcomputers, field programmable arrays, programmable logic units, application specific integrated circuits (ASICs), microprocessors, microcontrollers, etc., and combinations thereof, e.g., any other device capable of responding to and executing instructions in a prescribed manner. The one or more processors 110, 310 may be a single processor, or multiple processors operably connected, e.g., in parallel.
[0089] The memory 120, 320 may include one or more non-transitory computer-readable storage media, such as read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), and flash memory, USB drives, volatile memory devices, such as random access memory (RAM), hard disks, floppy disks, Blu-ray disks, or optical media, such as CD-ROM disks and DVDs, and combinations thereof. However, examples of the memory 120, 320 are not limited to the above description, and the memory 120, 320 may be realized by various other devices and structures, as will be appreciated by those skilled in the art.
[0090] For example, memory 120 may store instructions that, when executed, cause the one or more processors 110 to execute a navigation application and initiate a shared mapping session with other electronic devices via server 300, as described according to examples of this disclosure. For example, memory 320 may store instructions that, when executed, cause the one or more processors 310 to provide navigation services, e.g., provide a shared mapping session for multiple electronic devices, as described according to examples of this disclosure.
[0091] Memory 120 may also include data 122 and instructions 124, which may be obtained, manipulated, created, or stored by one or more processor(s) 110. In some exemplary embodiments, such data may be accessed and used as input to execute navigation applications and initiate shared mapping sessions with other electronic devices via server 300, as described in accordance with examples of this disclosure. Memory 320 may also include data 322 and instructions 324, which may be obtained, manipulated, created, or stored by one or more processor(s) 310. In some exemplary embodiments, such data may be accessed and used as input to provide navigation services, e.g., provide shared mapping sessions for multiple electronic devices, as described in accordance with examples of this disclosure.
[0092] In some exemplary embodiments, the first electronic device 100 includes a navigation application 130, which may also be referred to as a mapping application. The navigation application 130 may provide navigation services to a user. In some examples, the navigation application 130 may facilitate a user's access to a server 300 that provides navigation services. In some exemplary embodiments, the navigation services include providing directions to a particular location, such as a POI. For example, a user may input a destination location (e.g., an address or name of the POI). In response, the navigation application 130 may provide navigation information that enables the user to navigate to the destination location using locally stored map data for the particular geographic area and / or map data provided via the server 300. For example, the navigation information may include turn-by-turn directions from a current location (or a provided origin or departure location) to the destination location. For example, the navigation information may include a travel time (e.g., an estimated or predicted travel time) from a current location (or a provided origin or departure location) to the destination location.
[0093] The navigation application 130 can provide a visual representation of the geographic region on the display 160 of the first electronic device 100. The visual representation of the geographic region may include a highlighted representation of one or more streets, one or more points of interest (including buildings, landmarks, etc.), and a planned route. In some examples, the navigation application 130 can also provide a location-based search option to identify one or more searchable points of interest within a given geographic region. In some examples, the navigation application 130 can include a local copy of associated map data. In other examples, the navigation application 130 can access information on a server 300, which may be remotely located, to provide the requested navigation services.
[0094] In some examples, navigation application 130 may be a specialized application designed specifically to provide navigation services, while in other examples, navigation application 130 may be a general application (e.g., a web browser) that provides access to a variety of different services (e.g., navigation services) over network 400.
[0095] According to one or more aspects of the present disclosure, the navigation application 130 can provide a shared mapping session to a user of the first electronic device 100 via the shared mapping session module 132. In some examples, the user can request initiation of a shared mapping session via the shared mapping session module 132. For example, the shared mapping session may be initiated (e.g., automatically initiated) in response to the navigation application 130 being executed. In some examples, the navigation application 130 can send a request to initiate a shared mapping session to the server 300 and / or other electronic devices. In response, the server 300 may create a shared mapping session. Further aspects of creating and implementing a shared mapping session are described with reference to FIGS. 3A-6B.
[0096] In some demonstrative embodiments, the navigation application 130 also includes a location improvement module 134 for creating a combined location stack to enable an improved navigation mode and provide more efficient and more accurate location detection of the first electronic device 100. For example, using the location improvement module 134 and location information obtained from the positioning device 140, the first electronic device 100 may detect at least one other electronic device (e.g., the second electronic device 200) that is in physical proximity (e.g., within 5-10 meters). In response to the first electronic device 100 detecting that at least one of the multiple electronic devices in the shared mapping session is in physical proximity to the first electronic device 100, and in response to detecting that the location accuracy and / or power level of at least one electronic device (e.g., the second electronic device 200) is below a threshold, the first electronic device 100 may request at least one other electronic device associated with the user in the shared mapping session to provide location information to the second electronic device 200 to form a combined place stack, and / or the first electronic device 100 may itself provide location information to the second electronic device 200 to form a combined place stack. In another example, if the location accuracy and / or power level of the first electronic device 100 is below a threshold, the first electronic device 100 may request at least one other electronic device associated with the user in the shared mapping session to provide location information to the first electronic device 100 to form a combined place stack. For example, in response to determining that the first electronic device 100 and the second electronic device 200 are co-located with each other and the accuracy of the location measured by the first electronic device 100 is below a threshold, the first electronic device 100 may obtain location information from at least one sensor of the second electronic device 200 to create a combined location stack to improve the accuracy of the location measured by the first electronic device 100.
[0097] In some exemplary embodiments, the first electronic device 100 includes a positioning device 140. The positioning device 140 can determine a current geographic location of the first electronic device 100 and communicate such geographic location to the server 300 via the network 400. The positioning device 140 can be any device or circuitry for analyzing the location of the first electronic device 100. For example, the positioning device 140 can determine an actual location or a relative location. This can be done by using a satellite navigation positioning system (e.g., GPS system, Galileo positioning system, Global Navigation Satellite System (GLONASS), BeiDou satellite navigation and positioning system), an inertial navigation system, a dead reckoning system based on an IP address, by using triangulation and / or proximity to cellular towers or WiFi hotspots, and / or other suitable techniques for determining the location of the first electronic device 100.
[0098] The first electronic device 100 may include an input device 150 configured to receive input from a user, and may include, for example, one or more of a keyboard (e.g., a physical keyboard, a virtual keyboard, etc.), a mouse, a joystick, a button, a switch, an electronic pen or stylus, a gesture recognition sensor (e.g., to recognize a user's gestures including movements of body parts), an input sound device or a voice recognition sensor (e.g., a microphone for receiving voice commands), an output sound device (e.g., a speaker), a trackball, a remote controller, a portable (e.g., cellular or smart) phone, a tablet PC, a pedal or foot switch, a virtual reality device, etc. The input device 150 may further include a haptic device that provides haptic feedback to the user. The input device 150 may also be embodied by, for example, a touch-sensitive display having touch screen functionality.
[0099] The first electronic device 100 may include a display 160 that displays information (e.g., a map) visible to a user. For example, the display 160 may be a non-touch-sensitive display or a touch-sensitive display. The display 160 may include a liquid crystal display (LCD), a light-emitting diode (LED) display, an organic light-emitting diode (OLED) display, an active matrix organic light-emitting diode (AMOLED), a flexible display, a 3D display, a plasma display panel (PDP), a cathode ray tube (CRT) display, and the like. However, the present disclosure is not limited to these exemplary displays and may include other types of displays. The display 160 may have a square or rectangular shape, or may be an annular shape (e.g., oval, circular, etc.). However, the shape of the display 160 is not limited thereto. A user interface for a shared mapping session may be displayed on the display 160. The user interface for a shared mapping session may include, for example, information regarding the multiple users of the respective electronic devices. The display may be used by a navigation application 130 installed on the first electronic device 100 to display navigation information to a user. The navigation information may include, without limitation, one or more of: a map of the geographic region, a location of the first electronic device 100 within the geographic region, a route through the geographic region specified on the map, one or more navigation directions (e.g., turn-by-turn directions through the geographic region), a travel time for the route through the geographic region (e.g., from the location of the first electronic device 100 to a POI), and one or more points of interest within the geographic region.
[0100] According to the example embodiments described herein, the server 300 may include one or more processor(s) 310 and memory 320 as previously described above. The server 300 may also include a navigation service provider 330. For example, the navigation service provider 330 may include a shared mapping session service provider 332 as part of the navigation services provided by the navigation service provider 330. However, the shared mapping session service provider 332 may be separate from the navigation service provider 330.
[0101] In some exemplary embodiments, the navigation service provider 330 can provide navigation services to one or more electronic devices (e.g., the first electronic device and the second electronic device 100, 200) via the network 400. Services provided by the navigation service provider 330 can include location-based services, route generation to a specific location, turn-by-turn navigation instructions, geographical map display services, satellite image overlay services, and location tracking services, as well as other navigation services. A user can submit requests to the server 300, and the navigation service provider 330 can process these requests to provide the requested navigation services. For example, a user of the first electronic device 100 can submit a request for directions to a specific location. In response, the navigation service provider 330 can access the navigation data store 390 and calculate one or more routes to the requested location based on data in the navigation data store 380, and transmit information describing the one or more routes to the first electronic device 100.
[0102] In some exemplary embodiments, a shared mapping session may be generated by the shared mapping session service provider 332 at the server 300 based on requests received from one or more electronic devices. The shared mapping session service provider 332 may provide services for a shared mapping session among multiple electronic devices, such that users of the electronic devices may have a shared viewing experience when viewing a geographic region using the navigation application 130. For example, the shared mapping session service provider 332 may use the POI recommendation module 332a to recommend one or more points of interest (POIs) to users of the electronic devices based on inputs provided during the shared mapping session. For example, in providing a recommendation of one or more POIs, the shared mapping session service provider 332 may use the POI ranking module 332b to rank the points of interest based on various inputs provided during the shared mapping session. For example, the shared mapping session service provider 332 may also assist in improving the location accuracy of the electronic devices during the shared mapping session when two or more electronic devices in the shared mapping session are co-located. For example, the location improvement module 332c may request location information from a first electronic device in a shared mapping session and provide location information to a second electronic device in a shared mapping session whose location accuracy is below a threshold to improve the location accuracy of the second electronic device. Further aspects of creating and implementing a shared mapping session via the shared mapping session service provider 332 are described with reference to Figures 3A-6B.
[0103] 3A-3C include exemplary user interface screens of a user initiating a shared mapping session, according to one or more exemplary embodiments of the present disclosure. Referring now to FIG. 3A, an exemplary user interface of a navigation application displayed on a display of an electronic device, according to one or more exemplary embodiments of the present disclosure, is shown. The exemplary configuration of the user interface shown in FIG. 3A (as well as the configurations of the user interfaces shown in FIGS. 3B-6B) is not intended to limit the present disclosure in any way, and other configurations of the user interface are within the scope of the present disclosure. For example, fewer or additional user interface elements may be provided on the user interface. The user interface elements may be presented, for example, via pull-down or collapsible menus.
[0104] For ease of explanation and for purposes of describing the exemplary embodiments, Figure 3A assumes that the user interface 3000 is shown on the display 160 of the first electronic device 100. For example, the user interface 3000 may be a user interface for a navigation application 130 and may include a representation (e.g., a map) of a geographic area associated with a current location 3040 of a user of the first electronic device 100. However, the representation of the geographic area may be any area that a user is interested in viewing and need not be associated with the user's current location.
[0105] User interface 3000 may include various user interface elements through which a user may perform various actions to access certain functionality of navigation application 130. For example, in FIG. 3A , user interface 3000 includes user interface elements 3010, 3020, and 3030. For example, user interface element 3010 may be labeled “Search” and, when selected, may enable a user to perform a search (e.g., via voice or text input). For example, a user may use user interface element 3010 to search for a restaurant, business, hotel, etc. For example, user interface element 3020 may be labeled “Directions” and, when selected, may enable a user to request directions (e.g., via voice or text input) to a particular location. For example, a user may use user interface element 3020 to request directions from their current location to a destination, such as a restaurant, business, hotel, etc., or may use user interface element 3020 to request directions from a different starting location to a destination. For example, user interface element 3030 may be labeled “Create Shared Mapping Session” and, when selected, may enable a user to request the creation of a shared mapping session via shared mapping session module 132 .
[0106] For example, referring to FIG. 3B , in response to a selection of user interface element 3030, the shared mapping shared mapping session module 132 provides the user of the first electronic device 100 with various options for creating a shared mapping session 3050 by displaying one or more of user interface elements 3052, 3054, 3056 on the user interface 3000′.
[0107] For example, as shown in FIG. 3B , a user may request that the user join a shared mapping session by selecting user interface element 3052 to add a new user. The user of the first electronic device 100 may identify the user (e.g., via text box 3062 or voice). The user may identify, for example, using a contact name located in an address book of the user's electronic device, by email address, by a user ID of an account registered with the navigation services provider 330 and / or the shared mapping session service provider 332, etc. As another example, a user may request that another user join a shared mapping session by selecting user interface element 3054 to add a user that the shared mapping session service provider 332 and / or the shared mapping session module 132 determine as a recent user who has participated in a shared mapping session with the user of the first electronic device 100 (e.g., userc@gmail.com 3064). As another example, a user may request another user to join the shared mapping session by selecting user interface element 3056 to add a user that the shared mapping session service provider 332 and / or the shared mapping session module 132 determine as a user of an electronic device co-located with the first electronic device 100.
[0108] Thus, a shared mapping session may be initiated via account sharing via the navigation application 130 and the shared mapping session module 132. The user of the first electronic device 100 may identify other users who have accounts with the navigation service provider 330 and / or the shared mapping session service provider 332 and may add these accounts to the shared mapping session (e.g., by specifying a username associated with the account, an email associated with the account, etc.). As an alternative or additional example, the user of the first electronic device 100 may provide a QR code, a unique link, or other information to potential participants to be added in the shared mapping session. As a further alternative or additional example, the first electronic device 100 may discover or receive suggestions of potential participants to join the shared mapping session via a wireless protocol, including one or more of NFC, Bluetooth, Wifi Direct, Android Nearby, etc. The first electronic device 100 may send an invitation via the shared mapping session module 132 to the discovered potential participants via the wireless protocol, requesting the potential participants to join the shared mapping session.
[0109] In some implementations, a user may create a shared mapping session across multiple other electronic devices belonging to the user, in which case the user's known devices may be populated within the navigation application 130 and / or the shared mapping session module 132 to enable the multiple other electronic devices to be added to the shared mapping session.
[0110] 3B , to streamline the shared mapping session creation and sharing process, the navigation application 130 and / or the shared mapping session module 132 may automatically provide suggestions of potential participants to add when a new session is requested by a user. For example, the navigation application 130 and / or the shared mapping session module 132 may automatically provide suggestions of potential participants to add based on information received from the server 300 in response to discovering a nearby user / electronic device via one or more wireless protocols described herein, or based on other contextual information (e.g., the user's contacts who are co-located with the user and also have the same navigation application active, potential participants who share common calendar events, etc.).
[0111] According to some implementations, the shared mapping session 3050 may be formed based on whether the users of the shared mapping session are co-located with each other. In some cases, the shared mapping session 3050 may be created when two or more users of the respective electronic devices are physically together. For example, user A of the first electronic device 100 and user B of the second electronic device 200 may both be in a restaurant and use the navigation application 130 to find a movie theater. If user A selects the option to create a shared mapping session, the first electronic device 100 and / or the server 300 may automatically send an invitation to the second electronic device 200 in response to determining that the second electronic device is co-located with the first electronic device 100. For example, the shared mapping session 3050 may be automatically initiated between user A and user B. In some implementations, the shared mapping session may be automatically initiated, but still requires additional authentication measures to ensure that the users intend to have the shared mapping session 3050. For example, according to examples disclosed herein, any one of the first electronic device 100, the second electronic device 200, and the server 300 may automatically terminate or delete the shared mapping session 3050 in response to determining that the first electronic device 100 and the second electronic device 200 are no longer co-located. For example, the shared mapping session 3050 may be terminated and / or the history of the shared mapping session may be deleted.
[0112] In response to receiving an invitation to participate in a shared mapping session, a potential participant may enter (join) the shared mapping session through various methods. For example, a user may receive a notification on his / her electronic device via the shared mapping session service provider 332 that he / she has been invited to participate in a shared mapping session. To join, the user may open a navigation application and join the shared mapping session via a shared mapping session module. As another example, the navigation application may open automatically if the user selects to join the shared mapping session when receiving the notification. In some implementations, the shared mapping session service provider 332 may require the potential participant to provide an additional authentication factor to verify that the participant is authorized to participate in the shared mapping session. For example, the shared mapping session service provider 332 may require the potential participant to provide an additional authentication factor if the session sharing mechanism is less secure (below the first secure sharing mechanism criterion), e.g., via a link-based session sharing mechanism. For example, in some implementations, the shared mapping session service provider 332 may not require potential participants to provide an additional authentication factor if the session sharing mechanism is more secure (exceeds the second secure sharing mechanism criteria), e.g., via an account-based session sharing mechanism.
[0113] In some implementations, the authentication factor may be a prompt that is automatically generated based on existing information present in the shared mapping session. For example, the server 300 may send a query to the joining user requesting verifying information about the context of the session (e.g., a location associated with the shared mapping session). For example, the joining user may be asked, "What city is this session focused on?" If the joining user correctly provides a response (e.g., "Paris"), the server 300 may approve the user's participation. If the joining user does not provide a correct response, the server 300 may deny the joining request, and the joining user may be asked another question, or the joining user may be given another opportunity to respond correctly.
[0114] The authentication prompt may also include other verifying information about the context of the session (e.g., the names of other participants, such as the initiator or host of the shared mapping session). For example, the server 300 may send the joining user a query such as "What is the name of the owner of this session?" If the joining user correctly provides a response (e.g., "John"), the server 300 may approve the user's participation in the shared mapping session. If the joining user does not provide a correct response, the server 300 may deny the join request, the joining user may be asked other questions, or the joining user may be given another opportunity to respond correctly.
[0115] In the foregoing example, participating users' inputs may be fuzzy matched (e.g., by server 300) against expected text to allow for variations in spelling or shortened versions, for example. For example, one or more processors 310 of server 300 may perform the fuzzy matching based on text normalization techniques or via ML-based models that embed both the input and the expected values within a common feature space.
[0116] In some implementations, when a new user is added to the shared mapping session by server 300, server 300 may notify one or more of the existing users in the shared mapping session of the joining event so that the existing users are aware of the other users joining the shared mapping session. For example, shared mapping session module 132 may provide a message to the user of first electronic device 100 indicating that another user has joined.
[0117] For example, with reference to FIG. 3C , in response to creating a shared mapping session among multiple electronic devices (e.g., belonging to multiple users), the shared mapping session module 132 may generate another user interface 3000″ that provides the user with various options within the shared mapping session 3050. For example, user interface element 3070 may correspond to a menu of user-selectable options. For example, user interface element 3072 may include an option to annotate a POI, user interface element 3074 may include an option to switch to the viewpoint of another user within the shared mapping session 3050, and user interface element 3076 may include an option to have a chat with one or more other users within the shared mapping session 3050. User interface 3000″ may indicate the users participating in the shared mapping session 3050 by user interface element 3082 indicating “User B” and by user interface element 3092 indicating “User C.” In some implementations, the locations of the electronic devices associated with the users participating in the shared mapping session 3050 may be displayed on a map. For example, user interface 3000'' is a user interface that a user of the first electronic device 100 (e.g., user A) sees. In an example, user A may only be able to see his own location within the shared mapping session 3050. As another example, user A may be able to see the location of any electronic device that has participated in the shared mapping session 3050 without having to invoke a separate application to contact one or more other users. As another example, user A may be able to see the location of any electronic device that has given user A (or any user in the shared mapping session generally) permission to see the location of the corresponding electronic device within the shared mapping session 3050.
[0118] 4A and 4B include exemplary user interface screens of a user annotating a point of interest that is visible to other users in a shared mapping session, according to one or more exemplary embodiments of the present disclosure. For example, referring to FIG. 4A, user interface 4000 shows that user A has entered a search for "restaurant" via user interface element 3010, and that "restaurant A" 4060 has appeared on the map as one of the search results. In the shared mapping session 3050, the user may annotate a POI, for example, by placing a visual element on the map, on or adjacent to the POI, which becomes immediately visible in real time to other users in the shared mapping session 3050. For example, in response to selecting user interface element 3072 to annotate a POI, a new menu may appear on the user interface. For example, user interface element 4070 may show a menu providing options for annotating a POI. For example, options for annotating a POI may include a user interface element 4072 for annotating a POI with a star, a user interface element 4074 for annotating a POI by highlighting the POI, and a user interface element 4076 for annotating a POI with a pin. For example, in the exemplary user interface 4000, user A has placed a star 4050 adjacent to "Restaurant A" 4060, which is immediately visible in real time to other users in the shared mapping session 3050 (e.g., users B and C, represented by user interface elements 3082 and 3092, respectively). For example, the annotation may identify the user who annotated the POI. For example, in FIG. 4A, user A is identified as the user who annotated Restaurant A 4060 with star 4050. As another example, the star may be color-coded with a color corresponding to a color associated with a user who annotated the POI, allowing other users to easily understand who annotated the POI.
[0119] 4B, user interface 4000' is shown as it is displayed to user B on another electronic device. For example, user interface 4000' shows user interface 4000' immediately after user A has annotated restaurant A 4060 with a star 4050 on user interface 4000. User interface 4000' shows user B's location 3080 and indicates that users A and C are also in a shared mapping session 3050 via user interface elements 3042 and 3092.
[0120] Thus, the shared mapping session module 132 is configured to enable multiple users in the navigation application 130 to participate in a shared mapping session 3050, where each user can indicate a preference or interest in a POI within the shared mapping session 3050 that is immediately visible (e.g., in real time) to other users in the shared mapping session 3050. For example, a user may indicate an item of interest related to a POI by placing a visual element or icon next to or on top of the POI's location in the map. For example, a user may place a star on or next to the POI's location in the map, or may drop a pin on or next to the POI's location in the map. For example, the visual element or icon may be color coded or have some other unique identifier that represents the user, allowing other users in the shared mapping session to recognize which users have indicated a preference or interest in a POI.
[0121] In an exemplary embodiment, a first user of the first electronic device 100 may indicate a preference or interest in a first POI by placing a visual element, such as a pin, next to the first POI in a map. For example, the user may annotate the POI by highlighting or marking specific locations and / or routes and / or add notes associated with them. This information may be included as part of the POI information transmitted from the first electronic device 100 associated with the user to the server 300 and shared with other users (other electronic devices) in the shared mapping session 3050. For example, the visual element may be made immediately visible to other users in the shared mapping session 3050 via the server 300. For example, the first electronic device 100 may transmit the first POI information to the server 300, where the first POI information may include information that the server 300 may use to find POIs of interest to the first user, where the first POI information may include information about POIs that the first user would like to share with one or more other users in the shared mapping session, etc. For example, in response to a first user annotating a POI with a visual element or icon, the first POI information including the visual element or icon may be transmitted from the first electronic device 100 to the server 300. The server 300 may transmit the received first POI information including the visual element or icon to each of the other users in the shared mapping session 3050 such that the visual element or icon is immediately visible (e.g., in real time) to the other users in the shared mapping session 3050.
[0122] 5A and 5B include example user interface screens in which a user switches to the perspective of another user in a shared mapping session, according to one or more example embodiments of the present disclosure. For example, referring to FIG. 5A, user interface 5000 illustrates a user interface that may be displayed in response to a user selecting user interface element 3074 to switch to the perspective of another user in a shared mapping session 3050. For example, user interface element 5070 may illustrate a menu that provides options for selecting a user in the shared mapping session to which the user may switch. For example, the user to which the user may switch may be a user who has given the other user in the shared mapping session permission to select. For example, user A of first electronic device 100 may switch to the perspective of user B by selecting user interface element 5072, and may switch to the perspective of user C by selecting user interface element 5074.
[0123] For example, referring to FIG. 5B , in response to user A selecting user interface element 5072, user interface 5000′ is shown on first electronic device 100 to display a user interface to user B within user shared mapping session 3050. For example, user interface 5000′ shows user B's real-time user interface reflecting that user B performed a search for “lakeside restaurants” in search box 5010, with the search results showing restaurant B 5050 on the map. To avoid possible confusion for user A, an indication 5060 may be presented on user interface 5000′ to indicate that the user interface is displaying another user's point of view (e.g., “POV user B”). Indication 5060 may be selectable to allow user A to exit out of the point of view option and return to user interface 5000.
[0124] Thus, according to one or more examples of the present disclosure, a user may switch or snap to another user's perspective to enable a shared viewing experience. For example, if a second user (e.g., user B) is viewing a particular area in Seattle, a first user (e.g., user A) may select an option to switch to another user's perspective via a user interface element 5072 in the shared mapping session 3050 to quickly hop to the second user's perspective (at the location on the map where the second user is looking) in the shared mapping session 3050. According to examples of the present disclosure, the server 300 may receive a request from the first electronic device 100 to provide a real-time map view of the shared mapping session 3050 from the second user's perspective of the second electronic device 200. In response to receiving the request, the server 300 may transmit to the first electronic device 100 the real-time map view of the shared mapping session 3050 from the second user's perspective as displayed on the second electronic device 200.
[0125] 6A and 6B include example user interface screens displaying navigation information to ranked recommended points of interest, according to one or more example embodiments of the present disclosure.
[0126] For example, FIG. 6A illustrates an exemplary user interface 6000. The user interface 6000 may be displayed in response to a user A of the first electronic device 100 performing a search for “nearby parks” via a search text box (or by voice input, for example) on the user interface element 6010 during a shared mapping session 3050. In this exemplary embodiment, the locations 3040, 3080 of users A and B are also displayed within the shared mapping session 3050. The search query of user A may be sent to the server 300. The content of the search query may be considered as the first POI information. For example, the first POI information may include information about user A, such as information stored in user A's user profile, such as a preference for parks that allow dogs. The first location information about user A may also be sent to the server 300. The first location information may include user A's current location (at school) as a starting location, or another location that user A specifies as a starting location (e.g., user A's home).
[0127] In generating the search results as part of the shared mapping session 3050, if applicable, the server 300 also takes into account the starting location of user B (second location information) and user B's input regarding POIs (second POI information) (e.g., user B's preferences regarding parks, maximum travel time, user B's preferences regarding travel modes, etc.). For example, the shared mapping session service provider 332 may be configured to perform a search based on the first location information, the first POI information, the second location information, and the second POI information. The server 300 may generate the search results by, for example, referencing information stored in one or more of the POI data store 370, the navigation data store 380, and the user data store 390. The POI ranking module 332b may rank the search results according to a group-based result ranking system, and the POI recommendation module 332a may recommend one or more of the POIs to the users in the shared mapping session 3050. For example, in FIG. 6A , the server 300 transmits search results to the first electronic device 100, including multiple nearby parks (Park #1 6022, Park #2 6024, and Park #6026), which are identified on the map (e.g., by highlighting with a label including the park's name, etc.). These search results may also be transmitted to the second electronic device 200 and displayed on a user interface in a shared mapping session for viewing by user B of the second electronic device 200. For example, in FIG. 6A , the server 300 transmits first navigation information to the first electronic device 100, including routes 6032, 6034, 6036 to multiple parks and travel information 6062, 6064, 6066. For example, the travel information 6062, 6064, 6066 may include a length of the route and / or a travel time for the route. The search results may be ranked by the server 300 and transmitted to each of the electronic devices in the shared mapping session 3050.For example, in FIG. 6A , user interface element 6070 displays a ranking of the search results, and user interface elements 6072, 6074, 6076 indicate that Park #1 is ranked first, Park #2 is ranked second, and Park #3 is ranked third.
[0128] Thus, according to an example of the present disclosure, the server 300 may receive first location information associated with a first user (e.g., user A) in the shared mapping session 3050 and location information (e.g., second location information associated with user B) associated with another user (e.g., user B) who joined the shared mapping session 3050. The shared mapping session service provider 332 may be configured to use the location information of each of the users to determine a common meeting point (i.e., a point of interest) for the users. For example, the location information may indicate a current geographic location of the user's electronic device executing a navigation application through the shared mapping session (e.g., a location determined based on a GPS signal or based on a wireless network). For example, the location information may indicate a planned geographic location of a planned departure location of the user (e.g., a geographic location of the user's home, work, or other location), which may be based on an address, a world coordinate system, or other location information that may be publicly known. Each of the users may be traveling from a different source location or origin (e.g., their respective homes or work). To find a suitable common meeting point, each user in the shared mapping session 3050 can provide their own origin (start) point. For example, when a user joins the shared mapping session 3050, the server 300 may receive the user's location (origin or planned start) (e.g., the current location of the electronic device the user is using or the planned start location). The location of the user's electronic device may be automatically provided to the server 300 when joining the shared mapping session, or the server 300 may prompt the user to provide its origin or start location when joining the shared mapping session. In some implementations, the user's start location may be automatically shared with other users via the shared mapping session 3050, while in other implementations, the user's start location may be shared only with authorized users via the shared mapping session 3050, or the user's start location may not be shared with other users at all.
[0129] According to an example of the present disclosure, the server 300 may receive first POI information associated with a first user (e.g., user A) in the shared mapping session 3050 and POI information (e.g., second POI information associated with user B) associated with another user (e.g., user B) who has joined the shared mapping session 3050. For example, the POI information may include the user's preferred mode of travel (e.g., car, bus, train, etc.).
[0130] The POI recommendation module 332a may be configured to use the user's location information and the received POI information to determine one or more recommended POIs to be presented to the users in the shared mapping session 3050. According to an example of the present disclosure, the POI recommendation module 332a may be configured to determine the one or more recommended POIs based at least in part on the first location information of the first user, the second location information of the second user, the first POI information, and the second POI information. Thus, the users in the shared mapping session 3050 may obtain recommendations for one or more POIs from the server 300 based on one or more queries sent to the server 300 from one or more users in the shared mapping session 3050. The POI recommendation module 332a may determine the one or more recommended POIs based on various criteria (POI information such as the search term "restaurant", user profile information of one or more of the users in the shared mapping session 3050, if shared, travel restrictions of one or more users in the shared mapping session, etc.). According to an example of the present disclosure, the server 300 is configured to transmit one or more recommended POIs to the first electronic device 100 and to another user (e.g., the second electronic device 200) in the shared mapping session, where the one or more recommended POIs are visible (e.g., simultaneously visible) to the first user and the other user (e.g., the second user) in the shared mapping session 3050.
[0131] For example, one or more recommended POIs may be determined by the POI recommendation module 332a according to a ranking mechanism performed by the POI ranking module 332b. Any of the users may make a query or request for suggestions or recommendations via the shared mapping session 3050. In the context of the shared mapping session, these results may be ranked by the POI ranking module 332b based on the POI information received by the server from the users in the shared mapping session 3050. Ranking the POIs may also help to ensure that the recommended POIs are relevant to most, if not all, users in the shared mapping session 3050 (e.g., ensuring that the types of restaurants are of interest to all participants), and to ensure that the recommended POIs are easily accessible from the user's origin or departure location in the shared mapping session.
[0132] For example, the POI ranking module 332b may be configured to collectively rank the POIs based on all users in the shared mapping session. For example, the POI ranking module 332b may be configured to extend the current ranking mechanism to rank the POIs by jointly scoring the candidate POIs for each user and coming up with an average (or other aggregate) score. The results may be sorted by the POI ranking module 332b based on the aggregate score, and the user interface of the electronic device in the shared mapping session may display the top results to the users in the shared mapping session 3050 (e.g., via one or more of the user interface elements 6070, 6072, 6074, 6076). An exemplary input for ranking the candidate POIs may include respective travel times for each of the users in the shared mapping session 3050. For example, the POI ranking module 332b may be configured to filter out candidate POIs that exceed a specified travel time for any one of the users as possible recommended POIs, which the POI ranking module 332b may incorporate into the ranking signal. The POI ranking module 332b may be configured to give a higher weight to candidate POIs with a short average travel time for all users in the shared mapping session (e.g., less than a first threshold) than candidate POIs with a long travel time (e.g., longer than the first threshold or longer than a second threshold that is longer than the first threshold). Thus, one or more recommended POIs proposed by the shared mapping session service provider 332 may have expected travel times that are not too long for any one user.
[0133] In connection with determining the one or more recommended POIs, the shared mapping session service provider 332 may also be configured to determine navigation information (e.g., directions, travel times, alternative routes, etc.) from each of the origin or departure locations of each of the users in the shared mapping session 3050 to the one or more recommended POIs. The shared mapping session service provider 332 may also be configured to transmit navigation information to each user so that each user can view navigation information from their respective origin or departure locations to the one or more recommended POIs (e.g., as shown in FIG. 6A , the user interface 6000 displays navigation information from user A's location 3040 to three recommended POIs (park #1 6022, park #2 6024, park #3 6026)). The navigation information to the recommended POIs may be differentiated from navigation information to other recommended POIs, for example, by the use of color, by using different markings for travel routes and / or travel times, or by a combination thereof. According to examples of the present disclosure, the shared mapping session service provider 332 may be configured to transmit the first navigation information to the first electronic device 100 (the first navigation information indicating travel information from a location associated with the first user to the locations of the one or more recommended POIs) such that at least one of a travel time or a travel path from a location associated with the first user to the locations of the one or more recommended POIs is visible to the first user in the shared mapping session. According to examples of the present disclosure, the shared mapping session service provider 332 may be configured to transmit the navigation information to other users, e.g., to transmit the second navigation information to a second user of the second electronic device 200.The second navigation information may indicate travel information from a location associated with the second user (e.g., from user B's location 3080) to the locations of the one or more recommended POIs such that at least one of a travel time or travel path from the location associated with the second user to the locations of the one or more recommended POIs is visible to the second user in the shared mapping session 3050.
[0134] For example, FIG. 6B illustrates an exemplary user interface 6000′. The user interface 6000′ may be displayed in response to user A of the first electronic device 100 performing a search for “nearby parks” via a search text box (or by voice input, for example) on the user interface element 6010 during the shared mapping session 3050. In this exemplary embodiment, the locations 3040, 3080 of users A and B are also displayed within the shared mapping session 3050. Additionally, in this exemplary embodiment, navigation information for user B as well as navigation information for user A are displayed on the user interface 6000′. For example, in FIG. 6B, the server 300 has sent second navigation information to the first electronic device 100, which includes routes 6042, 6044, 6046 from an origin or starting location of user B to multiple parks. For example, in FIG. 6B, the travel information 6062, 6064, 6066 may include route lengths and / or travel times for the routes for each of users A and B. Thus, user A can see navigation information for user B in a shared mapping session, as well as navigation information for each of the recommended POIs.
[0135] Thus, in some implementations, the shared mapping session service provider 332 may transmit navigation information of the other user (e.g., the second user) to the first user such that at least one of the travel time or travel route from a location associated with the other user (e.g., the second user) to the location of one or more recommended POIs is visible to the first user in the shared mapping session 3050. The navigation information of the other user may be visible simultaneously with at least one of the travel time or travel route from a location associated with the first user to the location of one or more recommended POIs. That is, in some implementations, the user may see the travel route and / or travel time from the origin or departure location of the other user to the selected or recommended point of interest. Thus, the user may be able to quickly see the travel information (e.g., directions and / or travel time) from the origin or departure location of the other user to the selected or recommended point of interest (as well as the travel information from the user's own origin or departure location to the selected or recommended point of interest). Thus, users within the shared mapping session 3050 may better understand the travel information of other users when determining whether a selected or recommended point of interest is acceptable for travel convenience. For example, the ease of accessibility of the point of interest recommendations may be identified by color coding or other means (e.g., representing easily accessible POIs in green, least accessible POIs in red, and POIs of medium accessibility in yellow).
[0136] In some implementations, the shared mapping session service provider 332 may be configured to transmit navigation information to a user in response to a request from the user for navigation information to a point of interest independent of a recommendation to be generated by the POI recommendation module 332a. For example, the navigation information may be transmitted to a first user in response to the shared mapping session service provider 332 receiving a request from the first user and / or the second user for directions to a POI selected by the first user and / or the second user. For example, the shared mapping session service provider 332 may determine and transmit directions to a POI given multiple origins corresponding to multiple users in the shared mapping session 3050. Similar to the example of FIG. 6B, a user may also receive navigation information of other users in the shared mapping session 3050 to a POI. Thus, each user can quickly review travel information from their respective origin or starting location to the POI (and in some examples, from one or more origins or starting locations of one or more other users in the shared mapping session 3050 to the POI) and determine whether the POI is acceptable for travel. This allows each of the users to easily find a POI that all users can reach in one step. For example, in the shared mapping session 3050, each user can indicate whether the POI is in an acceptable location (e.g., by a voting mechanism within the shared mapping session 3050, by providing a "thumbs up" indication within the shared mapping session, or by providing some other indication or visual element in the shared mapping session (e.g., a heart, a star, a happy face, etc.)).
[0137] In some examples, the navigation application 130 may be closed by the user, but the shared mapping session module 132 and / or the shared mapping session service provider 332 may be configured to keep the shared mapping session 3050 active. For example, when the user reopens the navigation application 130, the user may be able to see a list of active shared mapping sessions on the user interface of the navigation application 130. The user may select one of the shared mapping sessions from the list to switch back to that shared mapping session. The list of shared mapping sessions may be ranked based on various factors, such as recency, the user's current location, if other users from the shared mapping session are in the same location as the user, etc. In some implementations, the shared mapping session may be sticky, i.e., the user may automatically join the shared mapping session 3050 when the navigation application 130 is reopened. A sticky shared mapping session may be useful when shared mapping sessions exist for multiple electronic devices belonging to the same user. That is, the user may switch back to the shared mapping session even when using a different electronic device.
[0138] A shared mapping session may remain active indefinitely or may automatically terminate (e.g., after a predetermined period of inactivity, such as minutes, hours, days, etc.). If a shared mapping session was initiated by two or more users at the same location, the shared mapping session may be terminated when the users are no longer at the same location. Additionally or alternatively, a user may explicitly terminate or delete a shared mapping session after it is no longer needed, for example, by selecting the shared mapping session for deletion via the user interface of the shared mapping session 3050, or an option to delete the shared mapping session 3050 may be presented to the user on the user interface upon ending the shared mapping session 3050 and / or upon exiting the navigation application 130.
[0139] Examples of the present disclosure are also directed to computer-implemented methods of shared mapping sessions. Figures 7-11 include flow diagrams of example, non-limiting computer-implemented methods according to one or more exemplary embodiments of the present disclosure.
[0140] 7, in an exemplary computer-implemented method, at operation 710, the method includes initiating a shared mapping session 3050 including a plurality of electronic devices including a first electronic device 100 and a second electronic device 200. At operation 720, the method includes receiving, from the second electronic device 200 via the shared mapping session 3050, second point of interest (POI) information associated with a second user of the second electronic device 200, the second POI information including a visual element (e.g., visual element 4060) for identifying the second POI (e.g., "Restaurant A" 4050) as an item of interest to the second user. For example, the second POI information may include user profile information regarding the second user. For example, the visual element may include a star or pin placed by the second user next to or on a POI displayed on a map that is of interest to the second user in the shared mapping session.
[0141] At operation 730, the method may include displaying a user interface (e.g., similar to user interface 4000′) for the shared mapping session 3050 on display 160 of the first electronic device 100, where the user interface displays map information indicating a location of the first electronic device 100 and visual elements, at least the visual elements being simultaneously visible to a first user via the first electronic device 100 and to a second user via the second electronic device 200 in the shared mapping session 3050.
[0142] 8, in an exemplary computer-implemented method 800, at operation 810, the method includes receiving (e.g., by the server 300) a request to initiate a shared mapping session 3050 including a plurality of electronic devices including a first electronic device 100 and a second electronic device 200. At operation 820, the method includes receiving (e.g., by the server 300) from the first electronic device 100 via the shared mapping session 3050 first point of interest (POI) information associated with a first user associated with the first electronic device 100, the first POI information including a visual element identifying the first POI as an item of interest to the first user. At operation 830, the method includes transmitting (e.g., by the server 300) the visual element to the second electronic device 200 such that the visual element is simultaneously visible to the second user via the second electronic device 200 and to the first user via the first electronic device 100 in the shared mapping session 3050.
[0143] 9, in an exemplary computer-implemented method 900, at operation 910, the method includes executing the navigation application 130 and initiating a shared mapping session 3050 via the navigation application 130 (e.g., via the shared mapping session module 132). At operation 920, the method further includes sending to the second electronic device 200 an invitation for the second electronic device 200 to join the shared mapping session 3050. At operation 930, the method further includes sending first location information associated with the first user of the first electronic device 100 and first point of interest (POI) information associated with the first user. At operation 940, the method further includes receiving one or more recommended POIs determined (e.g., by a server) based on the first location information, the first POI information, second location information associated with the second user of the second electronic device, and the second POI information associated with the second user. At operation 950, the method further includes receiving first navigation information indicating travel information from a location associated with the first user of the first electronic device 100 (e.g., a current location of the first user based on a current location of the first electronic device 100 or a planned starting location) to a location of a recommended POI. At operation 960, the method further includes displaying a user interface of the shared mapping session displaying map information indicating the location associated with the first user, the location of the recommended POI, and travel information from the location associated with the first user to the locations of the one or more recommended POIs.
[0144] 10, in an example computer-implemented method 1000, at operation 1010, the method includes initiating (e.g., by the server 300) a shared mapping session 3050 including at least a first user of the first electronic device 100 and a second user of the second electronic device 200 among the plurality of users. At operation 1020, the method includes receiving (e.g., by the server 300) first location information associated with the first user in the shared mapping session 3050 and second location information associated with the second user in the shared mapping session 3050. At operation 1030, the method includes receiving (e.g., by the server 300) first point of interest (POI) information associated with the first user and second POI information associated with the second user. At operations 1040 and 1050, the method includes determining (e.g., by the server 300) one or more recommended POIs based on the first location information, the second location information, the first POI information, and the second POI information, and transmitting the one or more recommended POIs to the first and second electronic devices 100, 200 such that the recommended POIs are simultaneously visible to a first user and a second user of the first and second electronic devices 100, 200 in the shared mapping session 3050. At operation 1060, the method includes transmitting (e.g., by the server 300) the first navigation information to the first electronic device 100 and transmitting the second navigation information to the second electronic device 200. In other examples, the second navigation information may be transmitted to the first electronic device 100 and the first navigation information may be transmitted to the second electronic device 200.
[0145] 11, in an example computer-implemented method 1100, at operation 1110, the method includes detecting (e.g., by the first electronic device 100 and / or the server 300) a second electronic device 200 that is co-located with the first user's electronic device 100 and participating in a shared mapping session 3050 with the first electronic device 100. At operation 1120, the method includes determining (e.g., by the first electronic device and / or the server 300) whether a location accuracy of the first electronic device 100 is below a threshold or whether it can be improved using location information from another electronic device (e.g., the second electronic device 200) in the shared mapping session. At operation 1130, the method includes receiving (e.g., by the first electronic device and / or the server 300) location information from the second electronic device 200 obtained from one or more sensors (e.g., positioning devices) of the second electronic device 200 based on the determination. For example, if the server 300 and / or the first electronic device 100 determines that the location accuracy of the first electronic device 100 is below a threshold and / or can be improved using location information from other electronic devices in the shared mapping session, the server 300 and / or the first electronic device 100 may request and obtain (e.g., via the server 300 or directly from the second electronic device 200) location information from one or more sensors of the second electronic device 200. At operation 1130, the method includes creating a combined location stack and updating the location information of the first electronic device 100 using the location information received from the second electronic device 200 to improve the location accuracy of the first electronic device 100.
[0146] For example, in some implementations, the current location of the first electronic device 100 may be represented by a blue dot on a map displayed in a user interface. The location accuracy of the first electronic device 100 may be indicated by one or more of the size of the blue dot (e.g., a smaller circumference indicating a more accurate location determination), the size of the outer light blue circle surrounding the blue dot, and the stability of the blue dot (e.g., a shift in the blue dot may indicate uncertainty about the location of the electronic device). For example, if the size of the blue dot is greater than a threshold, the server 300 and / or the first electronic device 100 may request and obtain location information from one or more sensors of the second electronic device 200. For example, if the circumference of the outer light blue ring is greater than a threshold, the server 300 and / or the first electronic device 100 may request and obtain location information from one or more sensors of the second electronic device 200. For example, if the blue dot is not stable at a particular location for more than a predetermined period of time, the server 300 and / or the first electronic device 100 may request and obtain location information from one or more sensors of the second electronic device 200.
[0147] Thus, according to an example of the present disclosure, a shared mapping session 3050 between electronic devices of the shared mapping session 3050 that are co-located with each other may additionally enable sharing of sensors (e.g., one or more sensors of the positioning device 140) from each electronic device. That is, when multiple electronic devices in the shared mapping session 3050 are detected to be physically close to each other, the shared mapping session 3050 may create a combined location stack to provide more efficient and more accurate location detection, e.g., showing a more accurate blue dot on a map or enabling an improved navigation mode. In an example, the server 300 may detect that multiple users in the shared mapping session are physically close to each other based on the location information of the first electronic device and the second electronic device 100, 200 provided to the server 300. Additionally or alternatively, one of the users' electronic devices may detect at least one other electronic device (e.g., belonging to another user) that is physically close. In response to the server 300 detecting that the multiple users in the shared mapping session are in physical proximity to one another and in response to detecting that the location accuracy and / or power level of at least one electronic device (e.g., the first electronic device 100) is below a threshold, the server 300 may request at least one other electronic device associated with the users in the shared mapping session to provide location information to the first electronic device 100 to form a combined location stack. Additionally or alternatively, in response to the first electronic device 100 detecting that the multiple electronic devices in the shared mapping session are in physical proximity to one another and in response to detecting that the first electronic device 100's own location accuracy and / or power level is below a threshold, the first electronic device 100 may request at least one other electronic device associated with the users in the shared mapping session to provide location information to the first electronic device 100 to form a combined location stack.For example, according to the method 1100 disclosed herein, in response to determining that the first electronic device 100 and the second electronic device 200 are co-located with each other and the accuracy of the location measured by the first electronic device 100 is below a threshold, the first electronic device 100 may obtain location information from at least one sensor of the second electronic device 200 to create a combined location stack to improve the accuracy of the location measured by the first electronic device 100.
[0148] For example, one user's electronic device may provide GPS functionality to another user, e.g., if that electronic device has more power or has more accurate sensor readings, or if the other user's electronic device has less power or has less accurate sensor readings. More generally, various sensors from different devices that can determine the location of the electronic device (e.g., a GPS located in the first electronic device 100, a WiFi / cell located in the second electronic device 200, a camera located in an additional device) may be combined to generate a single, more accurate location measurement (e.g., a combined location stack). In other examples, a combined location stack may be built from two or more electronic devices that are all owned by the same user. For example, a user may pair a watch and a phone with each other to cooperatively provide a more accurate location signal whenever the two devices are in close proximity.
[0149] The terms "module" and "unit" as used herein (e.g., in connection with the shared mapping session module 132, the place improvement module 134, the POI recommendation module 332a, the POI ranking module 332b, and the place improvement module 332c) may refer, without limitation, to a software or hardware component or device that performs a particular task, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC). A module or unit may be configured to reside on an addressable storage medium and to execute on one or more processors. Thus, a module or unit may include, by way of example, components such as software components, object-oriented software components, class components, and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables. The functionality provided in the components and modules / units may be combined into fewer components and modules / units, or may be further divided into additional components and modules.
[0150] Aspects of the exemplary embodiments described above may be recorded in a non-transitory computer-readable medium that includes program instructions for performing various computer-implemented operations. The medium may also include data files, data structures, and the like, alone or in combination with the program instructions. Examples of non-transitory computer-readable media include magnetic media, such as hard disks, floppy disks, and magnetic tapes, optical media, such as CD-ROM disks, Blu-ray disks, and DVDs, magneto-optical media, such as optical disks, and other hardware devices specially configured to store and perform program instructions, such as semiconductor memory, read-only memory (ROM), random access memory (RAM), flash memory, USB memory, and the like. Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that are executed by a computer using an interpreter. The program instructions may be executed by one or more processors. The hardware devices described may be configured to function as one or more software modules to perform the operations of the embodiments described above, or vice versa. In addition, the non-transitory computer-readable storage medium may be distributed among computer systems connected via a network, and the computer-readable code or program instructions may be stored and executed in a decentralized manner. In addition, the non-transitory computer-readable storage medium may also be embodied in at least one application specific integrated circuit (ASIC) or field programmable gate array (FPGA).
[0151] Each block in the flowchart diagram may represent a unit, module, segment, or portion of code that includes one or more executable instructions for implementing a specified logical function(s). It should also be understood that in some alternative implementations, the functions described in the blocks may occur out of order. For example, two blocks shown in succession may in fact be executed substantially simultaneously (concurrently), or the blocks may sometimes be executed in the reverse order depending on the functionality involved.
[0152] Although the present disclosure has been described with respect to various exemplary embodiments, each example is provided for purposes of illustration and not for the purpose of limiting the present disclosure. Those skilled in the art, upon reaching an understanding of the foregoing, can readily make modifications, variations, and equivalents to such embodiments. Thus, the present disclosure does not exclude the inclusion of such modifications, variations, and / or additions to the disclosed subject matter as would be readily apparent to one skilled in the art. For example, features illustrated or described as part of one embodiment can be used with other embodiments to yield yet other embodiments. Thus, it is intended that the present disclosure cover such modifications, variations, and equivalents.
Claims
1. 1. A computer-implemented method for a shared mapping session, the method comprising: initiating the shared mapping session involving a plurality of electronic devices including a first electronic device having a first user and a second electronic device having a second user; receiving, from the second electronic device via the shared mapping session, second point of interest (POI) information associated with the second user, the second POI information including a visual element identifying the second POI as an item of interest to the second user; displaying, on a display of the first electronic device, a user interface for the shared mapping session, the user interface displaying map information indicative of the visual elements and a location associated with the first user, at least the visual elements being simultaneously visible to the first user via the first electronic device and to the second user via the second electronic device in the shared mapping session; A computer-implemented method comprising:
2. sending a request for a real-time map view of the shared mapping session from a perspective of the second user of the second electronic device; receiving the real-time map view of the shared mapping session from the perspective of the second user of the second electronic device; displaying, in the user interface of the shared mapping session, the real-time map view of the shared mapping session from the perspective of the second user of the second electronic device; The computer-implemented method of claim 1 , further comprising:
3. receiving second navigation information indicating travel information from a starting location of the second user to a location of the second POI; displaying, in the user interface of the shared mapping session based on the second navigation information, at least one of a travel time or a travel route from the starting location of the second user to the location of the second POI simultaneously with at least one of a travel time or a travel route from the starting location of the first user to the location of the second POI; The computer-implemented method of claim 1 , further comprising:
4. sending, to a server, first location information associated with the first user of the first electronic device and first point of interest (POI) information associated with the first user; receiving from the server one or more recommended POIs determined by the server based at least in part on the first location information, the first POI information, second location information associated with the second user, and the second POI information; displaying at least one of a travel time or a travel route from a starting location of the first user to the locations of the one or more recommended POIs in the user interface of the shared mapping session; displaying, in the user interface of the shared mapping session, locations of the one or more recommended POIs simultaneously visible to the second user via the second electronic device in the shared mapping session; The computer-implemented method of claim 1 , further comprising:
5. in response to determining that the first electronic device is co-located with the second electronic device, automatically sending an invitation to the second electronic device to join the shared mapping session; automatically terminating the shared mapping session in response to determining that the first electronic device and the second electronic device are no longer co-located; The computer-implemented method of claim 1 , further comprising:
6. 2. The computer-implemented method of claim 1, wherein the first electronic device and the second electronic device are co-located with each other, and in response to determining that an accuracy of the location measured by the first electronic device is less than a threshold, further comprising obtaining location information from at least one sensor of the second electronic device to improve the accuracy of the location measured by the first electronic device.
7. 1. An electronic device comprising: A display and one or more memories configured to store instructions; one or more processors, executing the instructions stored in the one or more memories; initiating a shared mapping session involving a plurality of electronic devices including the electronic device having a first user and a second electronic device having a second user; receiving, from the second electronic device via the shared mapping session, second point of interest (POI) information associated with the second user, the second POI information including a visual element identifying the second POI as an item of interest to the second user; one or more processors configured to display, on the display, a user interface for the shared mapping session, the user interface displaying map information indicative of a location associated with the first user, at least the visual element being simultaneously visible to the first user via the electronic device and to the second user via the second electronic device in the shared mapping session; 2. An electronic device comprising:
8. The one or more processors: sending a request for a real-time map view of the shared mapping session from a perspective of the second user of the second electronic device; receiving the real-time map view of the shared mapping session from the perspective of the second user of the second electronic device; displaying, in the user interface of the shared mapping session, the real-time map view of the shared mapping session from the perspective of the second user of the second electronic device; The electronic device of claim 7 configured to:
9. The one or more processors: receiving second navigation information indicating travel information from a starting location of the second user to a location of the second POI; displaying, in the user interface of the shared mapping session based on the second navigation information, at least one of a travel time or a travel route from the starting location of the second user to the location of the second POI simultaneously with at least one of a travel time or a travel route from the starting location of the first user to the location of the second POI; The electronic device of claim 7 configured to:
10. The one or more processors: sending, to a server, first location information associated with the first user of the electronic device and first point of interest (POI) information associated with the first user; receiving from the server one or more recommended POIs determined by the server based at least in part on the first location information, the first POI information, second location information associated with the second user, and the second POI information; displaying at least one of a travel time or a travel route from a starting location of the first user to the locations of the one or more recommended POIs in the user interface of the shared mapping session; displaying, in the user interface of the shared mapping session, locations of the one or more recommended POIs simultaneously visible to the second user via the second electronic device in the shared mapping session; The electronic device of claim 7 configured to:
11. The one or more processors: in response to determining that the electronic device is co-located with the second electronic device, automatically sending an invitation to the second electronic device to join the shared mapping session; automatically terminating the shared mapping session in response to determining that the electronic device and the second electronic device are no longer co-located; The electronic device of claim 7 configured to:
12. The one or more processors:
8. The electronic device of claim 7, wherein the electronic device and the second electronic device are co-located with each other and, in response to determining that an accuracy of the location measured by the electronic device is below a threshold, is configured to obtain location information from at least one sensor of the second electronic device to improve the accuracy of the location measured by the electronic device.
13. 1. A computer-implemented method for a shared mapping session, the method comprising: receiving a request to initiate the shared mapping session involving a plurality of electronic devices including a first electronic device having a first user and a second electronic device having a second user; receiving, from the first electronic device via the shared mapping session, first point of interest (POI) information associated with the first user, the first POI information including a visual element identifying the first POI as an item of interest to the first user; transmitting the visual element to the second electronic device such that the visual element is simultaneously visible to the second user via the second electronic device and to the first user via the first electronic device in the shared mapping session; A computer-implemented method comprising:
14. receiving a request from the first electronic device to provide a real-time map view of the shared mapping session from a perspective of the second user of the second electronic device; in response to receiving the request, transmitting to the first electronic device the real-time map view of the shared mapping session from the perspective of the second user of the second electronic device; The computer-implemented method of claim 13 , further comprising:
15. transmitting second navigation information to the first electronic device, the second navigation information indicating at least one of a travel time or a travel route from a starting location of the second user to a location of the first POI, such that at least one of the travel time or the travel route from the starting location of the second user to the location of the first POI is visible to the first user in the shared mapping session simultaneously with at least one of the travel time or the travel route from the starting location of the first user to the location of the first POI; The computer-implemented method of claim 13 , further comprising:
16. receiving first location information associated with the first user and second location information associated with the second user; receiving second POI information associated with the second user; determining one or more recommended POIs based at least in part on the first location information, the second location information, the first POI information, and the second POI information; transmitting the one or more recommended POIs to the first electronic device and to the second electronic device such that the one or more recommended POIs are simultaneously visible to the first user via the first electronic device and to the second user via the second electronic device in the shared mapping session; The computer-implemented method of claim 13 , comprising:
17. In response to receiving a query for one or more recommended POIs from the first electronic device, obtaining a plurality of candidate recommended POIs based on one or more search results corresponding to the query; ranking each of the plurality of candidate recommended POIs based in part on search criteria from the query and user profile information of at least one user other than the first user among users of the plurality of electronic devices in the shared mapping session; determining the one or more recommended POIs is further based in part on the ranking of each of the plurality of candidate recommended POIs.
17. The computer-implemented method of claim 16.
18. 20. The computer-implemented method of claim 17, wherein ranking each of the plurality of candidate recommended POIs is further based in part on at least one of a travel time or a travel route from a respective starting location associated with each user of the plurality of electronic devices in the shared mapping session to a respective location of each of the plurality of candidate recommended POIs.
19. in response to determining that the first electronic device is co-located with the second electronic device, automatically sending an invitation to the second electronic device to join the shared mapping session; automatically terminating the shared mapping session in response to determining that the first electronic device and the second electronic device are no longer co-located; The computer-implemented method of claim 13 , further comprising:
20. in response to determining that the first electronic device and the second electronic device are co-located with one another and receiving information indicating that an accuracy of a location measured by the first electronic device is below a threshold, acquiring location information from at least one sensor of the second electronic device; providing the location information obtained from the at least one sensor of the second electronic device to the first electronic device to improve the accuracy of the location measured by the first electronic device; The computer-implemented method of claim 13 , further comprising:
Citation Information
Patent Citations
Mirroring system and mirroring method
JP2016071636A
Screen sharing system, screen sharing method, and program
JP2017123130A
Information providing device, information providing system, and computer program
JP2021036207A
Automatic meeting invitation based on proximity
US20120185291A1
Mobile communication terminals, method for using a communication service and method for determining information related to a geographical position of a mobile communication terminal
US20140200024A1