# US 12,602,503 B2 · Generating, from data of first location on surface, data for alternate but equivalent second location on the surface

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,602,503 B2
- Document ID: US12602503B2
- Status: Granted
- Kind: B2
- Application number: 19/040,673
- Filed: 2025-01-29
- Published: 2025-05-29
- Granted: 2026-04-14
- Earliest claimed: 2019-06-14
- Assignees: Avalara, Inc.
- Applicants: Avalara, Inc.
- Inventors: Mark Janzen; Gregory T. Kavounas; Rohit Ghule; Charles M. Morrisette
- Web page: https://patentgrep.com/patent/US12602503B2

## CPC

- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 16/9537: Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In embodiments, given a surface that has domains on it and a first location, a second location is generated in the surface. The second location belongs in the same domains as the first location, and does not belong in the same domains as the second location. An advantage can be that, in embodiments, the second location can be used in lieu of the first location. A use case can be where it is desired to protect the privacy of location data of an entity, such as its address.

## Claims

### Claim 1

A non-transitory computer-readable storage medium having computer-executable instructions stored thereon that, when executed by at least one processor, cause operations to be performed, the operations comprising:
receiving first location data that defines a first location on a surface, the surface having domains defined thereon;
looking up stored data about an extent of the domains on the surface;
querying whether or not the first location belongs in at least some of the domains;
discerning, in response to the querying, that the first location belongs in a first one of the domains but does not belong in a second one of the domains;
generating second location data that defines the second location on the surface, the second location selected so as to not overlap with the first location, the second location selected so as to belong in the first domain but to not belong in the second domain; and
outputting the second location data, in which:
the first data is received via a network as a payload of a request, and
the second location data is output via a network as a payload of a response that is transmitted responsive to the request.

### Claim 2 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, in which:
the surface is flat.

### Claim 3 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, in which:
the surface is curved.

### Claim 4 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, in which:
the surface is substantially spherical.

### Claim 5 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, in which:
the first location data uses one of rectangular coordinates and spherical coordinates.

### Claim 6 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, in which:
the received first location data uses a first coordinate system,
the operations further comprise: converting the received first location data so that it uses a second coordinate system distinct from the first coordinate system, and
in which the querying is performed using the converted first location data.

### Claim 7 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, in which the operations further comprise:
discerning, in response to the querying, a first subset of all of the domains that the first location belongs in, the first subset including the first domain, and
in which the second location is further selected so as to belong in all the domains of the first subset.

### Claim 8 (depends on 7)

The non-transitory computer-readable storage medium of claim 7, in which the operations further comprise:
further discerning, in response to the querying, a second subset of at least two of the domains that the first location does not belong in, the second subset including the second domain, and
in which the second location is further selected so as to not belong in any the domains of the second subset.

### Claim 9 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, in which:
the second subset includes at least three domains.

### Claim 10 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, in which:
the generated second location data uses a first coordinate system, and
the operations further comprise: converting the generated second location data so that it uses a second coordinate system distinct from the first coordinate system, and
in which the output second location data uses the second coordinate system.

### Claim 11 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, in which:
the first location data uses a first coordinate system, and
the outputted second location data uses a second coordinate system distinct from the first coordinate system.

### Claim 12 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, in which:
the first location data uses a certain coordinate system, and
the first location data defines a single point on the surface according to the certain coordinate system.

### Claim 13

A non-transitory computer-readable storage medium having computer-executable instructions stored thereon that, when executed by at least one processor, cause operations to be performed, the operations comprising:
receiving first location data that defines a first location on a surface, the surface having domains defined thereon, in which the received first location data becomes temporarily stored in a memory of a computer system;
rendering the first location data irretrievable from the memory;
looking up stored data about an extent of the domains on the surface;
querying whether or not the first location belongs in at least some of the domains;
discerning, in response to the querying, that the first location belongs in a first one of the domains but does not belong in a second one of the domains;
generating second location data that defines the second location on the surface, the second location selected so as to not overlap with the first location, the second location selected so as to belong in the first domain but to not belong in the second domain; and
outputting the second location data.

### Claim 14 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, in which:
the first location data uses a certain coordinate system, and
the first location data defines a single point on the surface according to the certain coordinate system.

### Claim 15 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, in which:
the second location data uses a certain coordinate system, and
the second location data defines a single point on the surface according to the certain coordinate system.

### Claim 16 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, in which:
one of the first location and the second location is a place that has a non-zero area on the surface.

### Claim 17 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, in which:
the first location has a non-zero area on the surface,
the second location has a non-zero area on the surface, and
the second location can be fitted entirely within a test circle of a certain diameter, the test circle farther from any point of the first location than the certain diameter.

### Claim 18 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, in which:
the surface defines a forbidden zone, the first location known to be prohibited from being in the forbidden zone, but
the second location is selected to be in the forbidden zone.

### Claim 19 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, in which the operations further comprise:
looking up stored data that defines valid zones on the surface, the first location required to be in one of the valid zones; and
the second location is selected to be between two adjacent ones of the valid zones.

### Claim 20 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, in which:
the second location is selected by a generating function that uses the first location data to point to at least a vicinity for the second location.

### Claim 21 (depends on 20)

The non-transitory computer-readable storage medium of claim 20, in which:
the generating function uses the first location data to point to the second location.

### Claim 22 (depends on 20)

The non-transitory computer-readable storage medium of claim 20, in which:
the generating function uses at least one random variable.

### Claim 23 (depends on 20)

The non-transitory computer-readable storage medium of claim 20, in which:
the generating function forces the second location to be within a certain range of distances from the first location.

### Claim 24 (depends on 20)

The non-transitory computer-readable storage medium of claim 20, in which:
the generating function forces the second location to be at a certain general direction from the first location.

### Claim 25 (depends on 20)

The non-transitory computer-readable storage medium of claim 20, in which:
the first location data uses a coordinate system that employs two perpendicular axes, and
the generating function forces the second location to be at a certain general direction from the first location, the certain general direction being at a random angle that is at least 20 degrees away from each of the axes.

### Claim 26 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, in which the generating includes:
choosing candidate location data that defines a candidate location on the surface; and
determining whether or not the candidate location meets a selection criterion,
in which the candidate location data is generated as the second location data responsive to the candidate location meeting the selection criterion.

### Claim 27 (depends on 26)

The non-transitory computer-readable storage medium of claim 26, in which:
the selection criterion includes that the candidate location belongs in the first domain but does not belong in the second domain.

### Claim 28 (depends on 26)

The non-transitory computer-readable storage medium of claim 26, in which:
the candidate location is selected by a generating function that uses the first location data.

### Claim 29 (depends on 26)

The non-transitory computer-readable storage medium of claim 26, in which:
the surface defines a forbidden zone, the first location known to be prohibited from being in the forbidden zone, but
the candidate location is in the forbidden zone.

### Claim 30 (depends on 26)

The non-transitory computer-readable storage medium of claim 26, in which the operations further comprise:
storing in a memory and prior to receiving the first location data, the candidate location data.

### Claim 31 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, in which the generating further includes:
choosing a plurality of candidate location data that respectively define candidate locations on the surface; and
ranking the plurality of the candidate locations according to at least one desirability criterion, and
in which the second location is selected as the one of the candidate locations that has been thus ranked the highest.

### Claim 32 (depends on 31)

The non-transitory computer-readable storage medium of claim 31, in which:
the desirability criterion includes that the candidate location belongs in the first domain but does not belong in the second domain.

### Claim 33 (depends on 31)

The non-transitory computer-readable storage medium of claim 31, in which:
the candidate locations are selected by a generating function that uses the first location data.

### Claim 34 (depends on 31)

The non-transitory computer-readable storage medium of claim 31, in which:
the surface defines a forbidden zone, the first location known to be prohibited from being in the forbidden zone, but
one or more of the candidate locations are in the forbidden zone.

### Claim 35 (depends on 31)

The non-transitory computer-readable storage medium of claim 31, in which the operations further comprise:
storing in a memory and prior to receiving the first location data, the plurality of candidate location data.

### Claim 36 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, in which the operations further comprise:
storing in a memory and prior to receiving the first location data, default location data that defines a default location on the surface; and
in which the second location data is the default location data.

### Claim 37 (depends on 36)

The non-transitory computer-readable storage medium of claim 36, in which:
the surface defines a forbidden zone, the first location known to be prohibited from being in the forbidden zone, but
one or more of the candidate locations are in the forbidden zone.

### Claim 38 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, in which the operations further comprise:
storing in a memory and prior to receiving the first location data, a plurality of default location data that defines a plurality of default locations on the surface; and
in which
the second location is not any of the default locations; and
storing in a memory, the second location data as additional default data in the memory.

### Claim 39 (depends on 38)

The non-transitory computer-readable storage medium of claim 38, in which:
the surface includes a forbidden zone, the first location known to be prohibited from being in the forbidden zone, but
the second location is in the forbidden zone.
