US 12,262,326 B2
Determining location using multi-source geolocation data
Piotr Gurgul, Hergiswil (CH); and Lucas Rangit Magasweran, Berlin (DE)
Assigned to Snap Inc., Santa Monica, CA (US)
Filed by Snap Inc., Santa Monica, CA (US)
Filed on Feb. 8, 2023, as Appl. No. 18/166,279.
Application 18/166,279 is a continuation of application No. 17/444,111, filed on Jul. 30, 2021, granted, now 11,601,888.
Claims priority of provisional application 63/200,789, filed on Mar. 29, 2021.
Prior Publication US 2023/0189154 A1, Jun. 15, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. H04W 52/02 (2009.01); G01S 5/00 (2006.01); G01S 5/02 (2010.01); G01S 19/48 (2010.01); G06T 11/00 (2006.01); G06T 13/00 (2011.01); H04W 64/00 (2009.01)
CPC H04W 52/0261 (2013.01) [G01S 5/0063 (2013.01); G01S 5/0252 (2013.01); G01S 5/02685 (2020.05); G06T 11/00 (2013.01); G06T 13/00 (2013.01); H04W 64/003 (2013.01); G01S 19/48 (2013.01)] 15 Claims
OG exemplary drawing
 
1. A mobile device comprising:
one or more computer processors; and
one or more computer-readable mediums storing instructions that, when executed by the one or more computer processors, cause the mobile device to perform operations comprising:
in response to a start-up of the mobile device, determining, from one of a plurality of location sources, an initial location as a previous current position;
selecting a location source of the plurality of location sources, wherein the selecting is based on one or more conditions;
scheduling a request for the selected location source to generate new location data;
accessing the new location data from the selected location source, the new location data comprising a new position and an accuracy of the new position;
determining a current position and an accuracy of the current position based on the new position, the accuracy of the new position, the previous current position, and an accuracy of the previous current position; and
determining a change in location based on a difference between the current position and the previous current position, wherein the current position comprises: an x value, a y value, and a z value, the previous current position comprises: an x1 value, a y1 value, and a z1 value, and the new position comprises: an x2 value, a y2 value, and a z2 value, and wherein determining the current position further comprises:
determining the x value, the y value, and the z value as equal to: ((the x1 value, the y1 value, and the z1 value)×(1/the accuracy of the previous current position)+ (the x2 value, the y2 value, and the z2 value)×(1/the accuracy of the new position))/(the change in location value).
 
13. A method performed on a device, the method comprising:
in response to a start-up of the device, determining, from one of a plurality of location sources, an initial location as a previous current position;
selecting a location source of the plurality of location sources, wherein the selecting is based on one or more conditions;
scheduling a request for the selected location source to generate new location data;
accessing the new location data from the selected location source, the new location data comprising a new position and an accuracy of the new position;
determining a current position and an accuracy of the current position based on the new position, the accuracy of the new position, the previous current position, and an accuracy of the previous current position; and
determining a change in location based on a difference between the current position and the previous current position, wherein the current position comprises: an x value, a y value, and a z value, the previous current position comprises: an x1 value, a y1 value, and a z1 value, and the new position comprises: an x2 value, a y2 value, and a z2 value, and wherein determining the current position further comprises:
determining the x value, the y value, and the z value as equal to: ((the x1 value, the y1 value, and the z1 value)×(1/the accuracy of the previous current position)+ (the x2 value, the y2 value, and the z2 value)×(1/the accuracy of the new position))/(the change in location value).
 
15. A non-transitory computer-readable storage medium including instructions that, when processed by a computer, configure the computer to perform operations comprising:
in response to a start-up of the computer, determining, from one of a plurality of location sources, an initial location as a previous current position;
selecting a location source of the plurality of location sources, wherein the selecting is based on one or more conditions;
scheduling a request for the selected location source to generate new location data;
accessing the new location data from the selected location source, the new location data comprising a new position and an accuracy of the new position;
determining a current position and an accuracy of the current position based on the new position, the accuracy of the new position, the previous current position, and an accuracy of the previous current position; and
determining a change in location based on a difference between the current position and the previous current position, wherein the current position comprises: an x value, a y value, and a z value, the previous current position comprises: an x1 value, a y1 value, and a z1 value, and the new position comprises: an x2 value, a y2 value, and a z2 value, and wherein determining the current position further comprises:
determining the x value, the y value, and the z value as equal to: ((the x1 value, the y1 value, and the z1 value)×(1/the accuracy of the previous current position)+ (the x2 value, the y2 value, and the z2 value)×(1/the accuracy of the new position))/(the change in location value).