Search

US-12625026-B2 - Barometer calibration in a location sharing system

US12625026B2US 12625026 B2US12625026 B2US 12625026B2US-12625026-B2

Abstract

Methods, systems, and devices for calibrating a barometer of a client device. A server computer accesses historical data including location data, and atmospheric pressure data collected from a plurality of client devices over a period of time. An equation system defined by the historical data is solved. The equation system has a plurality of unknown parameters, the plurality of unknown parameters comprising a barometer bias of a first client device among the plurality of client devices. The first client device is calibrated using the barometer bias.

Inventors

  • ERIC GUILLAUME
  • Antoine Sinton

Assignees

  • SNAP INC.

Dates

Publication Date
20260512
Application Date
20230705

Claims (20)

  1. 1 . A method, comprising: determining a barometer bias of a first client device, wherein determining the barometer bias comprises accessing, at a server, atmospheric pressure readings acquired by the first client device and at least one additional client device located within a preset distance of the first client device, and determining that the accessed atmospheric pressure readings match each other, and wherein determining the barometer bias further comprises accessing, from a weather service server, atmospheric pressure at sea level; providing for calibrating the first client device based on the barometer bias of the first client device; determining that a first user associated with the first client device is located on a particular floor level of a building or on a plane, based on current location data and a current altitude of the first client device as calibrated; and causing, on a second client device associated with a second user, display of a user interface including a map, an avatar of the first user positioned within the map based on the current location data, an indication of the particular floor level or the plane together with the avatar of the first user, and a user interface element which is selectable by the second user for messaging the first user.
  2. 2 . The method of claim 1 , further comprising, prior to the determining: receiving, from the first client device, an electronic communication containing the current location data and current atmospheric pressure data; and determining the current altitude of the first client device, based on the current location data and the current atmospheric pressure data.
  3. 3 . The method of claim 2 , further comprising: determining, based on the current location data, a current location of the first user; retrieving, from a ground level dataset, a ground level at the current location of the first user; and determining, based on determining that the current altitude of the first user is below the ground level at the current location of the first user, that the first user is underground.
  4. 4 . The method of claim 3 , further comprising: determining, based on determining that the first user is underground and based on determining that a speed of the first user is above a speed threshold, that the first user is in an underground transit system; and based on determining that the first user is in the underground transit system, initiating transmission of data to a second client device of a second user, the data comprising an indication that the first user is in the underground transit system, for display on a display screen of the second client device.
  5. 5 . The method of claim 1 , wherein causing display of the user interface comprises: initiating transmission of data to the second client device, the data comprising the particular floor level or the plane on which the first user is located, for display on a display screen of the second client device.
  6. 6 . The method of claim 5 , wherein initiating transmission of data to the second client device includes attaching the data to an ephemeral message accessible for a predetermined duration of time, and wherein display on the display screen of the second client device includes: receiving a request from the second client device to access the ephemeral message; in response to the request, causing the ephemeral message to be displayed on the second client device; and ceasing display of, and access to, the ephemeral message in response to expiration of the predetermined duration of time.
  7. 7 . The method of claim 1 , further comprising: receiving, from the first client device, the first client device being associated with a first user, an electronic communication containing current location data and current atmospheric pressure data; determining, based on the current location data, a current location of the first client device; determining, based on the current atmospheric pressure data, a current altitude of the first client device; determining, based on the current location data, that the first user is at ground level; and determining, based on the current altitude of the first client device, a ground level at the current location of the first user.
  8. 8 . The method of claim 7 , further comprising: adding the ground level, in association with the current location of the first user, to a ground level dataset; and building a ground level map based on the ground level dataset.
  9. 9 . The method of claim 7 , wherein determining that the first user is at ground level comprises: determining that a speed of the first user is above a speed threshold over a distance that is longer than a distance threshold.
  10. 10 . A system comprising: at least one processor; and a memory storing instructions that, when executed by the at least one processor, configure the at least one processor to perform operations comprising: determining a barometer bias of a first client device, wherein determining the barometer bias comprises accessing, at a server, atmospheric pressure readings acquired by the first client device and at least one additional client device located within a preset distance of the first client device, and determining that the accessed atmospheric pressure readings match each other, and wherein determining the barometer bias further comprises accessing, from a weather service server, atmospheric pressure at sea level; providing for calibrating the first client device based on the barometer bias of the first client device; determining that a first user associated with the first client device is located on a particular floor level of a building or on a plane, based on current location data and a current altitude of the first client device as calibrated; and causing, on a second client device associated with a second user, display of a user interface including a map, an avatar of the first user positioned within the map based on the current location data, an indication of the particular floor level or the plane together with the avatar of the first user, and a user interface element which is selectable by the second user for messaging the first user.
  11. 11 . The system of claim 10 , the operations further comprising, prior to the determining: receiving, from the first client device, an electronic communication containing the current location data and current atmospheric pressure data; and determining the current altitude of the first client device, based on the current location data and the current atmospheric pressure data.
  12. 12 . The system of claim 11 , the operations further comprising: determining, based on the current location data, a current location of the first user; retrieving, from a ground level dataset, a ground level at the current location of the first user; and determining, based on determining that the current altitude of the first user is below the ground level at the current location of the first user, that the first user is underground.
  13. 13 . The system of claim 12 , the operations further comprising: determining, based on determining that the first user is underground and based on determining that a speed of the first user is above a speed threshold, that the first user is in an underground transit system; and based on determining that the first user is in the underground transit system, initiating transmission of data to a second client device of a second user, the data comprising an indication that the first user is in the underground transit system, for display on a display screen of the second client device.
  14. 14 . The system of claim 10 , wherein causing display of the user interface comprises: initiating transmission of data to the second client device, the data comprising the particular floor level or the plane on which the first user is located, for display on a display screen of the second client device.
  15. 15 . The system of claim 14 , wherein initiating transmission of data to the second client device includes attaching the data to an ephemeral message accessible for a predetermined duration of time, and wherein display on the display screen of the second client device includes: receiving a request from the second client device to access the ephemeral message; in response to the request, causing the ephemeral message to be displayed on the second client device; and ceasing display of, and access to, the ephemeral message in response to expiration of the predetermined duration of time.
  16. 16 . The system of claim 10 , the operations further comprising: receiving, from the first client device, the first client device being associated with a first user, an electronic communication containing current location data and current atmospheric pressure data; determining, based on the current location data, a current location of the first client device; determining, based on the current atmospheric pressure data, a current altitude of the first client device; determining, based on the current location data, that the first user is at ground level; and determining, based on the current altitude of the first client device, a ground level at the current location of the first user.
  17. 17 . The system of claim 16 , the operations further comprising: adding the ground level, in association with the current location of the first user, to a ground level dataset; and building a ground level map based on the ground level dataset.
  18. 18 . The system of claim 16 , wherein determining that the first user is at ground level comprises: determining that a speed of the first user is above a speed threshold over a distance that is longer than a distance threshold.
  19. 19 . A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to perform operations comprising: determining a barometer bias of a first client device, wherein determining the barometer bias comprises accessing, at a server, atmospheric pressure readings acquired by the first client device and at least one additional client device located within a preset distance of the first client device, and determining that the accessed atmospheric pressure readings match each other, and wherein determining the barometer bias further comprises accessing, from a weather service server, atmospheric pressure at sea level; providing for calibrating the first client device based on the barometer bias of the first client device; determining that a first user associated with the first client device is located on a particular floor level of a building or on a plane, based on current location data and a current altitude of the first client device as calibrated; and causing, on a second client device associated with a second user, display of a user interface including a map, an avatar of the first user positioned within the map based on the current location data, an indication of the particular floor level or the plane together with the avatar of the first user, and a user interface element which is selectable by the second user for messaging the first user.
  20. 20 . The non-transitory computer-readable storage medium of claim 19 , the operations further comprising, prior to the determining: receiving, from the first client device, an electronic communication containing the current location data and current atmospheric pressure data; and determining the current altitude of the first client device, based on the current location data and the current atmospheric pressure data.

Description

CROSS-REFERENCE TO RELATED APPLICATION This application is a continuation of U.S. patent application Ser. No. 16/360,852, filed Mar. 21, 2019, which is incorporated by reference herein in its entirety. BACKGROUND The popularity of electronic messaging, particularly instant messaging, continues to grow. Users increasingly share media content items such as electronic images and videos with each other, reflecting a global demand to communicate more visually. Similarly, users increasingly seek to customize the media content items they share with others, providing challenges to social networking systems seeking to generate custom media content for their members. Embodiments of the present disclosure address these and other issues. BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the figure number in which that element is first introduced. FIG. 1 is a diagrammatic representation of a networked environment in which the present disclosure may be deployed, in accordance with some example embodiments. FIG. 2 illustrates a messaging system 200 in accordance with one embodiment. FIG. 3 is a diagrammatic representation of a data structure as maintained in a database, in accordance with some example embodiments. FIG. 4 is a diagrammatic representation of a processing environment, in accordance with some example embodiments. FIG. 5 is a flowchart for an access-limiting process, in accordance with some example embodiments. FIG. 6 is block diagram showing a software architecture within which the present disclosure may be implemented, in accordance with some example embodiments. FIG. 7 is a diagrammatic representation of a machine, in the form of a computer system within which a set of instructions may be executed for causing the machine to perform any one or more of the methodologies discussed, in accordance with some example embodiments. FIG. 8 illustrates a routine in accordance with one embodiment. FIG. 9 illustrates a routine in accordance with one embodiment. FIG. 10 illustrates a routine in accordance with one embodiment. FIG. 11 illustrates a routine in accordance with one embodiment. FIG. 12 illustrates a user interface in accordance with one embodiment. FIG. 13 illustrates a user interface in accordance with one embodiment. DETAILED DESCRIPTION Embodiments of the present disclosure provide a geographically-based graphical user interface (GUI). This user interface may be referred to herein as a “map GUI,” and may be used in conjunction with a social media application. In some embodiments, the map GUI may include representations of at least approximate respective positions of a user and a user's friends in a social network graph accessed by the social media application using avatars for each respective user. Various embodiments of the present disclosure provide systems, methods, techniques, instruction sequences, and computing machine program products for calibrating a barometer of a client device within a location sharing system. As most smartphones contain a barometer, it is possible to collect atmospheric pressure readings from smartphones. Since air pressure decreases with altitude according to a physics formula, it is theoretically possible to determine an altitude of a client device from atmospheric pressure readings. However, at least three other parameters impact the atmospheric pressure readings, namely, weather condition changes, which means atmospheric pressure at sea level changes, barometer bias (each individual barometer has a bias) and local ground level (ground level databases are available, but the data is imprecise). As a consequence, conventional methods for determining a user's altitude are either grossly inaccurate or requires complex hardware installation and calibration. Motivated by these challenges, some embodiments of the present disclosure provide improvements over conventional methods for accurately determining an altitude of a user. In some embodiments, some of these improvements are achieved by collecting and analyzing location and atmospheric pressure data of a plurality of client devices over a period of time, to determine a barometer bias of the client device of a user. In some embodiments, the barometer bias of a client device is estimated, and the client device of the user is then calibrated based on the barometer bias. The altitude of the user can then be precisely determined based on atmospheric pressure data acquired by the calibrated client device. For example, in some embodiments, a server computer accesses historical data including location data, and atmospheric pressure data collected from a plurality of client devices over a period of time. An equation system defined by the historical data is solved. The equation system has a plurality of unknown parameters, the plurality of unknown parameters comprising a barometer bias of each client