Waypoint prediction engine(s) for compressing geographical information system data
Various embodiments of the present technology generally relate to systems and methods for providing a waypoint prediction engine and its related functions. In an aspect, a waypoint prediction engine may determine navigation data associated with a client device and a source model. Then a decompression-side of the waypoint prediction engine may generate a predicted waypoint based on the source model and the navigation data for the client device as the client device travels along a navigation route. The decompression-side may receive, from a compression-side of the waypoint prediction engine, a correction factor for the predicted waypoint. Responsive to receiving the correction factor, the decompression-side of the waypoint prediction engine may store the correction factor as associated with the source model, where the correction factor and the source model allow for recreation of the navigation route of the client device.
1 . A computing apparatus comprising:
a computer-readable storage medium;
a waypoint prediction engine comprising processor-executable instructions stored on the computer-readable storage medium; and
one or more processors coupled to the computer-readable storage medium and configured to execute the processor-executable instructions, such that the processor-executable instructions, when executed by the one or more processors, direct the computing apparatus, to at least:
determine a source model for a client device based on navigation data associated with the client device;
generate, at a decompression-side of the waypoint prediction engine, a decompression-side predicted waypoint based on the source model for the client device as the client device travels along a navigation route, wherein a compression-side of the waypoint prediction engine executing on the client device independently generates a compression-side predicted waypoint using the source model and the navigation data;
receive, from the compression-side of the waypoint prediction engine, a correction factor representing a deviation between the compression-side predicted waypoint and a measured waypoint of the client device;
store the correction factor as associated with the source model and the client device; and
recreate, at the decompression-side of the waypoint prediction engine, the navigation route of the client device using the correction factor and the source model.
2 . The computing apparatus of claim 1 , wherein:
the processor-executable instructions when executed by the one or more processors, further direct the computing apparatus to determine navigation data associated with a client device; and
the processor-executable instructions to generate the decompression-side predicted waypoint based on the source model, when executed by the one or more processors, further direct the computing apparatus to:
determine a plurality of historical waypoints based on the navigation data and the source model; and
generate the decompression-side predicted waypoint based on the historical waypoints.
3 . The computing apparatus of claim 1 , wherein the processor-executable instructions when executed by the one or more processors, further direct the computing apparatus to:
generate a second decompression-side predicted waypoint based on the source model;
receive, from the compression-side of the waypoint prediction engine, an indication that the second decompression-side predicted waypoint is accurate; and
add the second decompression-side predicted waypoint to a plurality of historical waypoints based on the second decompression-side predicted waypoint being accurate.
4 . The computing apparatus of claim 1 , wherein the processor-executable instructions to generate the decompression-side predicted waypoint based on the source model, when executed by the one or more processors, further direct the computing apparatus to:
determine a plurality of historical waypoints based on the source model; and
generate the decompression-side predicted waypoint by extrapolating between the plurality of historical waypoints.
5 . The computing apparatus of claim 1 , wherein the processor-executable instructions, when executed by the one or more processors, further direct the computing apparatus to:
generate a plurality of predicted waypoints based on the source model for the client device as the client device travels along the navigation route;
determine a lack of notification from the compression-side of the waypoint prediction engine for the plurality of predicted waypoints; and
buffer the plurality of predicted waypoints as unverified accurate.
6 . The computing apparatus of claim 1 , wherein the processor-executable instructions when executed by the one or more processors, further direct the computing apparatus to:
generate a corrected waypoint based on the correction factor and the decompression-side predicted waypoint; and
add the corrected waypoint to a plurality of historical waypoints associated with the source model.
7 . The computing apparatus of claim 1 , wherein the processor-executable instructions to determine the source model for the client device, when executed by the one or more processors, further direct the computing apparatus to:
receive, from the client device, a selection of a navigation mode; and
determine the source model based on the navigation mode.
8 . A method comprising:
determining navigation data associated with a client device;
determining a source model for the client device based on the navigation data;
generating a decompression-side predicted waypoint based on the source model and the navigation data for the client device as the client device travels along a navigation route, wherein the client device independently generates a compression-side predicted waypoint using the source model and the navigation data;
receiving a correction factor representing a deviation between the compression-side predicted waypoint and a measured waypoint of the client device;
storing the correction factor as associated with the source model; and
recreating the navigation route of the client device using the correction factor and the source model.
9 . The method of claim 8 , wherein generating the decompression-side predicted waypoint based on the source model and the navigation route comprises:
determining a plurality of historical waypoints based on the source model and the navigation data;
determining a speed and direction of the client device based on the plurality of historical waypoints;
determining a predicted path based on the navigation data; and
estimating the decompression-side predicted waypoint along the predicted path based on the speed and direction of the client device.
10 . The method of claim 8 , wherein the method further comprises:
generating a plurality of predicted waypoints based on the source model for the client device as the client device travels along the navigation route;
adding the plurality of predicted waypoints to a buffer;
receiving an indication that the plurality of predicted waypoints is accurate; and
removing the plurality of predicted waypoints from the buffer.
11 . The method of claim 8 , wherein the method further comprises:
determining a plurality of predicted waypoints, wherein the plurality of predicted waypoints comprise a first subset of predicted waypoints and second subset of predicted waypoints;
receiving a plurality of correction factors, wherein each of the plurality of correction factors corresponds to a respective predicted waypoint in the first subset of predicted waypoints; and
storing the plurality of correction factors as associated with the source model, wherein the plurality of correction factors and the source model allow for recreation of the navigation route of the client device.
12 . The method of claim 8 , wherein selecting the navigation data associated with the client device comprises:
receiving a unique identifier; and
selecting the navigation data based on the unique identifier.
13 . The method of claim 8 , wherein the method further comprises:
generating a corrected waypoint based on the correction factor and the decompression-side predicted waypoint; and
adding the corrected waypoint to a plurality of historical waypoints associated with the source model.
14 . The method of claim 8 , wherein determining navigation data associated with the client device comprises:
selecting the navigation data based on an initial waypoint of the client device; and
verifying that the client device selects the same navigation data.
15 . A non-transitory computer-readable storage medium comprising processor-executable instructions configured to cause one or more processors to:
determine navigation data associated with a client device;
determine a source model for the client device based on navigation data associated with the client device;
generate a decompression-side predicted waypoint based on the source model and the navigation data for the client device as the client device travels along a navigation route, wherein the client device independently generates a compression-side predicted waypoint using the source model and the navigation data;
receive a correction factor representing a deviation between the compression-side predicted waypoint and a measured waypoint of the client device;
store the correction factor as associated with the source model; and
recreate the navigation route of the client device using the correction factor and the source model.
16 . The non-transitory computer-readable storage medium of claim 15 , wherein the processor-executable instructions cause the one or more processors to further execute processor-executable instructions stored in the computer-readable storage medium to:
generate a plurality of predicted waypoints based on the source model for the client device as the client device travels along the navigation route;
add the plurality of predicted waypoints to a buffer;
receive an indication that the plurality of predicted waypoints is accurate; and
remove the plurality of predicted waypoints from the buffer.
17 . The non-transitory computer-readable storage medium of claim 15 , wherein the processor-executable instructions cause the one or more processors to further execute processor-executable instructions stored in the computer-readable storage medium to:
determine a plurality of predicted waypoints, wherein the plurality of predicted waypoints comprise a first subset of predicted waypoints and second subset of predicted waypoints;
receive a plurality of correction factors, wherein each of the plurality of correction factors corresponds to a respective predicted waypoint in the first subset of predicted waypoints;
receive an indication that the second subset of predicted waypoints is accurate; and
store the plurality of correction factors as associated with the source model, wherein the plurality of correction factors and the source model allow for recreation of the navigation route of the client device.
18 . The non-transitory computer-readable storage medium of claim 15 , wherein the processor-executable instructions to generate the decompression-side predicted waypoint based on the source model cause the one or more processors to further execute processor-executable instructions stored in the computer-readable storage medium to:
determine a plurality of historical waypoints based on the source model and the navigation data;
determine a speed of the client device based on the plurality of historical waypoints;
determine a predicted path based on the navigation data; and
generate the decompression-side predicted waypoint along the predicted path based on the speed of the client device.
19 . The non-transitory computer-readable storage medium of claim 15 , wherein the processor-executable instructions to determine the source model for the client device cause the one or more processors to further execute processor-executable instructions stored in the computer-readable storage medium to:
determine a navigation mode for the client device; and
select the source model based on the navigation mode.
20 . The non-transitory computer-readable storage medium of claim 15 , wherein the processor-executable instructions to determine the source model for the client device cause the one or more processors to further execute processor-executable instructions stored in the computer-readable storage medium to:
select the source model based on the client device; and
verify that the client device selects the same source model.