Sharing map sessions
By realizing multi-user shared map sessions and joint location stacking technology in navigation or map applications, the problems of wasted resources and low location accuracy during multi-user collaboration are solved, and efficient shared map experience and accurate navigation information sharing are achieved.
Patent Information
- Application Number
- CN202280096513.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-04-22
- Publication Date
- 2025-01-07
AI Technical Summary
Existing navigation or map applications are difficult to achieve efficient shared map sessions when multi-user collaboration, resulting in waste of resources and reduced location accuracy.
By implementing a shared map session between the server and the electronic device, multiple users are allowed to view and share points of interest and navigation information on the map at the same time, and to improve location accuracy using a joint location stack.
It realizes efficient shared map conversations between multiple users, saves resources, improves location accuracy, and simplifies the sharing of recommendations of points of interest and navigation information.
Smart Images

Figure CN119278355A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to a shared map session for navigation or mapping applications. More specifically, the present disclosure relates to a method and an electronic device for implementing a shared map session for navigation or mapping applications. Background Art
[0002] Users frequently use navigation or mapping applications to find points of interest such as local businesses, find directions to points of interest, and navigate from one place to another. In some cases, navigation applications may be used by one or more users who may be physically co-located or may communicate through digital channels (e.g., via email or chat). When searching for points of interest, these navigation applications only allow use by a single user or a single device. When different users want to communicate about searching for potential common meeting points, when different users need to send suggestions between each other (e.g., via separate applications, such as via email, chat, or phone), overhead and increased resource usage are generated. Summary of the invention
[0003] Aspects and advantages of embodiments of the present disclosure will be set forth in part in the description which follows, or may be learned from the description, or may be learned through practice of example embodiments.
[0004] In one or more example embodiments, a computer-implemented method for a shared map session is provided. The computer-implemented method may include: initiating a shared map session including a plurality of electronic devices, the 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 map session, the second POI information including a visual element for identifying the second POI as an item of interest for the second user; and displaying a user interface for the shared map session on a display of the first electronic device, the user interface displaying map information indicating the visual element and a location associated with the first user, the first user via the first electronic device and the second user via the second electronic device being simultaneously viewable in the shared map session at least the visual element.
[0005] In some implementations, the method may also include: transmitting a request for a real-time map view of the shared map session from the perspective of a second user of the second electronic device; receiving the real-time map view of the shared map session from the perspective of the second user of the second electronic device; and displaying the real-time map view of the shared map session from the perspective of the second user of the second electronic device in a user interface of the shared map session.
[0006] In some implementations, the method may include: receiving second navigation information indicating travel information from the second user's starting location to the location of a second POI; and based on the second navigation information, displaying at least one of the travel time or the travel route from the second user's starting location to the location of the second POI in the user interface of the shared map session, and at the same time displaying at least one of the travel time or the travel route from the first user's starting location to the location of the second POI.
[0007] In some implementations, the method may include: transmitting first positioning information associated with a first user of a first electronic device and first point of interest (POI) information associated with the first user to a server; receiving from the server one or more recommended POIs determined by the server at least in part based on the first positioning information, the first POI information, second positioning information associated with a second user, and the second POI information; displaying at least one of a travel time or a travel route from a departure location of the first user to the locations of the one or more recommended POIs in a user interface of a shared map session; and displaying in the user interface of the shared map session the locations of one or more recommended POIs that can be simultaneously viewed by a second user in the shared map session via a second electronic device.
[0008] In some implementations, the method may also include: in response to determining that the first electronic device and the second electronic device are located at the same location, automatically transmitting invitation information to the second electronic device to join the shared map session; and in response to determining that the first electronic device and the second electronic device are no longer located at the same location, automatically terminating the shared map session.
[0009] In some implementations, the method may also include: in response to determining that the first electronic device and the second electronic device are located at the same location as each other and the accuracy of the position measured by the first electronic device is less than a threshold, obtaining location information from at least one sensor of the second electronic device to improve the accuracy of the position measured by the first electronic device.
[0010] In one or more example embodiments, an electronic device (e.g., a smart phone, a tablet computer, a laptop computer, a personal computer, etc.) for implementing a shared map 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 instructions stored in the one or more memories to: initiate a shared map session including a plurality of electronic devices, the 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 map session, the second POI information including a visual element for identifying the second POI as an item of interest for the second user; and display a user interface for the shared map session on the display, the user interface displaying map information indicating a location associated with the first user, the first user via the electronic device and the second user via the second electronic device simultaneously viewing at least the visual element in the shared map session.
[0011] In some implementations, one or more processors may be configured to: transmit a request for a real-time map view of a shared map session from the perspective of a second user of a second electronic device; receive the real-time map view of the shared map session from the perspective of the second user of the second electronic device; and display the real-time map view of the shared map session from the perspective of the second user of the second electronic device in a user interface of the shared map session.
[0012] In some implementations, one or more processors may be configured to: receive second navigation information indicating travel information from the second user's departure location to the location of a second POI; and based on the second navigation information, display at least one of the travel time or the travel route from the second user's departure location to the location of the second POI in a user interface of the shared map session, while simultaneously displaying at least one of the travel time or the travel route from the first user's departure location to the location of the second POI.
[0013] In some implementations, one or more processors may be configured to: transmit first location information associated with a first user of the electronic device and first point of interest (POI) information associated with the first user to a server; receive from the server one or more recommended POIs determined by the server at least in part based on the first location information, the first POI information, second location information associated with a second user, and the second POI information; display at least one of a travel time or a travel route from a departure location of the first user to the locations of the one or more recommended POIs in a user interface of a shared map session; and display in the user interface of the shared map session the locations of one or more recommended POIs that can be simultaneously viewed by a second user in the shared map session via a second electronic device.
[0014] In some implementations, one or more processors may be configured to: automatically transmit an invitation message to join a shared map session to the second electronic device in response to determining that the electronic device and the second electronic device are located at the same location; and automatically terminate the shared map session in response to determining that the electronic device and the second electronic device are no longer located at the same location.
[0015] In some implementations, one or more processors may be configured to, in response to determining that the electronic device and the second electronic device are located at the same location as each other and the accuracy of the position measured by the electronic device is less than a threshold, obtain location information from at least one sensor of the second electronic device to improve the accuracy of the position measured by the electronic device.
[0016] In one or more example embodiments, a computer-implemented method for a shared map session is provided. The computer-implemented method may include: receiving a request to initiate a shared map session including a plurality of electronic devices, the plurality of electronic devices including a first electronic device and a second electronic device; receiving, from the first electronic device via the shared map 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 for identifying the first POI as an item of interest for the first user; and transmitting the visual element to the second electronic device so that the second user via the second electronic device and the first user via the first electronic device can simultaneously view the visual element in the shared map session.
[0017] In some implementations, the method may also include: receiving a request from the first electronic device to provide a real-time map view of the shared map 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 map session from the perspective of the second user of the second electronic device to the first electronic device.
[0018] In some implementations, the method may also include: transmitting second navigation information to the first electronic device, the second navigation information indicating at least one of the travel time or the travel route from the second user's starting location to the location of the first POI, so that the first user can simultaneously view at least one of the travel time or the travel route from the second user's starting location to the location of the first POI and at least one of the travel time or the travel route from the first user's starting location to the location of the first POI in a shared map session.
[0019] In some implementations, the method may also include: receiving first positioning information associated with the first user and second positioning 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 positioning information, the second positioning 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, so that the first user via the first electronic device and the second user via the second electronic device can simultaneously view the one or more recommended POIs in a shared map session.
[0020] In some implementations, the method may also include: in response to receiving a query for one or more recommended POIs from a first electronic device, obtaining multiple candidate recommended POIs based on one or more search results corresponding to the query; and ranking each of the multiple 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 multiple electronic devices in the shared map session, and wherein determining the one or more recommended POIs is also based in part on the ranking of each of the multiple 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 departure location associated with each user of the plurality of electronic devices in the shared map session to a respective location of each of the plurality of candidate recommended POIs.
[0022] In some implementations, the method may also include: in response to determining that the first electronic device and the second electronic device are located at the same location, automatically transmitting invitation information to the second electronic device to join the shared map session; and in response to determining that the first electronic device and the second electronic device are no longer located at the same location, automatically terminating the shared map session.
[0023] In some implementations, the method may also include: obtaining location information from at least one sensor of the second electronic device in response to determining that the first electronic device and the second electronic device are located at the same location as each other and receiving information indicating that the accuracy of the location measured by the first electronic device is less than a threshold; and 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.
[0024] In one or more example embodiments, an electronic device (e.g., a server) for implementing a shared map session is provided. The electronic device may include: one or more memories storing instructions; and one or more processors configured to execute instructions stored in the one or more memories to: receive a request to initiate a shared map session including multiple electronic devices, the multiple electronic devices including a first electronic device and a second electronic device; receive first point of interest (POI) information associated with a first user associated with the first electronic device from the first electronic device via the shared map session, the first POI information including a visual element for identifying the first POI as an item of interest for the first user; and transmit the visual element to the second electronic device so that the second user via the second electronic device and the first user via the first electronic device can view the visual element simultaneously in the shared map session. The one or more processors of the electronic device may also be configured to perform one or more other operations of the computer-implemented method of the electronic device as described herein.
[0025] In one or more example embodiments, a computer-readable medium (e.g., a non-transitory computer-readable medium) is provided that stores instructions that can be executed 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 for causing one or more processors to perform one or more operations of any method described herein (e.g., operations of a server and / or operations of an electronic device). As described herein, the computer-readable medium may store additional instructions for performing other aspects of servers and electronic devices and corresponding methods of operation.
[0026] These and other features, aspects and advantages of various embodiments of the present disclosure will be better understood with reference to the following description, drawings and appended claims.The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate example embodiments of the present disclosure and, together with the description, serve to explain the relevant principles. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] A detailed discussion of example embodiments for persons of ordinary skill in the art is set forth in this specification with reference to the accompanying drawings, in which:
[0028] Figure 1 is an example system according to one or more example embodiments of the present disclosure;
[0029] Figure 2 An example block diagram including an electronic device and a server according to one or more example embodiments of the present disclosure;
[0030] FIG. 3A to FIG. 3C An example user interface screen including a user initiating a shared map session according to one or more example embodiments of the present disclosure;
[0031] Figure 4A and Figure 4B An example user interface screen including a user annotating a point of interest viewable by another user in a shared map session according to one or more example embodiments of the present disclosure;
[0032] Figure 5A and Figure 5B An example user interface screen including a user switching to another user's perspective in a shared map session according to one or more example embodiments of the present disclosure;
[0033] Fig. 6A and Figure 6B An example user interface screen including navigation information to ranked recommended points of interest displayed according to one or more example embodiments of the present disclosure; and
[0034] Figures 7 to 11 Included is a flowchart of an example non-limiting computer-implemented method according to one or more example embodiments of the present disclosure. DETAILED DESCRIPTION
[0035] Reference will now be made to embodiments of the present disclosure, one or more examples of which are illustrated in the accompanying drawings, wherein like reference numerals represent like elements. Each example is provided by way of explanation of the present disclosure and is not intended to limit the present disclosure. In fact, it will be apparent to those skilled in the art that various modifications and changes may be made to the present disclosure without departing from the scope or spirit of the present disclosure. For example, a feature illustrated or described as part of one embodiment may be used together with another embodiment to produce yet another embodiment. Therefore, the present disclosure is intended to encompass modifications and changes within the scope of the appended claims and their equivalents.
[0036] The terms used herein are used to describe example embodiments and are not intended to limit and / or constrain the present disclosure. As used herein, unless the context clearly indicates otherwise, the singular forms "a", "an", and "the" are also intended to include the plural forms. In the present disclosure, terms such as "incl.", "having", "comprising", etc. 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.
[0037] It will be understood that although the terms first, second, third, etc. may be used herein to describe various elements, these elements should not be limited to these terms. Instead, these terms are used to distinguish one element from another element. For example, without departing from the scope of the present disclosure, a first element may be referred to as a second element, and a second element may be referred to as a first element.
[0038] The term "and / or" includes a combination of multiple related listed items or any of the multiple related listed items. For example, the scope of the expression or phrase "A and / or B" includes the item "A", the item "B" and the combination of the items "A and B".
[0039] In addition, 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. Likewise, the scope of the 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.
[0040] Examples of the present disclosure relate to a computer-implemented method by which multiple users (e.g., each user operating a respective electronic device) can collaboratively share a map session. The shared map session enables multiple users (who may or may not be physically co-located) to have a shared browsing experience. The shared map session allows multiple users to view or share navigation routes from each respective source point to points of interest that can be agreed upon through group-based result ranking.
[0041] Users frequently use navigation or map applications to find points of interest such as local businesses, find directions to points of interest, and navigate from one place to another. In some cases, navigation applications may be used by one or more users who may be physically co-located or may communicate through digital channels (e.g., via email or chat). For example, two users living on different sides of a city may independently use the same navigation application to search for a restaurant to meet for dinner, share various suggestions through a separate chat application or by sending emails back and forth. After they have dinner at the restaurant and while they are physically co-located, they may independently search for a bar to have a drink on their respective electronic devices.
[0042] According to the examples disclosed herein, the navigation application enables users to easily find points of interest and obtain relevant directions in a collaborative shared map session. For example, two users living on different sides of a city may independently use the navigation application to search for a restaurant to meet for dinner, while collaboratively sharing various suggestions through a shared map session provided by the navigation application, thereby eliminating the need to utilize a separate application, such as a chat application or an email application. This saves resources on the user's device because such separate applications do not need to be called, and application resources do not need to be allocated on each user's device. For example, a user may place a pin on a restaurant of interest to the user displayed on a map, and the pin may be viewable in real time by other users. In addition, directions and / or travel times to the restaurant from each of the user's corresponding departure locations may be displayed on the map, so that each user can determine travel information to the restaurant, and in some cases may be able to view travel information to the restaurant of other users. In an example embodiment, the server may provide recommended restaurants based on the location information of each user and based on information provided by the user, such as preferred food types, allergies, travel restrictions (e.g., maximum distance or maximum time for travel), etc. The recommended restaurants may be ranked by the server and provided to the user, for example, in the form of a list. The server may automatically select the highest-ranked restaurant and provide navigation information to each user in the shared map session, the user may vote for one of the restaurants provided in the list, or the user (e.g., the initiator of the shared map session) may select one of the restaurants from the list. According to other examples disclosed herein, when users are physically located at the same place (e.g., in a restaurant together) and participate in a shared map session, resources (e.g., GPS sensors) may be shared between electronic devices belonging to the users in the shared map session to improve the location accuracy of at least one of the electronic devices used by the users. This also makes it possible to save resources between the electronic devices of the shared map session.
[0043] According to an example of the present disclosure, an electronic device (e.g., a server) may be configured to perform a computer-implemented method for a shared map session. The server may include one or more memories (e.g., computer-readable storage media, 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 map session, which includes at least a first user and a second user among a plurality of users. For example, a user of an electronic device may execute an application installed in the electronic device (e.g., by opening one of a navigation application, a map application, etc.) and initiate a shared map session with another user. A shared map session may be implemented using a server that maintains a corresponding state for each user for the shared map session and provides information (e.g., updates, messages, content, notifications, data, etc.) to each user at any time when there is an update to the shared map session.
[0044] A shared map session may be initiated (e.g., automatically) by a server in response to a navigation application (map application) executed by a first user (first electronic device). In some implementations, a shared map session may be initiated via account sharing in an application. A user may specify other users with accounts to an application service provider, and add those accounts to a shared map session (e.g., by specifying a user name associated with an account, an email associated with an account, etc.). As an alternative or additional example, a user may provide a QR code, a unique link, or other information to potential participants to be added to a shared map session. As a further alternative or additional example, a user may discover or receive suggestions for potential participants to join a shared map session via a wireless protocol including one or more of NFC, Bluetooth, Wi-Fi Direct, Android Nearby, etc. A user may send an invitation to a potential participant discovered via a wireless protocol requesting the potential participant to join a shared map session.
[0045] In some implementations, a user may create a shared map session across multiple other devices belonging to the user. In this case, the user's known devices may be populated within the map application so that multiple other devices can be added to the session.
[0046] In some implementations, to simplify the shared map session creation and sharing process, once a new session is created, the map application may automatically provide suggestions for adding potential participants. For example, the map application may automatically provide suggestions for adding potential participants 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 are co-located with the user and also have the same application active, potential participants of a shared public calendar event, etc.).
[0047] In response to receiving an invitation to join a shared map session, potential participants may enter (join) the shared map session via various methods. For example, in some implementations, potential participants may be required to provide additional authentication factors to confirm that they are authorized to join the shared map session. For example, when the session sharing mechanism is less secure (lower than the first secure sharing mechanism standard), potential participants may be required to provide additional authentication factors, such as via a link-based session sharing mechanism. For example, in some implementations, when the session sharing mechanism is more secure (higher than the second secure sharing mechanism standard), such as via an account-based session sharing mechanism, potential participants may not be required to provide additional authentication factors.
[0048] In some implementations, the authentication factor can be a prompt that is automatically generated based on existing information present in the shared map session. For example, the server may transmit a query to the joining user requesting confirmation information about the context of the session (e.g., a location related to the shared map session). For example, the joining user may be asked "Which city is this session focused on?". If the joining user correctly provides the answer (e.g., "Paris"), the joining user will be authorized to join (e.g., by the server). If the joining user does not provide the correct answer, the joining request will be rejected (e.g., by the server), the joining user may be asked another question, or the joining user may be given another opportunity to respond correctly.
[0049] The authentication prompt may also include other confirmation information about the context of the session (e.g., the names of other participants, such as the initiator or moderator of a shared map session). For example, a query may be sent or presented to the joining user (e.g., by a server), such as "What is the name of the owner of this session?" If the joining user correctly provides an answer (e.g., "John"), the joining user is authorized to join (e.g., by the server). If the joining user does not provide a correct answer, the joining request is denied (e.g., by the server), the joining user may be asked another question, or the joining user may be given another opportunity to respond correctly.
[0050] In the above example, the input of the user who joins can be fuzzy matched (e.g., by the server) with the expected text, for example to allow for spelling variations or shortened versions. For example, one or more processors of the server can perform fuzzy matching based on text normalization techniques or via an ML-based model that embeds both the input value and the expected value in a common feature space.
[0051] In some implementations, when a new user is added to a shared map session (e.g., by a server), one or more of the existing users in the shared map session will be notified of the join event so that they are aware of the other person who has joined the shared map session. For example, the shared map session may provide a message to each existing user in the shared map session indicating that another user has joined.
[0052] According to an example of the present disclosure, a server may receive first positioning information associated with a first user in a shared map session and positioning information associated with other users who have joined the shared map session (e.g., second positioning information associated with a second user who has joined the shared map session). The positioning information of each user 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 positioning information may indicate the geographic location of an electronic device of a user who uses a shared map session to execute a navigation application (e.g., based on a GPS signal, or based on a location determined by a wireless network). For example, the positioning information may indicate the geographic location of a user's planned departure location (e.g., the geographic location of a user's home, workplace, or other location), which may be based on an address, a world coordinate system, or other publicly available location information. Each user may travel from a different source location (e.g., their respective home or workplace). In order to find a suitable common meeting point, each user in a shared map session may provide his or her own starting point (departure point). For example, whenever a user joins a shared map session, the server may receive the user's location (starting point or planned departure point) (e.g., the current location of the electronic device the user is using, or the user's planned departure location, such as the user's home, workplace, or other location). The user's location may be automatically provided to the server upon joining a shared map session, or the user may be prompted to provide a starting point or departure location upon joining a shared map session. Other information such as the user's preferred mode of transportation (e.g., car, bus, train, etc.) may also be provided by the user (e.g., to the server). In some implementations, the user's departure location may be automatically shared with other users via the shared map session, while in other implementations, the user's departure location may be shared only with authorized users via the shared map session, or the user's departure location may not be shared with other users at all.
[0053] The server may use the departure location information of each user to determine possible meeting points (points of interest). For example, the server may use the departure location information of each user to determine the locations of points of interest that are equidistant for all users in the shared map session, or to determine the locations of points of interest that are easily reachable for all users in the shared map session. The term "easily reachable" may refer to points of interest that are within a preset distance of each user in the shared map session. For example, if each of three users specifies that the maximum distances they are willing to travel are 4 miles, 5 miles, and 3 miles, respectively, the server may set the preset distance to the shortest distance of 3 miles, or to the average of the specified distances (4 miles). As another example, the term "easily reachable" may refer to points of interest that are within a preset time of each user in the shared map session in each user's specified travel mode. For example, if each of three users specifies that the maximum time they are willing to travel is 30 minutes, 10 minutes, and 20 minutes, respectively, the server may set the preset time to the shortest time of 10 minutes, or to the average of the specified time (20 minutes). As another example, the term “easily reachable” may refer to a point of interest that meets other criteria such that the point of interest is reachable in a convenient manner and / or is reachable by every user in a shared map session (e.g., a destination reachable by or accommodating to users with disabilities).
[0054] According to an example of the present disclosure, a server may be configured to perform a computer-implemented method for a shared map session, the computer-implemented method comprising the following operations: receiving, by the server, first point of interest (POI) information associated with a first user and POI information associated with other users in the shared map session (e.g., second POI information associated with a second user). Points of interest may include any features, places, or destinations of interest to one or more users in the shared map session. For example, one or more of the users may want to travel or visit and meet with at least one other user in the shared map session. For example, points of interest may include restaurants, museums, stadiums, concert halls, amusement parks, schools, places of business, grocery stores, gas stations, theaters, shopping malls, boarding houses, etc. Point of interest information may include any information useful in identifying points of interest. For example, point of interest information may include any information that may be included in a user's search query for points of interest. For example, the point of interest information may include category information (e.g., hostels, restaurants, etc.), the name of the point of interest (e.g., the name of a stadium, a restaurant, etc.), preferences about the point of interest (e.g., a preference for a specific environment such as a quiet atmosphere, a preference for a specific type of food such as vegetarian food, a preference for a minimum review rating from other users and / or reviewers (such as three stars or at least 4.0 out of 5.0), a preference for a specific travel time and / or travel distance (such as less than ten minutes from the user), a preference for a specific budget level (such as a $$ or $$$ rating), etc.). For example, the point of interest information may include user profile information of the user that can be used to identify the point 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 the user's past comments on the point of interest, previous visits to the point of interest, the user's spending habits, etc. In some implementations, if the user has authorized or allowed his or her user profile information to be shared with the server, the point of interest information received by the server may automatically include the user profile information of the user.
[0055] A shared map session allows multiple users to join a shared map session in an application (e.g., a map application, a navigation application, etc.), where each user can indicate a preference for a point of interest in the shared map session that is immediately visible to other users in the shared map session (e.g., in real time). For example, a user can 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 can place a star at or next to the location of the point of interest in the map, or place a pushpin at or next to the location of the point of interest in the map. The visual element or icon can be immediately visible to other users in the shared map session. For example, the visual element or icon can be color-coded or have some other unique identifier representing the user so that other users in the shared map session can recognize which user has indicated a preference for the point of interest.
[0056] In an example embodiment, a first user may indicate a preference for a first POI by placing a visual element, such as a pushpin, next to the first POI in a map. The first POI information received by the server may include a visual element indicating the first user's preference for the first POI, and the server may transmit the visual element to other users (e.g., a second user) in the shared map session in response to the first user indicating a preference for the first POI, so that the other users (e.g., the second user) in the shared map session can view the visual element in real time. For example, a user may highlight or mark specific places and / or routes, and may add annotations associated with them. This information may be included as part of the POI information that is transmitted from the user to the server and shared with other users in the shared map session.
[0057] As described above, the server may obtain the location information and point of interest information of the users in the shared map session from one or more users in the shared map session. The server may use the location information and point of interest information of the users to determine one or more recommended POIs to be provided to the users in the shared map session. According to an example of the present disclosure, the server may be configured to perform a computer-implemented method for a shared map session, the computer-implemented method comprising the following operations: determining 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 provided by the first user to the server, and the second POI information provided by the second user to the server. Therefore, the users in the shared map session may obtain recommendations for one or more points of interest from the server based on one or more queries sent to the server from one or more users in the shared map session. The server may determine one or more recommended POIs by considering the search criteria (e.g., POI information, such as the search term "restaurant") provided by one or more users, and the server may use the user profile information (if shared) of one or more users in the shared map session to suggest one or more recommended POIs that all users like and that each user will also be convenient to go to. According to an example of the present disclosure, a server may be configured to execute a computer-implemented method for a shared map session, the computer-implemented method comprising the following operations: transmitting one or more recommended POIs to a first user and other users (e.g., a second user) in the shared map session, so that the first user and the other users (e.g., the second user) in the shared map session can view (e.g., can view simultaneously) the one or more recommended POIs.
[0058] In conjunction with determining one or more recommended POIs, the server may also determine navigation information (e.g., directions, travel time, alternative routes, etc.) from each of the starting or departure locations of each user in the shared map session to the one or more recommended POIs. The server may also transmit navigation information to the corresponding users so that each user can view navigation information from their corresponding starting point or departure location to the one or more recommended POIs. Navigation information to the recommended POIs may be distinguished from navigation information to other recommended POIs by using colors, by using different markings for travel routes and / or travel times, or a combination thereof. According to an example of the present disclosure, the server may be configured to perform a computer-implemented method for a shared map session, the computer-implemented method comprising the following operations: transmitting first navigation information to a first user, the first navigation information indicating travel information from a location associated with the first user to the location of one or more recommended POIs, so that the first user in the shared map session can view at least one of the travel time or travel route from the location associated with the first user to the location of the one or more recommended POIs. According to an example of the present disclosure, a server may be configured to perform a computer-implemented method for a shared map session, the computer-implemented method comprising the following operations: transmitting navigation information to other users, such as transmitting second navigation information to a second user. The second navigation information may indicate travel information from a location associated with the second user to a location of one or more recommended POIs, so that the second user in the shared map session can view at least one of a travel time or a travel route from the location associated with the second user to the location of the one or more recommended POIs.
[0059] In one or more example embodiments, a computer-implemented method for a shared map session is provided. The computer-implemented method may include: initiating a shared map session including multiple electronic devices, the multiple electronic devices including a first electronic device and a second electronic device; receiving second navigation information associated with a second user of the second device from the second electronic device via the shared map session, the second navigation information indicating travel information from a location associated with the second user (e.g., a starting point for the second user) to a location of a point of interest (POI); and displaying a user interface for the shared map session on a display of the first electronic device, the user interface displaying map information indicating the first navigation information, the first navigation information indicating travel information from a location associated with the first user (e.g., a starting point for the first user) to a location of the POI, wherein the first navigation information includes 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 includes 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.
[0060] In some implementations, a server may transmit navigation information to a user in response to a request from a user for navigation information to a point of interest. For example, in response to the server receiving a request from a first user and / or a second user for directions to one or more recommended POIs or to a POI selected by the first user and / or the second user, first navigation information may be transmitted to the first user. For example, in the case where multiple starting points correspond to multiple users in a shared map session, the server may determine and transmit directions to the POI. In response to a request from a user in a shared map session for directions to a selected location or point of interest, the server may determine directions from the corresponding starting point or departure location to the selected point of interest and transmit these directions to each user in the shared map session. Therefore, each user can quickly determine travel information from their corresponding starting point or departure location to the selected point of interest, and determine whether the selected point of interest is acceptable in terms of travel. This allows each user to easily find points of interest that all users can reach in a single step. For example, in a shared map session, each user may indicate whether a POI is in an acceptable location (e.g., via a voting mechanism within the shared map session, by providing a "thumbs-up" indication within the shared map session, or by providing some other indication or visual element within the shared map session (e.g., a heart, a smiley face, etc.).
[0061] In some implementations, in response to a request from a user in a shared map session for directions to a selected location or point of interest, a server may determine directions from one or more starting points or departure locations of one or more users in the shared map session to the selected point of interest and transmit these directions to each user in the shared map session. According to an example of the present disclosure, a server may be configured to perform a computer-implemented method for a shared map session, the computer-implemented method including the following operations: an operation of transmitting navigation information of other users (e.g., a second user) to a first user, so that the first user in the shared map session can view at least one of a travel time or a travel route from a location associated with the other user (e.g., the second user) to the location of one or more recommended POIs. The navigation information of other users and at least one of a travel time or a travel route from a location associated with the first user to the location of one or more recommended POIs can be viewed simultaneously. That is, in some implementations, a user may be able to view a travel route and / or a travel time from a starting point or departure location of other users to a selected or recommended point of interest. Thus, users can quickly determine travel information (e.g., directions and / or travel time) from other users' starting points or departure locations to selected or recommended points of interest (as well as travel information from their own starting points or departure locations to selected or recommended points of interest). Thus, users in a shared map session can gain a better understanding of 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 map session can obtain recommendations for points of interest to travel to that are easily accessible to all users in the shared map session. For example, travel information recommended to different points of interest may be represented by color coding on the map. For example, recommendations for the easiest points of interest to reach may be represented by green, the most difficult points of interest to reach may be represented by red, and points of interest with moderate accessibility may be represented by yellow.
[0062] According to one or more examples of the present disclosure, a user may switch or snap to another user's perspective to achieve a shared viewing experience. For example, if a first user is browsing a particular area of London, a second user may select an option within a shared map session to immediately jump to the first user's location on the map. According to an example of the present disclosure, a server may be configured to perform a computer-implemented method for a shared map session, the computer-implemented method comprising the following operations: a first user receives a request to provide a real-time map view of the shared map session from the perspective of a second user. In response to receiving the request, the server may transmit the real-time map view of the shared map session from the perspective of the second user to the first user.
[0063] According to an example of the present disclosure, a server may use the user's location information and point of interest information to determine one or more recommended POIs to be provided to users in a shared map session. If a group of users collaborate in a shared map session, it is often useful to find points of interest that are relevant to all users. For example, one or more recommended POIs may be determined by the server according to a ranking mechanism. Any of the users may perform a query or request for suggestions or recommendations via a shared map session. In the context of a shared map session, these results may be ranked based on POI information received by the server from the users in the shared map session. The POI information may include user profile information of one or more users in the shared map session. The ranking of POIs can help ensure that the recommended POIs are relevant to most, if not all, of the users in the shared map session (for example, to ensure that the type of restaurant will be of interest to all participants), and also ensure that the recommended POIs are easily accessible from the starting point or departure location of the users in the shared map session.
[0064] As described above, for any operation requiring ranking of places or routes, this will be done collectively for all users in the shared map session. For example, if a user searches for "restaurants," the recommended restaurants returned will be ranked so that they will be of common interest to all users in the shared map session (rather than just the query initiator). For example, ranking POIs may be performed (e.g., by a server) by extending the current ranking mechanism to jointly score candidate POIs relative to each user and derive an average (or other aggregate) score. The server may sort the results based on the aggregated scores before displaying the top results to the users in the shared map session. As an additional input for ranking candidate POIs, the respective travel times of each user in the shared map session may be considered. Candidate POIs that exceed a specified travel time for any of the users may be excluded from possible recommended POIs and incorporated into the ranking signal. Candidate POIs with shorter average travel times (e.g., less than a first threshold) for all users in the shared map session may be given greater weight than candidate POIs with longer travel times (e.g., greater than a first threshold or greater than a second threshold). Thus, one or more recommended POIs suggested by the server may have an expected travel time that is not too high for any one user.
[0065] In one or more example embodiments, a computer-implemented method for a shared map session is provided. The computer-implemented method may include: receiving, by a server, first positioning information associated with a first user of a first electronic device among multiple electronic devices in the shared map session and second positioning information associated with a second user of a second electronic device among multiple electronic devices in the shared map 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 positioning information, the second positioning 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, so that the first user and the second user in the shared map session can view the one or more recommended POIs simultaneously.
[0066] According to an example of the present disclosure, a server may be configured to perform a computer-implemented method for a shared map session, the computer-implemented method including the following operations: in response to receiving a query for one or more recommended POIs from a first user, a plurality of candidate recommended POIs are obtained based on one or more search results corresponding to the query. The method may also 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 of the plurality of users in the shared map session (e.g., each user sharing its user profile information in the shared map session). The method may also include ranking each of the plurality of candidate recommended POIs based in part on at least one of a travel time or a travel route from a corresponding location associated with each of the plurality of users in the shared map session to a corresponding location of each of the plurality of candidate recommended POIs. The method may also include determining one or more recommended POIs based in part on the ranking of each of the plurality of candidate recommended POIs. The method may also include excluding as one of the one or more recommended POIs a candidate recommended POI having a travel time greater than a threshold for any of the plurality of users in the shared map session.
[0067] According to an example of the present disclosure, an electronic device (e.g., a smart phone, a laptop computer, a tablet computer, etc.) may be configured to perform a computer-implemented method for a shared map 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 instructions stored in the one or more memories to perform operations of the method described herein. The method may include executing a navigation application (map application) by an electronic device (e.g., a first electronic device) and initiating a shared map session via the navigation application. The method may also include transmitting an invitation message to one or more other electronic devices (e.g., a second electronic device) to enable the one or more other electronic devices to join the shared map session including multiple electronic devices.
[0068] As described above, in some implementations, a QR code, a unique link, or other information may be provided to potential participants to be added to the shared map session by an electronic device, and a shared map session may be initiated via account sharing in an application. As a further alternative or additional example, the electronic device may discover or receive suggestions for potential participants to join the shared map session via one or more wireless protocols including NFC, Bluetooth, Wi-Fi Direct, Android Nearby, etc. The electronic device may send an invitation to the potential participants discovered via the wireless protocol requesting the potential participants to join the shared map session.
[0069] In some implementations, a user of an electronic device may create a shared map session across multiple other electronic devices belonging to the user. In this case, the user's known electronic devices may be populated within the map application so that multiple other devices can be added to the session.
[0070] According to an example of the present disclosure, an electronic device may be configured to perform a computer-implemented method for sharing a map session, the computer-implemented method including the following operations: transmitting positioning information (e.g., first positioning information) associated with an electronic device (e.g., a first electronic device) and point of interest (POI) information (e.g., first POI information) associated with a user (e.g., a first user) associated with the electronic device (e.g., the first electronic device) to a server. The method may also include the following operations: receiving from the server one or more recommended POIs determined by the server at least in part based on the first positioning information, the first POI information, positioning information associated with other electronic devices (e.g., second positioning information associated with a second electronic device), and POI information associated with other users in the shared map session (e.g., second POI information associated with a second user of the second electronic device). The method may also include receiving from the server first navigation information indicating travel information from a location associated with the electronic device (e.g., the first electronic device) to the location of one or more recommended POIs. The method may also include displaying a user interface for a shared map session on a display of an electronic device (e.g., a first electronic device), the user interface displaying map information indicating a location of the electronic device (e.g., the first electronic device), locations of one or more recommended POIs, and at least one of a travel time or a 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.
[0071] As previously described, a user in a shared map session may want to indicate a preference for a POI or simply notify other users of possible POIs that other users may be interested in. 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 the user interface of a navigation application. For example, a user may place a star on or next to the location of a point of interest in a map displayed in the user interface of a navigation application, or place a pin on or next to the location of a point of interest in a map. According to an example of the present disclosure, the first POI information may include a visual element indicating a preference of the first user for the first POI, and other users (e.g., a second user) in the shared map session may view the visual element so that users of multiple devices in the shared map session may view the visual element in real time. According to an example of the present disclosure, the method may include: the electronic device receives second POI information from a server, the second POI information including a visual element indicating a preference of the second user for the second POI; and displaying the location of the second POI and the visual element in real time in the user interface of the shared map session.
[0072] As previously mentioned, navigation information to a user's recommended POI can be shared with other users so that other users can determine the user's travel information to the recommended POI. According to an example of the present disclosure, the method may include: an electronic device receiving second navigation information from a server indicating travel information from a location of a second electronic device to the location of one or more recommended POIs; and displaying at least one of the travel time or travel route from the location of the second electronic device to the location of one or more recommended POIs in a user interface of a shared map session, while displaying at least one of the travel time or travel route from the location of the first electronic device to the location of one or more recommended POIs.
[0073] As previously mentioned, the user of the electronic device can also view the perspective of another user to have a shared viewing experience. According to an example of the present disclosure, the method may include: the electronic device transmits a request for a real-time map view from the perspective of a second user of a second electronic device for a shared map session; receiving the real-time map view from the perspective of the second user of the second electronic device for the shared map session; and displaying the real-time map view from the perspective of the second user of the second electronic device for the shared map session in a user interface of the shared map session.
[0074] According to an example of the present disclosure, a shared map session may be created based on whether the users of the shared map session are located at the same place as each other. In some cases, a shared map session may be performed when two or more users of the corresponding electronic devices physically coexist. For example, after two users meet in a city, they may each start using a navigation or map application to search for points of interest. The shared map session as described herein provides a mechanism for easily creating such a shared map session, and may also automatically terminate and / or delete the shared map session when one or more electronic devices in the shared map session determine that the user is no longer in the same place. For example, according to the method disclosed herein, the electronic device and / or the server may automatically transmit an invitation message to one or more other electronic devices (e.g., the second electronic device) in response to the electronic device being determined to be located at the same place as one or more other electronic devices (e.g., the second electronic device) and each of the first electronic device and the second electronic device having an active navigation or map application. For example, in this way, a shared map session may be automatically initiated. In some implementations, a shared map session may be automatically initiated, but further authentication measures are still required to ensure that the user intends to have a shared map session. For example, according to the method disclosed herein, the electronic device may automatically terminate or delete the shared map session in response to determining that the first electronic device and the second electronic device are no longer in the same place. For example, the shared map session may be ended and / or the history of the shared map session may be deleted.
[0075] In one or more example embodiments, an electronic device (e.g., a smart phone, a tablet computer, a laptop computer, a personal computer, etc.) for implementing a shared map session is provided. The electronic device may include: a display; one or more memories for storing instructions; and one or more processors configured to execute instructions stored in the one or more memories to: execute a navigation application, and (e.g., automatically) initiate a shared map session with a 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 has determined that the electronic device is co-located with the second electronic device.
[0076] According to an example of the present disclosure, a shared map session between users who are co-located in a shared map session may additionally allow sharing of sensors from their respective electronic devices. That is, when it is detected that multiple users in a shared map session are physically very close to each other, the shared map session may create a joint location stack to provide more efficient and more accurate location detection, for example, to show a more accurate location of the electronic device (e.g., via a blue dot on a map), or to improve the navigation mode. In an example, a server may detect that multiple users in a shared map session are physically very close to each other based on positioning information of multiple users provided to the server. Additionally or alternatively, one of the user's electronic devices may detect at least one other electronic device (e.g., belonging to another user) that is physically very close. In response to the server detecting that multiple users in a shared map session are physically very close to each other, and in response to detecting that at least one electronic device (e.g., a first electronic device) has a location accuracy and / or power level below a threshold, the server may request at least one other electronic device associated with the user in the shared map session to provide location information to the first electronic device to form a joint location stack. Additionally or alternatively, in response to the first electronic device detecting that multiple users in the shared map session are physically close to each other, and in response to detecting that the first electronic device has a location accuracy and / or power level below a threshold, the first electronic device may request at least one other electronic device associated with the users in the shared map session to provide location information to the first electronic device to form a joint location stack. For example, according to the methods disclosed herein, the first electronic device may obtain location information from at least one sensor of the second electronic device to form a joint location stack in response to determining that the first electronic device and the second electronic device are located at the same location as each other and the accuracy of the location measured by the first electronic device is less than a threshold, thereby improving the accuracy of the location measured by the first electronic device.
[0077] For example, one user's electronic device may provide GPS functionality to other users' electronic devices, for example, if it has greater power or more accurate sensor readings, or if another user's electronic device has lower power or lower accuracy sensor readings. More generally, various sensors from different devices (e.g., GPS provided in a first electronic device, WiFi / cellular provided in a second electronic device, a camera provided in a third electronic device) may be combined to produce a single more accurate location measurement (e.g., a joint location stack). In another example, a joint location stack may be constructed from two or more electronic devices all owned by the same user. For example, a user may pair their watch and mobile phone together to collaboratively provide a higher accuracy location signal whenever the two devices are in close proximity.
[0078] The formation of a joint location stack (between electronic devices belonging to different users or to the same user) can be performed by fusing available sensors from different electronic devices. For example, one electronic device may have a compass and cellular access, while another electronic device may only have WiFi. A joint location stack can also be implemented when the electronic device is wearable (e.g., smart glasses) and can provide a visual positioning signal that can be combined with positioning information obtained by another electronic device (e.g., via GPS). As an additional example, a joint location stack can be implemented when the electronic device is low power and cannot run GPS at a high frequency. In order to fuse sensors from different electronic devices together, a machine learning model can be implemented. For example, a machine learning model can be configured to accept sensor outputs from different electronic devices and combine them into a single prediction. Each sensor can be weighted by its corresponding confidence or measurement result accuracy. Some sensors can be completely excluded from inference (e.g., to save power). For example, a decision to include a sensor or exclude a sensor from a joint location stack can be made based on a heuristic.
[0079] In one or more example embodiments, an electronic device (e.g., a smart phone, a tablet computer, a laptop computer, a personal computer, etc.) for implementing a shared map session is provided. The electronic device may include: a display; one or more memories for storing instructions; and one or more processors configured to execute instructions stored in the one or more memories to: initiate a shared map session including multiple 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 the accuracy of the position measured by the electronic device being less than a threshold, obtain location information from at least one sensor of the second electronic device to improve the accuracy of the position 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 may be obtained from a server that has determined that the electronic device is co-located with the second electronic device. In one or more example embodiments, a server for implementing a shared map session is provided. The server may include: one or more memories for storing instructions; and one or more processors configured to execute instructions stored in the one or more memories to: initiate a shared map session including multiple electronic devices, the multiple electronic devices including a first electronic device and a second electronic device; receive information indicating that the second electronic device is located at the same location as the first electronic device; and in response to the first electronic device and the second electronic device being located at the same location as each other and the 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 and provide (transmit) 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.
[0080] In some examples, although the user may close the navigation or map application, the shared map session may remain active. For example, if the user reopens the navigation application, the user may be able to view a list of active shared map sessions. The user may select one of the shared map sessions from the list to switch to the shared map session again. The shared map sessions of the list may be ranked based on various factors, such as based on recency, the user's current location, whether other users from the shared map session are in the same place, etc. In some implementations, the shared map session may be sticky, i.e., the user may automatically join the shared map session when reopening the navigation or map application. A sticky shared map session may be useful in the case where a shared map session exists for multiple electronic devices belonging to the same user. That is, the user may switch back to the shared map session even when using a different electronic device.
[0081] A shared map session may remain active indefinitely, or may terminate automatically (e.g., after a period of inactivity exceeding a predetermined duration (such as minutes, hours, days, etc.)). If a shared map session is initiated by two or more co-located users, the shared map session may terminate when the users are no longer co-located. Additionally or alternatively, a user may explicitly terminate or delete a shared map session after it is no longer needed.
[0082] According to the examples described herein, collaborative shared map sessions allow shared browsing and easy identification of conveniently accessible places or areas based on each user's starting location. In addition, such shared map sessions enable shared use of resources (e.g., GPS sensors) when the users' respective electronic devices are located at the same location. Previous navigation applications only allowed use by a single user or a single device when searching for points of interest. When different users want to communicate about searching for potential common meeting points, when different users need to send suggestions between each other (e.g., via separate applications, such as by email, chat, or phone), overhead and increased resource usage are incurred.
[0083] One or more benefits of the present disclosure include allowing users to easily plan and share geographic related information between each other. As described above, in the past, this would be accomplished by sharing a link to a place or route between users, which required activating other software applications (e.g., email, chat) on the user device in addition to the map application and using other software applications to send the link to the point of interest across channels. According to one or more examples of the present disclosure, recommendations and links shared to points of interest can be implemented directly through the map application, thereby saving both time and device resources. That is, all activities can occur in a single application (e.g., a map application). In one or more other examples of the present disclosure, in response to initiating a shared map session for two or more users (or two or more devices belonging to the same user) located at the same place, one or more sensors (e.g., GPS, camera, WiFi) from a user's device can be combined with one or more sensors of another user's device (or another device of the same user) to produce a single more accurate location measurement result. Therefore, technical benefits such as resource savings and improved location accuracy can also be achieved.
[0084] Now referring to the accompanying drawings, Figure 1 is an example system according to one or more example embodiments of the present disclosure. Figure 1An example of a system is shown, which includes a first electronic device 100, a second electronic device 200, a server 300, and external content 500, which can communicate with each other through a network 400. For example, the first electronic device 100 and the second electronic device 200 may include any of a personal computer, a smart phone, a tablet computer, a global positioning service device, a smart watch, etc. 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), etc. For example, wireless communication between elements of the example 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, etc.
[0085] As will be described in more detail below, in some implementations, the first electronic device 100 and the second electronic device 200 may participate in a shared map session via the server 300 over the network 400. The shared map session may include multiple electronic devices including electronic devices other than the first electronic device 100 and the second electronic device 200.
[0086] In some example embodiments, the server 300 may obtain data from one or more of the POI data store 370, the navigation data store 380, and the user data store 390 to implement various operations and aspects of the shared map session as 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 may be provided separately (e.g., remotely). In addition, 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 corresponding data stores. The 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 (e.g., the POI data store 370) may reference data stored in another data store (e.g., the navigation data store 380).
[0087] The POI data storage area 370 may store information about points of interest, for example, information about points of interest in an area or region associated with one or more geographic areas. Points of interest may include any destination or location. For example, points of interest may include restaurants, museums, stadiums, concert halls, amusement parks, schools, business premises, grocery stores, gas stations, theaters, shopping centers, boarding houses, etc. The point of interest data stored in the POI data storage area 370 may include any information associated with the POI. For example, the POI data storage area 370 may include the following items: location information of the POI, business hours of the POI, telephone number of the POI, reviews about the POI, financial information associated with the POI (e.g., the average cost of services provided at the POI and / or goods sold (such as meals, tickets, rooms, etc.)), environmental information about the POI (e.g., noise level, atmosphere description, traffic level, etc., which may be real-time), descriptions of the types of services provided and / or goods sold, languages spoken at the POI, URLs of the POI, image content associated with the POI, etc.
[0088] The navigation data store 380 may store or provide map data / geospatial data to be used by the server 300. Example geospatial data includes geographic imagery (e.g., digital maps, satellite images, aerial photographs, street-level photographs, synthetic models, etc.), tables, vector data (e.g., vector representations of roads, land parcels, buildings, etc.), point of interest data, or other suitable geospatial data associated with one or more geographic areas. In some examples, the map data may include a series of sub-maps, each sub-map including data for a geographic area including objects (e.g., buildings or other static features), travel paths (e.g., roads, highways, public transportation routes, walking paths, etc.), and other features of interest. The navigation data store 380 may be used by the server 300 to provide navigation directions, perform point of interest searches, provide point of interest location or classification data, determine distances, routes, or travel times between locations, or perform any other suitable purpose or task necessary or useful for the operation of the example embodiments disclosed herein.
[0089] In some example embodiments, user data store 390 may represent a single database. In some embodiments, user data store 390 represents multiple different databases accessible to 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 about one or more user profiles, including a variety of user data, such as user preference data, user demographic data, user calendar data, user social network data, user historical travel data, etc. For example, user data store 390 may include, but is not limited to: email data, including text content, images, calendar information or contact information associated with the email; 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 the user's preferences regarding POIs, determine the user's preferences regarding travel (e.g., traffic mode, allowed travel time, etc.), determine possible POI recommendations for the user, determine the user's possible travel routes and traffic modes to the POIs, etc.
[0090] A user data storage area 390 is provided to illustrate potential data that may be analyzed by the server 300 in some embodiments to identify user preferences, recommend POIs, determine possible travel routes to POIs, and determine the mode of transportation to be used to travel to POIs. However, unless the user has given consent after being informed of what data is collected and how the data is used, such user data may not be collected, used, or analyzed. In addition, in some embodiments, tools may be provided to the user (e.g., in a navigation application or via a user account) to revoke or modify the scope of permissions. In addition, certain information or data may be processed in one or more ways before being stored or used so that personally identifiable information is removed or stored in an encrypted manner. Therefore, based on the permissions given by the user, the server 300 may or may not access specific user information stored in the user data storage area 390, or such data may not be stored in the user data storage area 390 at all.
[0091] The external content 500 may be any form of external content, including news articles, web pages, video files, audio files, written descriptions, ratings, game 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 (including location-specific filtering or promotion).
[0092] Reference now Figure 2 , an example block diagram of an electronic device and a server according to one or more example embodiments of the present disclosure will now be described. Figure 2 2 , a first electronic device 100 is shown, but features of the first electronic device 100 described herein are also applicable to the second electronic device 200 .
[0093] 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.
[0094] 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: a processor, a processor core, a controller and an arithmetic logic unit, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an image processor, a microcomputer, a field programmable array, a programmable logic unit, an application-specific integrated circuit (ASIC), a microprocessor, a microcontroller, etc., and combinations thereof, including any other device capable of responding and executing instructions in a defined manner. The one or more processors 110, 310 may be a single processor or a plurality of processors operably connected (e.g., in parallel).
[0095] 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 drive; volatile memory device, such as random access memory (RAM); hard disk; floppy disk; Blu-ray disk; or optical media, such as CD ROM disk and DVD; and combinations thereof. However, examples of the memory 120, 320 are not limited to the above description, and the memory 120, 320 may be implemented by other various devices and structures as will be understood by those skilled in the art.
[0096] For example, the memory 120 may store instructions that, when executed, cause the one or more processors 110 to execute a navigation application and initiate a shared map session with another electronic device via the server 300, as described in an example according to the present disclosure. For example, the memory 320 may store instructions that, when executed, cause the one or more processors 310 to provide a navigation service that includes providing a shared map session for multiple electronic devices, as described in an example according to the present disclosure.
[0097] The memory 120 may also include data 122 and instructions 124 that may be retrieved, manipulated, created, or stored by the one or more processors 110. In some example embodiments, such data may be accessed and used as input to execute a navigation application and initiate a shared map session with another electronic device via the server 300, as described in accordance with examples of the present disclosure. The memory 320 may also include data 322 and instructions 324 that may be retrieved, manipulated, created, or stored by the one or more processors 310. In some example embodiments, such data may be accessed and used as input to provide a navigation service that includes providing a shared map session for multiple electronic devices, as described in accordance with examples of the present disclosure.
[0098] In some example embodiments, the first electronic device 100 includes a navigation application 130, which may also be referred to as a map application. The navigation application 130 may provide navigation services to the user. In some examples, the navigation application 130 may facilitate user access to a server 300 that provides navigation services. In some example embodiments, the navigation service includes providing directions to a specific location such as a POI. For example, the user may enter a destination location (e.g., the address or name of the POI). In response, the navigation application 130 may use locally stored map data of a specific geographic area and / or map data provided via the server 300 to provide navigation information that allows the user to navigate to the destination location. For example, the navigation information may include turn-by-turn guidance from the current location (or the starting point or departure location provided) to the destination location. For example, the navigation information may include a travel time (e.g., an estimated or predicted travel time) from the current location (or the starting point or departure location provided) to the destination location.
[0099] The navigation application 130 may provide a visual depiction of a geographic area in the display 160 of the first electronic device 100. The visual depiction of the geographic area may include one or more streets, one or more points of interest (including buildings, landmarks, etc.), and a highlighted depiction of a planned route. In some examples, the navigation application 130 may also provide a location-based search option to identify one or more searchable points of interest within a given geographic area. In some examples, the navigation application 130 may include a local copy of the relevant map data. In other examples, the navigation application 130 may access information at a remotely located server 300 to provide the requested navigation service.
[0100] In some examples, navigation application 130 may be a dedicated application specifically designed to provide navigation services. In other examples, navigation application 130 may be a general purpose application (e.g., a web browser) and may provide access to a variety of different services including navigation services via network 400.
[0101] According to one or more aspects of the present disclosure, the navigation application 130 may provide a shared map session to a user of the first electronic device 100 via the shared map session module 132. In some examples, the user may request to initiate a shared map session through the shared map session module 132. For example, a shared map session may be initiated (e.g., automatically initiated) in response to the navigation application 130 being executed. In some examples, the navigation application 130 may transmit a request to initiate a shared map session to the server 300 and / or other electronic devices. In response, the server 300 may create a shared map session. FIG. 3A to FIG. 6B Describes additional aspects of creating and implementing a shared map session.
[0102] In some example embodiments, the navigation application 130 further includes a location improvement module 134 to create a joint location stack, thereby providing more efficient and more accurate location detection of the first electronic device 100 to improve the navigation mode. For example, using the location improvement module 134 and the location information obtained from the positioning determination device 140, the first electronic device 100 may detect at least one other electronic device (e.g., the second electronic device 200) that is physically very close (e.g., within 5 meters to 10 meters). In response to the first electronic device 100 detecting that at least one of the multiple electronic devices in the shared map session is physically very close to the first electronic device 100, and in response to detecting that at least one electronic device (e.g., the second electronic device 200) has a location accuracy and / or power level below a threshold, the first electronic device 100 may request at least one other electronic device associated with the user in the shared map session to provide location information to the second electronic device 200 to form a joint location stack, and / or the first electronic device 100 itself may provide location information to the second electronic device 200 to form a joint location stack. In another example, if the first electronic device 100 has a location accuracy and / or power level below a threshold, the first electronic device 100 may request at least one other electronic device associated with the user in the shared map session to provide location information to the first electronic device 100 to form a joint location stack. For example, the first electronic device 100 may obtain location information from at least one sensor of the second electronic device 200 to create a joint location stack in response to determining that the first electronic device 100 and the second electronic device 200 are located at the same place as each other and the accuracy of the location measured by the first electronic device 100 is less than a threshold, thereby improving the accuracy of the location measured by the first electronic device 100.
[0103] In some example embodiments, the first electronic device 100 includes a positioning determination device 140. The positioning determination device 140 may determine the current geographic location of the first electronic device 100 and communicate such geographic location to the server 300 via the network 400. The positioning determination device 140 may be any device or circuit system for analyzing the location of the first electronic device 100. For example, the positioning determination device 140 may determine the actual or relative location by using a satellite navigation positioning system (e.g., GPS system, Galileo positioning system, Global Navigation Satellite System (GLONASS), Beidou satellite navigation positioning system), an inertial navigation system, a dead reckoning system, based on an IP address, by using triangulation and / or proximity to a cellular tower or WiFi hotspot, and / or other suitable techniques for determining the location of the first electronic device 100.
[0104] 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 the following: a keyboard (e.g., a physical keyboard, a virtual keyboard, etc.), a mouse, a joystick, a button, a switch, an electronic pen or a stylus, a gesture recognition sensor (e.g., for recognizing a user's gesture, including movement of a body part), 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., a cellular or smart) phone, a tablet PC, a pedal or a foot switch, a virtual reality device, etc. The input device 150 may also include a tactile device for providing tactile feedback to the user. For example, the input device 150 may also be embodied by a touch-sensitive display with touch screen capabilities.
[0105] The first electronic device 100 may include a display 160 that displays information (e.g., a map) that can be viewed by a user. For example, the display 160 may be a non-touch-sensitive display or a touch-sensitive display. For example, 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, etc. However, the present disclosure is not limited to these example 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., an ellipse, a circle, etc.). However, the shape of the display 160 is not limited thereto. A user interface for sharing a map session may be displayed on the display 160. The user interface for sharing a map session may include, for example, information about multiple users of the corresponding electronic device. The display may be used by a navigation application 130 installed on the first electronic device 100 to display navigation information to the user. The navigation information may include, but is not limited to, one or more of the following items: a map of the geographic area, the location of the first electronic device 100 in the geographic area, a route through the geographic area marked on the map, one or more navigation instructions (e.g., turn-by-turn instructions through the geographic area), travel time for the route through the geographic area (e.g., from the location of the first electronic device 100 to a POI), and one or more points of interest within the geographic area.
[0106] According to the example embodiments described herein, the server 300 may include one or more processors 310 and memory 320 previously discussed above. The server 300 may also include a navigation service provider 330. For example, the navigation service provider 330 may include a shared map session service provider 332 as part of the navigation service provided by the navigation service provider 330. However, the shared map session service provider 332 may be separate from the navigation service provider 330.
[0107] In some example embodiments, the navigation service provider 330 may provide navigation services to one or more electronic devices (e.g., the first electronic device 100 and the second electronic device 200) via the network 400. The services provided by the navigation service provider 330 may include location-based services, route generation to a specific location, turn-by-turn navigation instructions, geographic map display services, satellite image overlay services, and location tracking services, as well as other navigation services. Users may submit requests to the server 300, and the navigation service provider 330 may process those requests to provide the requested navigation services. For example, a user of the first electronic device 100 may transmit a request for directions to a specific location. In response, the navigation service provider 330 may access the navigation data storage area 390, calculate one or more routes to the requested location based on the data in the navigation data storage area 380, and transmit information describing the one or more routes to the first electronic device 100.
[0108] In some example embodiments, the shared map session service provider 332 may generate a shared map session at the server 300 based on a request received from one or more electronic devices. The shared map session service provider 332 may provide services for shared map sessions between multiple electronic devices so that users of the electronic devices may have a shared browsing experience when viewing a geographic area using the navigation application 130. For example, the shared map session service provider 332 may use a POI recommendation module 332a to recommend one or more points of interest (POIs) to the user of the electronic device based on input provided during the shared map session. For example, when providing recommendations for one or more POIs, the shared map session service provider 332 may use a POI ranking module 332b to rank the points of interest based on various inputs provided during the shared map session. For example, when two or more electronic devices in a shared map session are located at the same place, the shared map session service provider 332 may also assist in improving the location accuracy of the electronic devices during the shared map session. For example, the location improvement module 332c may request location information from a first electronic device in a shared map session, and provide location information to a second electronic device having a location accuracy below a threshold in the shared map session, so as to improve the location accuracy of the second electronic device. FIG. 3A to FIG. 6B Additional aspects of creating and implementing a shared map session via the shared map session service provider 332 are described.
[0109] FIG. 3A to FIG. 3C An example user interface screen including a user initiating a shared map session according to one or more example embodiments of the present disclosure is provided. Figure 3A, illustrating an example user interface of a navigation application as displayed on a display of an electronic device according to one or more example embodiments of the present disclosure. Figure 3A An example configuration of the user interface shown in (and FIG. 3B to FIG. 6B The configuration of the user interface shown in the foregoing description is not intended to limit the present disclosure in any way, and other configurations of the user interface are also within the scope of the present disclosure. For example, fewer user interface elements or additional user interface elements may be provided on the user interface. For example, the user interface elements may be presented via a drop-down menu or a collapsible menu.
[0110] For ease of explanation and for purposes of describing example embodiments, Figure 3A 3, it will be assumed 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 of the navigation application 130 and include a depiction of a geographic area (e.g., a map) associated with the current location 3040 of the user of the first electronic device 100. However, the depiction of the geographic area may be any area that the user is interested in viewing and need not be associated with the user's current location.
[0111] User interface 3000 may include various user interface elements through which a user may perform various operations to access certain functions of navigation application 130. For example, in Figure 3A , user interface 3000 includes user interface elements 3010, 3020, and 3030. For example, user interface element 3010 is labeled "Explore" and, when selected, may allow 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 restaurants, businesses, hotels, etc. For example, user interface element 3020 is labeled "Directions" and, when selected, may allow a user to request directions to a particular location (e.g., via voice or text input). 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 departure location to a destination. For example, user interface element 3030 is labeled "Create Shared Map Session" and, when selected, may allow a user to request to create a shared map session via shared map session module 132.
[0112] For example, refer to Figure 3B In response to selection of the user interface element 3030, the shared map session module 132 may provide various options to the user of the first electronic device 100 to create a shared map session 3050 by displaying one or more of the user interface elements 3052, 3054, 3056 on the user interface 3000'.
[0113] For example, Figure 3B As shown, a user may request a user to join a shared map session by selecting user interface element 3052 to add a new user. The user of the first electronic device 100 may specify a user (e.g., via text box 3062 or by voice). The user may be identified using, for example, a contact name located in an address book of the user's electronic device, by an email address, by a user ID of an account registered with the navigation service provider 330 and / or the shared map session service provider 332, and the like. As another example, a user may request another user to join a shared map session by selecting user interface element 3054 to add a user that the shared map session service provider 332 and / or the shared map session module 132 has determined as a recent user (e.g., userc@gmail.com 3064) to have participated in a shared map session with the user of the first electronic device 100. As another example, a user may request another user to join a shared map session by selecting user interface element 3056 to add a user that the shared map session service provider 332 and / or the shared map session module 132 has determined as a user of an electronic device located at the same location as the first electronic device 100.
[0114] Thus, a shared map session may be initiated via account sharing via the navigation application 130 and the shared map session module 132. The user of the first electronic device 100 may specify other users with accounts to the navigation service provider 330 and / or the shared map session service provider 332, and add those accounts to the shared map session (e.g., by specifying a user name 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 to the shared map session. As a further alternative or additional example, the first electronic device 100 may discover or receive suggestions for potential participants to join the shared map session via a wireless protocol including one or more of NFC, Bluetooth, Wi-Fi Direct, Android Nearby, etc. The first electronic device 100 may send an invitation to the potential participants discovered via the wireless protocol via the shared map session module 132, requesting the potential participants to join the shared map session.
[0115] In some implementations, a user may create a shared map session across multiple other electronic devices belonging to the user. In this case, the user's known devices may be populated in the navigation application 130 and / or the shared map session module 132 so that multiple other electronic devices can be added to the shared map session.
[0116] like Figure 3BAs shown, in order to simplify the shared map session creation and sharing process, the navigation application 130 and / or the shared map session module 132 can automatically provide suggestions for potential participants to be added when a user requests a new session. For example, the navigation application 130 and / or the shared map session module 132 can automatically provide suggestions for potential participants to be added in response to discovering nearby users / electronic devices through one or more wireless protocols described herein, based on information received from the server 300, or based on other contextual information (e.g., the user's contacts are in the same place as the user and also have the same navigation application active, potential participants of a shared public calendar event, etc.).
[0117] According to some implementations, a shared map session 3050 may be created based on whether the users of the shared map session are co-located with each other. In some cases, the shared map session 3050 may be created when two or more users of the corresponding electronic devices are physically present together. For example, user A of the first electronic device 100 and user B of the second electronic device 200 may both be located in a restaurant and use the navigation application 130 to find a movie theater. If user A selects the option to create a shared map session, the first electronic device 100 and / or the server 300 may automatically transmit invitation information 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 map session 3050 may be automatically initiated between users A and B. In some implementations, the shared map session may be automatically initiated, but further identity verification measures may still be required to ensure that the user intends to have the shared map session 3050. For example, according to the 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 map session 3050 in response to determining that the first electronic device 100 and the second electronic device 200 are no longer in the same place. For example, the shared map session 3050 may be ended and / or the history of the shared map session may be deleted.
[0118] In response to receiving an invitation to join a shared map session, potential participants may enter (join) the shared map session via various methods. For example, a user may receive a notification on their electronic device via the shared map session service provider 332 that they have been invited to join the shared map session. To join, the user may open a navigation application and join the shared map session via the shared map session module. As another example, when the user chooses to join the shared map session upon receiving the notification, the navigation application may open automatically. In some implementations, the shared map session service provider 332 may require potential participants to provide additional authentication factors to confirm that they are authorized to join the shared map session. For example, when the session sharing mechanism is less secure (lower than the first security sharing mechanism standard), the shared map session service provider 332 may require potential participants to provide additional authentication factors, for example, via a link-based session sharing mechanism. For example, in some implementations, when the session sharing mechanism is more secure (higher than the second security sharing mechanism standard), the shared map session service provider 332 may not require potential participants to provide additional authentication factors, for example, via an account-based session sharing mechanism.
[0119] In some implementations, the authentication factor may be a prompt that is automatically generated based on existing information present in the shared map session. For example, the server 300 may transmit a query to the joining user requesting confirmation information about the context of the session (e.g., a location associated with the shared map session). For example, the joining user may be asked, "Which city is this session focused on?" If the joining user correctly provides an answer (e.g., "Paris"), the server 300 may authorize the user to join. If the joining user does not provide a correct answer, the server 300 may deny the joining request, may ask the joining user another question, or may give the joining user another opportunity to respond correctly.
[0120] The authentication prompt may also include other confirmation information about the context of the session (e.g., the names of other participants, such as the initiator or host of the shared map session). For example, the server 300 may transmit a query to the joining user, such as "What is the name of the owner of this session?" If the joining user correctly provides an answer (e.g., "John"), the server 300 may authorize the user to join the shared map session. If the joining user does not provide a correct answer, the server 300 may deny the joining request, may ask the joining user another question, or may give the joining user another opportunity to respond correctly.
[0121] In the above example, the input of the joined user may be fuzzy matched (e.g., by the server 300) with the expected text, e.g., to allow for spelling variations or shortened versions. For example, the one or more processors 310 of the server 300 may perform fuzzy matching based on text normalization techniques or via an ML-based model that embeds both the input value and the expected value in a common feature space.
[0122] In some implementations, when a new user is added to a shared map session by the server 300, the server 300 may notify one or more of the existing users in the shared map session of the join event so that they are aware of the other users who have joined the shared map session. For example, the shared map session module 132 may provide a message to the user of the first electronic device 100 indicating that another user has joined.
[0123] For example, refer to Figure 3C In response to creating a shared map session between multiple electronic devices (e.g., belonging to multiple users), the shared map session module 132 may generate another user interface 3000″ that provides users with various options within the shared map session 3050. For example, user interface element 3070 may correspond to a menu of options that can be selected by the user. 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 perspective of another user within the shared map session 3050, and user interface element 3076 may include an option to chat with one or more other users within the shared map session 3050. User interface 3000″ may indicate users who are participating in the shared map session 3050 by indicating “User B” by user interface element 3082 and “User C” by user interface element 3092. In some implementations, the locations of electronic devices associated with users participating in the shared map session 3050 may be indicated on the map. For example, user interface 3000″ is a user interface viewed by a user of the first electronic device 100 (e.g., user A). In the example, user A may only be able to view their own location in the shared map session 3050. As another example, user A may be able to view the location of any electronic device that has joined the shared map session 3050 without invoking a separate application for communicating with one or more other users. As another example, user A may be able to view the location of any electronic device that has given user A (or generally, any user in a shared map session) permission to view the location of its corresponding electronic device in the shared map session 3050.
[0124] Figure 4A and Figure 4B Example user interface screen including a user annotating a point of interest viewable by another user in a shared map session according to one or more example embodiments of the present disclosure. Figure 4A , user interface 4000 shows that user A has entered a search for "restaurant" by user interface element 3010 and "restaurant A" 4060 has appeared on the map as one of the search results. In the shared map session 3050, the user may annotate the POI, for example, by placing a visual element above or adjacent to the POI on the map, which becomes immediately visible in real time to other users in the shared map session 3050. For example, in response to selecting user interface element 3072 to annotate the POI, a new menu may appear on the user interface. For example, user interface element 4070 may indicate a menu to provide options for annotating the POI. For example, the options for annotating the POI may include user interface element 4072 for annotating the POI with a star, user interface element 4074 for annotating the POI by highlighting the POI, and user interface element 4076 for annotating the POI with a pin. For example, in the example user interface 4000, user A has placed a star 4050 near "Restaurant A" 4060, which is immediately visible in real time to other users in the shared map session 3050 (e.g., user B and user C indicated by user interface elements 3082 and 3092, respectively). For example, the annotation may also identify the user who has annotated the POI. Figure 4A , user A is identified as the user who has annotated restaurant A 4060 with a star 4050. As another example, the stars may be color coded with a color corresponding to a color associated with the user who has annotated the POI so that other users can easily understand who has annotated the POI.
[0125] For example, refer to Figure 4B , shows a user interface 4000' 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' indicates user B's location 3080 via user interface elements 3042 and 3092 and indicates that user A and user C are also in a shared map session 3050.
[0126] Thus, the shared map session module 132 is configured to enable multiple users to join a shared map session 3050 in the navigation application 130, wherein each user can indicate a preference or interest in a POI in the shared map session 3050 that is immediately visible (e.g., in real time) to other users in the shared map session 3050. For example, a user can indicate an item of interest regarding a POI by placing a visual element or icon next to or over the location of the POI in the map. For example, a user can place a star at or next to the location of the POI in the map, or place a pin at or next to the location of the POI in the map. For example, the visual element or icon can be color-coded or have some other unique identifier representing the user so that other users in the shared map session can recognize which user has indicated a preference for the POI.
[0127] In an example 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 the map. For example, the user may annotate the POI by highlighting or marking a particular place and / or route, and / or may add annotations associated with them. This information may be included as part of the POI information that is 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 map session 3050. For example, the visual element may be immediately visible to other users in the shared map session 3050 via the server 300. For example, the first electronic device 100 may transmit the first POI information to the server 300, wherein the first POI information may include information that the server 300 may use to find the POI of interest to the first user, the first POI information may include information about the POI that the first user wants to share with one or more other users in the shared map session, etc. For example, in response to the first user annotating the 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 map session 3050 , so that the visual element or icon is immediately visible to the other users in the shared map session 3050 (eg, in real time).
[0128] Figure 5A and Figure 5B Example user interface screens including a user switching to another user's perspective in a shared map session according to one or more example embodiments of the present disclosure. Figure 5A, user interface 5000 shows 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 the shared map session 3050. For example, user interface element 5070 may indicate a menu for providing options for selecting a user in the shared map session that the user can switch to. For example, the user that can be switched to may be a user who has given other users in the shared map session permission to make a selection. For example, user A of the 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.
[0129] For example, refer to Figure 5B , shows a user interface 5000' displayed to user A on the first electronic device 100 in response to user A selecting user interface element 5072, wherein user interface 5000' displays a user interface displayed to user B in the shared map session 3050. For example, user interface 5000' shows a real-time user interface of user B reflecting that user B has conducted a search for "lakeside restaurant" in search box 5010, wherein the search result shows restaurant B 5050 on the map. To avoid possible confusion for user A, an indication 5060 that the user interface is displaying another user's perspective (e.g., "POV user B") may be presented on user interface 5000'. Indication 5060 may be selectable by user A to exit the perspective option and return to user interface 5000.
[0130] Therefore, according to one or more examples of the present disclosure, a user may switch or move to another user's perspective to achieve a shared viewing experience. For example, if a second user (e.g., user B) is browsing a specific area of Seattle, a first user (e.g., user A) may select an option for switching to another user's perspective through a user interface element 5072 within a shared map session 3050 to immediately jump to the second user's perspective in the shared map session 3050 at the location on the map that the second user is viewing. According to an example 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 map session 3050 from the perspective of a second user of the second electronic device 200. In response to receiving the request, the server 300 may transmit the real-time map view of the shared map session 3050 from the perspective of the second user displayed on the second electronic device 200 to the first electronic device 100.
[0131] Fig. 6A and Figure 6B Included are example user interface screens displaying navigation information to ranked recommended points of interest according to one or more example embodiments of the present disclosure.
[0132] For example, Fig. 6A An example user interface 6000 is shown that may be displayed in response to user A of the first electronic device 100 performing a search for "nearby parks" relative to user interface element 6010 via a search text box (or by, for example, voice input) during a shared map session 3050. In this example embodiment, user A's location 3040 and user B's location 3080 are also displayed in the shared map session 3050. User A's search query may be transmitted to the server 300. The content of the search query may be considered as first POI information. For example, the first POI information may also include information about user A, for example, information stored in the user profile of user A, such as a preference for parks that allow dogs. First location information about user A may also be transmitted to the server 300. The first location information may include user A's current location (at school) as a departure location or include another location specified by user A as a departure location (e.g., user A's home).
[0133] As part of the shared map session 3050, when generating search results, the server 300 also takes into account, as appropriate, the departure location of user B (second positioning information) and user B's input regarding POIs (second POI information) (e.g., user B's preferences regarding parks, user B's preferences regarding maximum travel time, travel mode, etc.). For example, the shared map session service provider 332 may be configured to perform a search based on the first positioning information, the first POI information, the second positioning information, and the second POI information. The server 300 may generate search results, for example, by referring to information stored in one or more of the POI data storage area 370, the navigation data storage area 380, and the user data storage area 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 POIs to users in the shared map session 3050. For example, in Fig. 6A , the server 300 has transmitted search results to the first electronic device 100, the search results including a plurality of nearby parks (Park #1 6022, Park #2 6024, and Park #6026) identified on the map (e.g., by highlighting, by labels with park names, etc.). These search results may also be transmitted to the second electronic device 200 and displayed on a user interface in the shared map session as viewed by user B of the second electronic device 200. For example, in Fig. 6AIn FIG. 3 , the server 300 has transmitted first navigation information including routes 6032, 6034, 6036 to multiple parks and travel information 6062, 6064, 6066 to the first electronic device 100. For example, the travel information 6062, 6064, 6066 may include the length of the route and / or the travel time of the route. The search results may be ranked by the server 300 and transmitted to each electronic device in the shared map session 3050. For example, in Fig. 6A , user interface element 6070 displays the ranking of the search results, and user interface elements 6072, 6074, 6076 indicate that park #1 ranks first, park #2 ranks second, and park #3 ranks third.
[0134] Therefore, according to an example of the present disclosure, the server 300 may receive first positioning information associated with a first user (e.g., user A) in a shared map session 3050 and positioning information associated with other users (e.g., user B) who have joined the shared map session 3050 (e.g., second positioning information associated with user B). The shared map session service provider 332 may be configured to use the positioning information of each user to determine a common meeting point (i.e., a point of interest) for the users. For example, the positioning information may indicate the current geographic location of an electronic device of a user who executes a navigation application (e.g., based on a GPS signal, or based on a location determined by a wireless network) using a shared map session. For example, the positioning information may indicate a planned geographic location of a planned departure location of the user (e.g., the geographic location of the user's home, workplace, or other location), which may be based on an address, a world coordinate system, or other publicly available location information. Each user may travel from a different source location or starting point (e.g., their respective home or workplace). In order to find a suitable common meeting point, each user in the shared map session 3050 may provide his or her own starting point (departure point). For example, when a user joins a shared map session 3050, the server 300 may receive the user's location (starting point or planned departure point) (e.g., the current location of the electronic device that the user is using, or the planned departure location). The location of the user's electronic device may be automatically provided to the server 300 after joining the shared map session, or the user may be prompted by the server 300 to provide his or her starting point or departure location when joining the shared map session. In some implementations, the user's departure location may be automatically shared with other users via the shared map session 3050, while in other implementations, the user's departure location may be shared only with authorized users via the shared map session 3050, or the user's departure location may not be shared with other users at all.
[0135] 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 map session 3050 and POI information associated with other users (e.g., user B) who have joined the shared map session 3050 (e.g., second POI information associated with user B). For example, the POI information may include the user's preferred transportation mode (e.g., car, bus, train, etc.).
[0136] 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 provided to the users in the shared map 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. Therefore, the users in the shared map 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 map session 3050. The POI recommendation module 332a may determine the one or more recommended POIs based on various criteria (such as POI information of the search word "restaurant", user profile information of one or more users in the shared map session 3050 (if shared), travel restrictions of one or more users in the shared map 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 other users (e.g., the second electronic device 200) in a shared map session, so that the first user and other users (e.g., the second user) in the shared map session 3050 can view (e.g., can view simultaneously) one or more recommended POIs.
[0137] 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 perform a query or request for suggestions or recommendations via the shared map session 3050. In the context of the shared map 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 map session 3050. The ranking of the POIs may help ensure that the recommended POIs are relevant to most, if not all, of the users in the shared map session 3050 (e.g., to ensure that the type of restaurant will be of interest to all participants), and also ensure that the recommended POIs are easily reachable from a starting point or departure location of the users in the shared map session.
[0138] For example, the POI ranking module 332b may be configured to jointly rank the POIs based on all users in the shared map session. For example, the POI ranking module 332b may be configured to rank the POIs by extending the current ranking mechanism to jointly score the candidate POIs relative to each user and derive an average (or other aggregate) score. The results may be sorted by the POI ranking module 332b based on the aggregated score, and the user interface of the electronic device in the shared map session may (e.g., via one or more of the user interface elements 6070, 6072, 6074, 6076) display the top results to the users in the shared map session 3050. Example inputs for ranking the candidate POIs may include the respective travel times of each user in the shared map session 3050. For example, the POI ranking module 332b may be configured to exclude candidate POIs that exceed the specified travel time of any of the users as possible recommended POIs, and the POI ranking module 332b may incorporate it into the ranking signal. The POI ranking module 332b may be configured to give a greater weight to candidate POIs with shorter average travel times (e.g., less than a first threshold) than to candidate POIs with longer travel times (e.g., greater than the first threshold, or greater than a second threshold, the second threshold being greater than the first threshold) for all users in the shared map session. Thus, one or more recommended POIs suggested by the shared map session service provider 332 may have an expected travel time that is not too high for any one user.
[0139] In conjunction with determining the one or more recommended POIs, the shared map session service provider 332 may also be configured to determine navigation information (e.g., directions, travel time, alternative routes, etc.) from each of the starting or departure locations of each user in the shared map session 3050 to the one or more recommended POIs. The shared map session service provider 332 may also be configured to transmit the navigation information to the respective users so that each user may view the navigation information (e.g., directions, travel time, alternative routes, etc.) from their respective starting or departure locations to the one or more recommended POIs. Fig. 6AAs shown, the user interface 6000 displays navigation information from the location 3040 of user A to three recommended POIs (Park #1 6022, Park #2 6024, Park #3 6026). For example, navigation information to the recommended POIs may be distinguished from navigation information to other recommended POIs by using colors, by using different markings for travel routes and / or travel times, or a combination thereof. According to an example of the present disclosure, the shared map session service provider 332 may be configured to transmit 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 location of one or more recommended POIs, so that the first user in the shared map session can view at least one of the travel time or travel route from the location associated with the first user to the location of one or more recommended POIs. According to an example of the present disclosure, the shared map session service provider 332 may be configured to transmit navigation information to other users, such as transmitting 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 one or more recommended POIs, so that the second user in the shared map session 3050 can view at least one of the travel time or travel route from the location associated with the second user to the locations of one or more recommended POIs.
[0140] For example, Figure 6B An example user interface 6000 is shown that may be displayed in response to user A of the first electronic device 100 performing a search for “nearby parks” with respect to user interface element 6010 via a search text box (or by, for example, voice input) during a shared map session 3050. In this example embodiment, user A's location 3040 and user B's location 3080 are also displayed in the shared map session 3050. In addition, in this example embodiment, navigation information about user B as well as about user A is displayed on user interface 6000'. For example, in Figure 6B In FIG. 1 , the server 300 has transmitted second navigation information to the first electronic device 100, and the second navigation information includes routes 6042, 6044, and 6046 from the starting point or departure location of user B to multiple parks. Figure 6B , travel information 6062, 6064, 6066 may include the length of the route and / or the travel time of the route for each of user A and user B. Thus, user A is able to view navigation information about user B and about each of the recommended POIs in the shared map session.
[0141] Thus, in some implementations, the shared map session service provider 332 may be configured to transmit navigation information of other users (e.g., the second user) to the first user, so that the first user in the shared map session 3050 can view at least one of the travel time or the travel route from the location associated with the other user (e.g., the second user) to the location of one or more recommended POIs. The navigation information of other users and at least one of the travel time or the travel route from the location associated with the first user to the location of one or more recommended POIs can be viewed simultaneously. That is, in some implementations, the user may be able to view the travel route and / or the departure time from the starting point or departure location of the other user to the selected or recommended point of interest. travel time. Thus, users can quickly determine travel information (e.g., directions and / or travel time) from other users' starting points or departure locations to selected or recommended points of interest (as well as travel information from their own starting points or departure locations to selected or recommended points of interest). Thus, users in the shared map session 3050 can gain a better understanding of other users' travel information when determining whether selected or recommended points of interest are acceptable in terms of travel convenience. For example, the ease of recommended reachability of points of interest can be identified by color coding or other means (e.g., easily reachable POIs are indicated in green, the most difficult POIs to reach are indicated in red, and POIs of moderate reachability are indicated in yellow).
[0142] In some implementations, the shared map session service provider 332 may be configured to transmit navigation information to a user in response to a request from a user for navigation information to a point of interest, independent of the recommendations to be generated by the POI recommendation module 332a. For example, in response to the shared map session service provider 332 receiving a request from a first user and / or a second user for directions to a POI selected by the first user and / or the second user, first navigation information may be transmitted to the first user. For example, based on multiple starting points corresponding to multiple users in the shared map session 3050, the shared map session service provider 332 may determine and transmit directions to the POI. Similar to Figure 6BFor example, users may also receive navigation information to POIs from other users in the shared map session 3050. Thus, each user may quickly determine travel information from their respective starting point or departure location to the POI (and in some examples, from one or more starting points or departure locations of one or more other users in the shared map session 3050 to the POI), and determine whether the POI is acceptable for travel. This allows each user to easily find the POI, and all users may reach the POI in a single step. For example, in the shared map session 3050, each user may indicate whether the POI is in an acceptable location (e.g., through a voting mechanism within the shared map session 3050, by providing a "thumbs-up" indication within the shared map session, or by providing some other indication or visual element within the shared map session (e.g., a heart, star, smiley face, etc.).
[0143] In some examples, although the user may close the navigation application 130, the shared map session module 132 and / or the shared map session service provider 332 may be configured to keep the shared map session 3050 active. For example, if the user reopens the navigation application 130, the user may be able to view a list of active shared map sessions on the user interface of the navigation application 130. The user may select one of the shared map sessions from the list to switch to the shared map session again. The shared map sessions of the list may be ranked based on various factors (such as based on recency, the user's current location, whether other users from the shared map session are in the same place as the user, etc.). In some implementations, the shared map session may be sticky, that is, the user may automatically join the shared map session 3050 when reopening the navigation application 130. A sticky shared map session may be useful in the case where a shared map session exists for multiple electronic devices belonging to the same user. That is, the user may switch back to the shared map session even when using a different electronic device.
[0144] A shared map session may remain active indefinitely, or may terminate automatically (e.g., after an inactivity period that exceeds a predetermined duration (e.g., minutes, hours, days, etc.)). If a shared map session is initiated by two or more co-located users, the shared map session may terminate when the users are no longer co-located. Additionally or alternatively, a user may explicitly terminate or delete the shared map session after the shared map session is no longer needed, such as by selecting the shared map session to be deleted via a user interface for the shared map session 3050, or an option to delete the shared map session 3050 may be displayed to the user on a user interface when exiting the shared map session 3050 and / or exiting the navigation application 130.
[0145] Examples of the present disclosure also relate to a computer-implemented method of sharing a map session. Figures 7 to 11 Included is a flowchart of an example non-limiting computer-implemented method according to one or more example embodiments of the present disclosure.
[0146] refer to Figure 7 In an example computer-implemented method, at operation 710, the method includes initiating a shared map session 3050 including a plurality of electronic devices, the 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 map 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 for the second user. For example, the second POI information may include user profile information about the second user. For example, the visual element may include a star or a pushpin that the second user has placed next to or above a POI displayed on a map that is of interest to the second user in the shared map session.
[0147] At operation 730, the method may include displaying a user interface for a shared map session 3050 (e.g., similar to user interface 4000') on the display 160 of the first electronic device 100, the user interface displaying map information and visual elements indicating the location of the first electronic device 100, and a first user via the first electronic device 100 and a second user via the second electronic device 200 may simultaneously view at least the visual elements in the shared map session 3050.
[0148] refer to Figure 8 In an example computer-implemented method 800, at operation 810, the method includes (e.g., by a server 300) receiving a request to initiate a shared map session 3050 including a plurality of electronic devices, the plurality of electronic devices including a first electronic device 100 and a second electronic device 200. At operation 820, the method includes (e.g., by the server 300) receiving, from the first electronic device 100 via the shared map 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 for identifying the first POI as an item of interest for the first user. At operation 830, the method includes (e.g., by the server 300) transmitting the visual element to the second electronic device 200, such that the second user via the second electronic device 200 and the first user via the first electronic device 100 can simultaneously view the visual element in the shared map session 3050.
[0149] refer to Fig. 9In the example computer-implemented method 900, at operation 910, the method includes executing a navigation application 130 and initiating a shared map session 3050 via the navigation application 130 (e.g., via the shared map session module 132). At operation 920, the method also includes transmitting an invitation message to the second electronic device 200 for the second electronic device 200 to join the shared map session 3050. At operation 930, the method also includes transmitting first positioning information associated with a 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 also includes receiving (e.g., by a server) one or more recommended POIs determined based on the first positioning information, the first POI information, the second positioning 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 also 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 the current location of the first electronic device 100 or a planned departure location) to the location of the recommended POI. At operation 960, the method also includes displaying a user interface for the shared map session, the user interface displaying map information indicating a location associated with the first user, locations of recommended POIs, and travel information from the location associated with the first user to locations of one or more recommended POIs.
[0150] refer to Fig.10In the example computer-implemented method 1000, at operation 1010, the method includes (e.g., by the server 300) initiating a shared map session 3050, the shared map session including at least a first user of the first electronic device 100 and a second user of the second electronic device 200 among a plurality of users. At operation 1020, the method includes (e.g., by the server 300) receiving first positioning information associated with the first user in the shared map session 3050 and second positioning information associated with the second user in the shared map session 3050. At operation 1030, the method includes (e.g., by the server 300) receiving 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 (e.g., by the server 300) determining one or more recommended POIs based on the first positioning information, the second positioning information, the first POI information, and the second POI information, and transmitting the one or more recommended POIs to the first electronic device 100 and the second electronic device 200, so that the first user of the first electronic device 100 and the second user of the second electronic device 200 in the shared map session 3050 can simultaneously view the recommended POIs. At operation 1060, the method includes (e.g., by the server 300) transmitting the first navigation information to the first electronic device 100 and transmitting the second navigation information to the second electronic device 200. In another example, the second navigation information may also be transmitted to the first electronic device 100, and the first navigation information may also be transmitted to the second electronic device 200.
[0151] refer to Fig.11In an example computer-implemented method 1100, at operation 1110, the method includes (e.g., by the first electronic device 100 and / or the server 300) detecting a second electronic device 200 that is co-located with the first user electronic device 100 and is participating in a shared map session 3050 with the first electronic device 100. At operation 1120, the method includes (e.g., by the first electronic device and / or the server 300) determining whether the location accuracy of the first electronic device 100 is below a threshold or can be improved using location information from another electronic device (e.g., the second electronic device 200) in the shared map session. At operation 1130, the method includes, based on the determination, receiving (e.g., by the first electronic device and / or the server 300) from the second electronic device 200 location information obtained from one or more sensors (e.g., a positioning determination device) of the second electronic device 200. 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 another electronic device in the shared map session, 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 (e.g., via the server 300 or directly from the second electronic device 200). At operation 1130, the method includes creating a joint 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.
[0152] 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 perimeter 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., the displacement of the blue dot may indicate uncertainty about the location of the electronic device). For example, when 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, when the perimeter 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, when the blue dot does not remain 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.
[0153] Therefore, according to an example of the present disclosure, a shared map session 3050 between electronic devices that are co-located with each other in the shared map session 3050 may additionally allow sharing of sensors from their respective electronic devices (e.g., one or more sensors of the positioning determination device 140). That is, when it is detected that multiple electronic devices in the shared map session 3050 are physically very close to each other, the shared map session 3050 may create a joint location stack to provide more efficient and more accurate location detection, for example, to show a more accurate blue dot on the map, or to improve the navigation mode. In an example, the server 300 may detect that multiple users in the shared map session are physically very close to each other based on the positioning information of the first electronic device 100 and the second electronic device 200 provided to the server 300. Additionally or alternatively, one of the user's electronic devices may detect at least one other electronic device (e.g., belonging to another user) that is physically very close. In response to the server 300 detecting that multiple users in the shared map session are physically close to each other, and in response to detecting that at least one electronic device (e.g., the first electronic device 100) has a location accuracy and / or power level below a threshold, the server 300 may request at least one other electronic device associated with the users in the shared map session to provide location information to the first electronic device 100 to form a joint location stack. Additionally or alternatively, in response to the first electronic device 100 detecting that multiple electronic devices in the shared map session are physically close to each other, and in response to detecting that the first electronic device 100 itself has a location accuracy and / or power level below a threshold, the first electronic device 100 may request at least one other electronic device associated with the users in the shared map session to provide location information to the first electronic device 100 to form a joint location stack. For example, according to the method 1100 disclosed herein, the first electronic device 100 may obtain location information from at least one sensor of the second electronic device 200 to create a joint location stack in response to determining that the first electronic device 100 and the second electronic device 200 are located at the same location as each other and the accuracy of the location measured by the first electronic device 100 is less than a threshold, thereby improving the accuracy of the location measured by the first electronic device 100.
[0154] For example, one user's electronic device may provide GPS functionality to other users' electronic devices, for example, if it has greater power or more accurate sensor readings, or if another user's electronic device has low power or low accuracy sensor readings. More generally, various sensors from different devices capable of determining the location of an electronic device (e.g., GPS provided in a first electronic device 100, WiFi / cellular provided in a second electronic device 200, a camera provided in a further device) may be combined to produce a single more accurate location measurement result (e.g., a joint location stack). In another example, a joint 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 mobile phone together to collaboratively provide a higher accuracy location signal whenever the two devices are in close proximity.
[0155] As used herein, the terms "module" and "unit" (e.g., in connection with the shared map session module 132, the location improvement module 134, the POI recommendation module 332a, the POI ranking module 332b, and the location improvement module 332c) may refer to, but are not limited to, software or hardware components or devices that perform certain tasks, 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 configured to execute on one or more processors. Thus, by way of example, a module or unit may include a component (such as a software component, an object-oriented software component, a class component, and a task component), a process, a function, a property, a procedure, a subroutine, a program code segment, a driver, firmware, microcode, circuitry, data, a database, a data structure, a table, an array, and a variable. The functionality provided in the components and modules / units may be combined into fewer components and modules / units or further divided into additional components and modules.
[0156] Aspects of the above-described example embodiments may be recorded in a non-transitory computer-readable medium including program instructions for implementing various operations embodied by a computer. The medium may also include data files, data structures, etc., either alone or in combination with program instructions. Examples of non-transitory computer-readable media include: magnetic media, such as hard disks, floppy disks, and tapes; optical media, such as CD ROMs, Blu-ray discs, and DVDs; magneto-optical media, such as optical discs; and other hardware devices specifically configured to store and execute program instructions, such as semiconductor memories, read-only memories (ROMs), random access memories (RAMs), flash memories, USB memories, etc. Examples of program instructions include both machine codes (such as machine codes generated by compilers) and files containing higher-level codes that can be executed by a computer using an interpreter. Program instructions may be executed by one or more processors. The described hardware devices may be configured to act as one or more software modules in order to perform the operations of the above-described embodiments, and vice versa. In addition, non-transitory computer-readable storage media may be distributed between computer systems connected via a network, and computer-readable codes or program instructions may be stored and executed in a decentralized manner. Furthermore, the non-transitory computer-readable storage medium may also be embodied in at least one application specific integrated circuit (ASIC) or a field programmable gate array (FPGA).
[0157] Each block of the flow chart may represent a unit, module, segment or portion of code, which includes one or more executable instructions for implementing one or more specified logical functions. It should also be noted that in some alternative implementations, the functions mentioned in the blocks may occur out of order. For example, two blocks shown in succession may actually be executed substantially concurrently (simultaneously), or the blocks may sometimes be executed in reverse order, depending on the functionality involved.
[0158] Although the present disclosure has been described with respect to various example embodiments, each example is provided by way of explanation, not limitation of the present disclosure. Those skilled in the art, after understanding the foregoing, may easily produce changes, modifications, and equivalents of such embodiments. Therefore, the present disclosure does not exclude such modifications, changes, and / or additions to the disclosed subject matter that would be readily understood by those of ordinary skill in the art. For example, a feature shown or described as part of one embodiment may be used together with another embodiment to produce yet another embodiment. Therefore, the present disclosure is intended to cover such changes, modifications, and equivalents.
Claims
1. A computer-implemented method for sharing a map session, the method comprising: Initiating the shared map session, the shared map session including a plurality of electronic devices, the 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 map session, second point of interest (POI) information associated with the second user, the second POI information including a visual element for identifying the second POI as an item of interest for the second user; as well as A user interface for the shared map session is displayed on the display of the first electronic device, the user interface displaying map information indicating the visual element and a location associated with the first user, and the first user via the first electronic device and the second user via the second electronic device are able to simultaneously view at least the visual element in the shared map session.
2. The computer-implemented method of claim 1 , further comprising: transmitting a request for a real-time map view of the shared map session from the perspective of the second user of the second electronic device; receiving the real-time map view from the perspective of the second user of the second electronic device of the shared map session; as well as The real-time map view of the shared map session from the perspective of the second user of the second electronic device is displayed in the user interface of the shared map session.
3. The computer-implemented method of claim 1 , further comprising: receiving second navigation information indicating travel information from a departure location of the second user to a location of the second POI; as well as Based on the second navigation information, at least one of the travel time or the travel route from the starting location of the second user to the location of the second POI is displayed in the user interface of the shared map session, and at the same time, at least one of the travel time or the travel route from the starting location of the first user to the location of the second POI is displayed.
4. The computer-implemented method of claim 1 , further comprising: transmitting 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 to a server; receiving from the server one or more recommended POIs determined by the server based at least in part on the first positioning information, the first POI information, second positioning information associated with the second user, and the second POI information; displaying, in the user interface of the shared map session, at least one of a travel time or a travel route from a departure location of the first user to locations of the one or more recommended POIs; as well as The locations of the one or more recommended POIs that can be simultaneously viewed by the second user in the shared map session via the second electronic device are displayed in the user interface of the shared map session.
5. The computer-implemented method of claim 1 , further comprising: In response to determining that the first electronic device and the second electronic device are located at the same location, automatically transmitting to the second electronic device an invitation message to join the shared map session; as well as The shared map session is automatically terminated in response to determining that the first electronic device and the second electronic device are no longer co-located.
6. The computer-implemented method of claim 1 , further comprising: In response to determining that the first electronic device and the second electronic device are located at the same location as each other and the accuracy of the position measured by the first electronic device is less than a threshold, obtaining location information from at least one sensor of the second electronic device to improve the accuracy of the position measured by the first electronic device.
7. An electronic device comprising: monitor; one or more memories configured to store instructions; as well as one or more processors configured to execute the instructions stored in the one or more memories to: initiating a shared map session, the shared map session comprising a plurality of electronic devices, the plurality of electronic devices comprising 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 map session, second point of interest (POI) information associated with the second user, the second POI information including a visual element for identifying the second POI as an item of interest for the second user, and A user interface for the shared map session is displayed on the display, the user interface displaying map information indicating a location associated with the first user, and the first user via the electronic device and the second user via the second electronic device are able to simultaneously view at least the visual element in the shared map session.
8. The electronic device of claim 7, wherein the one or more processors are configured to: transmitting a request for a real-time map view of the shared map session from the perspective of the second user of the second electronic device, receiving the real-time map view from the perspective of the second user of the second electronic device of the shared map session, and The real-time map view of the shared map session from the perspective of the second user of the second electronic device is displayed in the user interface of the shared map session.
9. The electronic device of claim 7, wherein the one or more processors are configured to: receiving second navigation information indicating travel information from a departure location of the second user to a location of the second POI, and Based on the second navigation information, at least one of the travel time or the travel route from the starting location of the second user to the location of the second POI is displayed in the user interface of the shared map session, and at the same time, at least one of the travel time or the travel route from the starting location of the first user to the location of the second POI is displayed.
10. The electronic device of claim 7, wherein the one or more processors are configured to: transmitting first positioning information associated with the first user of the electronic device and first point of interest (POI) information associated with the first user to a server, receiving from the server one or more recommended POIs determined by the server at least in part based on the first positioning information, the first POI information, the second positioning 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 departure location of the first user to the location of the one or more recommended POIs in the user interface of the shared map session, and The locations of the one or more recommended POIs that can be simultaneously viewed by the second user in the shared map session via the second electronic device are displayed in the user interface of the shared map session.
11. The electronic device of claim 7, wherein the one or more processors are configured to: In response to determining that the electronic device and the second electronic device are located at the same location, automatically transmitting to the second electronic device an invitation message to join the shared map session, and In response to determining that the electronic device and the second electronic device are no longer co-located, the shared map session is automatically terminated.
12. The electronic device of claim 7, wherein the one or more processors are configured to: In response to determining that the electronic device and the second electronic device are co-located with each other and the accuracy of the position measured by the electronic device is less than a threshold, obtaining location information from at least one sensor of the second electronic device to improve the accuracy of the position measured by the electronic device.
13. A computer-implemented method for sharing a map session, the method comprising: receiving a request to initiate the shared map session, the shared map session comprising a plurality of electronic devices, the plurality of electronic devices comprising 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 map 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 for the first user; as well as The visual element is transmitted to the second electronic device so that the second user via the second electronic device and the first user via the first electronic device can simultaneously view the visual element in the shared map session.
14. The computer-implemented method of claim 13, further comprising: receiving, from the first electronic device, a request to provide a real-time map view of the shared map session from the perspective of the second user of the second electronic device; as well as In response to receiving the request, the real-time map view of the shared map session from the perspective of the second user of the second electronic device is transmitted to the first electronic device.
15. The computer-implemented method of claim 13, further comprising: Transmitting second navigation information to the first electronic device, the second navigation information indicating at least one of the travel time or the travel route from the second user's starting position to the location of the first POI, so that the first user can simultaneously view at least one of the travel time or the travel route from the second user's starting position to the location of the first POI and at least one of the travel time or the travel route from the first user's starting position to the location of the first POI in the shared map session.
16. The computer-implemented method of claim 13, wherein: receiving first positioning information associated with the first user and second positioning 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 positioning information, the second positioning information, the first POI information, and the second POI information; as well as The one or more recommended POIs are transmitted to the first electronic device and the second electronic device so that the first user via the first electronic device and the second user via the second electronic device can simultaneously view the one or more recommended POIs in the shared map session.
17. The computer-implemented method of claim 16, further comprising: 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; as well as 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 map session, and in, Determining the one or more recommended POIs is also based in part on the ranking of each of the plurality of candidate recommended POIs.
18. The computer-implemented method of claim 17, wherein: Ranking each of the plurality of candidate recommended POIs is also based in part on at least one of a travel time or a travel route from a respective departure location associated with each user of the plurality of electronic devices in the shared map session to a respective location of each of the plurality of candidate recommended POIs.
19. The computer-implemented method of claim 13, further comprising: In response to determining that the first electronic device and the second electronic device are located at the same location, automatically transmitting to the second electronic device an invitation message to join the shared map session; as well as The shared map session is automatically terminated in response to determining that the first electronic device and the second electronic device are no longer co-located.
20. The computer-implemented method of claim 13, further comprising: obtaining location information from at least one sensor of the second electronic device 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 a location measured by the first electronic device is less than a threshold; as well as The location information obtained from the at least one sensor of the second electronic device is provided to the first electronic device to improve the accuracy of the location measured by the first electronic device.