# US 12,182,959 B2 · Intelligently placing labels

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

- Number: US 12,182,959 B2
- Document ID: US12182959B2
- Status: Granted
- Kind: B2
- Application number: 18/298,785
- Filed: 2023-04-11
- Published: 2023-08-03
- Granted: 2024-12-31
- Earliest claimed: 2013-06-01
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Erik Anders Mikael Adlers; Christopher F. Marrin; Elisabeth Lindkvist; Jeffrey Paul McCurdy Hultquist; Ian MacDonald Henderson, II
- Web page: https://patentgrep.com/patent/US12182959B2

## CPC

- G06T 19/20: Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
- G01C 21/3635: {Guidance using 3D or perspective road maps}
- G01C 21/3673: {Labelling using text of road map data items, e.g. road names, POI names}
- G06T 3/60: Rotation of whole images or parts thereof
- G06T 11/00: Two-dimensional [2D] image generation
- G09G 5/00: Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators (image data processing or generation, in general G06T)
- G01C 21/3638: {including 3D objects and buildings (three dimensional [3D] modelling, e.g. data description of 3D objects G06T17/00; geographic models G06T17/05)}
- G01C 21/3682: {output of POI information on a road map (G01C21/3614, G01C21/3685 take precedence)}
- G01C 21/3691: {Retrieval, searching and output of information related to real-time traffic, weather, or environmental conditions (arrangements for giving variable traffic instructions G08G1/09)}
- G06T 2219/004: Annotating, labelling
- G06T 2219/2016: Rotation, translation, scaling
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G01C: MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY (measuring liquid level G01F; radio navigation, determining distance or velocity by use of propagation effects, e.g. Doppler effects, propagation time, of radio waves, analogous arrangements using other waves G01S)
- G09G: ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION (arrangements for transferring data between digital computers and displays G06F3/14; static indicating arrangements comprising an association of a number of separate sources or light control cells G09F9/00; static indicating arrangements comprising integral associations of a number of light sources H01J, H01K, H10H, H05B33/12; scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission, details thereof H04N1/00)

## Abstract

Some embodiments provide a mapping application that displays a rotation of a 3D map and corresponding rotation of a set of map labels overlaying the 3D map in response to receiving input to rotate the 3D map. When a particular map label in the set of map labels rotates towards an upside down orientation, the mapping application also replaces the particular map label with a version of the particular map label arranged in a right side up orientation to prevent the particular map label from being displayed in the upside down orientation in the 3D map.

## Claims

### Claim 1

A non-transitory machine-readable medium storing a mapping application which, when executed by at least one processing unit of a device, causes the at least one processing unit to perform operations comprising:
identifying, by a mapping application, a first virtual camera position for rendering a first view of the 3D map;
identifying a first map label from a set of map labels, wherein each map label of the set of map labels is associated with a respective map feature on the 3D map;
projecting, in the first view of the 3D map, a first geometrical construct with at least one first point that is outside of a first two-dimensional plane that includes the first map label;
determining whether the first geometrical construct is at least partially occluded in the first view of the 3D map based on the first virtual camera position; and
based on a determination that the first geometrical construct is not partially occluded, displaying the first map label in the first view of the 3D map;
rendering and displaying, by the mapping application, a route corresponding to navigation instructions using the first view of the 3D map including the first map label;
subsequent to performing a zoom operation:
identifying a second virtual camera position for rendering a second view of the 3D map;
projecting, in the second view of the 3D map, a second geometrical construct with at least one second point that is outside the first two-dimensional plane that includes the first map label;
determining whether the second geometrical construct is at least partially occluded in the second view of the 3D map based on the second virtual camera position; and
based on a determination that the second geometrical construct is at least partially occluded, removing the first map label from the 3D map for the second view of the 3D map; and
rendering and displaying, by the mapping application, the route corresponding to navigation instructions using the second view of the 3D map without including the first map label.

### Claim 2 (depends on 1)

The non-transitory machine-readable medium of claim 1, wherein:
the first geometrical construct includes a first line segment in a first direction that is orthogonal to the first two-dimensional plane that includes the first map label; and
wherein the second geometrical construct includes a second line segment in the first direction that is orthogonal to the first two-dimensional plane that includes the first map label.

### Claim 3 (depends on 1)

The non-transitory machine-readable medium as recited in claim 1, wherein the first geometrical construct has a different length than the second geometrical construct.

### Claim 4 (depends on 1)

The non-transitory machine-readable medium as recited in claim 1, wherein:
the first virtual camera position is a conceptualization of a first position from which the mapping application renders the first view of the 3D map; and
the second virtual camera position is a conceptualization of a second position from which the mapping application renders the second view of the 3D map.

### Claim 5 (depends on 1)

The non-transitory machine-readable medium as recited in claim 1, wherein:
the first geometrical construct extends from a center of the first map label and is projected vertically along a z-axis of the first view of the 3D map; and
the second geometrical construct extends from the center of the first map label and is projected vertically along a z-axis of the second view of the 3D map.

### Claim 6 (depends on 1)

The non-transitory machine-readable medium as recited in claim 1, wherein:
identifying the first virtual camera position comprises determining a first position and a first orientation of the virtual camera with respect to the 3D map; and
identifying the second virtual camera position comprises determining a second position and a second orientation of the virtual camera with respect to the 3D map.

### Claim 7 (depends on 1)

The non-transitory machine-readable medium as recited in claim 1, wherein determining that the second geometrical construct is at least partially occluded comprises determining that an entirety of the second geometrical construct is occluded.

### Claim 8 (depends on 1)

The non-transitory machine-readable medium as recited in claim 1, wherein determining that the second geometrical construct is at least partially occluded comprises determining that a threshold percentage of the second geometrical construct is occluded.

### Claim 9

A system comprising:
at least one processing unit; and
a non-transitory machine-readable medium storing a mapping application which, when executed by the at least one processing unit, causes the at least one processing unit to perform operations comprising:
identifying, by a mapping application, a first virtual camera position for rendering a first view of the 3D map;
identifying a first map label from a set of map labels, wherein each map label of the set of map labels is associated with a respective map feature on the 3D map;
projecting, in the first view of the 3D map, a first geometrical construct with at least one first point that is outside of a first two-dimensional plane that includes the first map label;
determining whether the first geometrical construct is at least partially occluded in the first view of the 3D map based on the first virtual camera position; and
based on a determination that the first geometrical construct is not partially occluded, displaying the first map label in the first view of the 3D map;
rendering and displaying, by the mapping application, a route corresponding to navigation instructions using the first view of the 3D map including the first map label;
subsequent to performing a zoom operation:
identifying, by the mapping application, a second virtual camera position for rendering a second view of the 3D map;
projecting, in the second view of the 3D map, a second geometrical construct with at least one second point that is outside the first two-dimensional plane that includes in the first map label;
determining whether the second geometrical construct is at least partially occluded in the second view of the 3D map based on the second virtual camera position;
based on a determination that the second geometrical construct is at least partially occluded, removing the first map label from the 3D for the second view of the 3D map; and
rendering and displaying, by the mapping application, the route corresponding to navigation instructions using the second view of the 3D map without including the first map label.

### Claim 10 (depends on 9)

The system of claim 9, wherein:
the first geometrical construct includes a first line segment in a first direction that is orthogonal to the first two-dimensional plane that includes the first map label; and
wherein the second geometrical construct includes a second line segment in the first direction that is orthogonal to the first two-dimensional plane that includes the first map label.

### Claim 11 (depends on 9)

The system as recited in claim 9, wherein the first geometrical construct has a different length than the second geometrical construct.

### Claim 12 (depends on 9)

The system as recited in claim 9, wherein:
the first virtual camera position is a conceptualization of a first position from which the mapping application renders the first view of the 3D map; and
the second virtual camera position is a conceptualization of a second position from which the mapping application renders the second view of the 3D map.

### Claim 13 (depends on 9)

The system as recited in claim 9, wherein:
the first geometrical construct extends from a center of the first map label and is projected vertically along a z-axis of the first view of the 3D map; and
the second geometrical construct extends from the center of the first map label and is projected vertically along a z-axis of the second view of the 3D map.

### Claim 14 (depends on 9)

The system as recited in claim 9, wherein:
identifying the first virtual camera position comprises determining a first position and a first orientation of the virtual camera with respect to the 3D map; and
identifying the second virtual camera position comprises determining a second position and a second orientation of the virtual camera with respect to the 3D map.

### Claim 15 (depends on 9)

The system as recited in claim 9, wherein determining that the second geometrical construct is at least partially occluded comprises determining that an entirety of the second geometrical construct is occluded.

### Claim 16 (depends on 9)

The system as recited in claim 9, wherein determining that the second geometrical construct is at least partially occluded comprises determining that a threshold percentage of the first line segment is occluded.

### Claim 17

A method comprising:
identifying, by at least one processing unit of a computing device executing a mapping application, a first virtual camera position for rendering a first view of the 3D map;
identifying a first map label from a set of map labels, wherein each map label of the set of map labels is associated with a respective map feature on the 3D map;
projecting, in the first view of the 3D map, a first geometrical construct with at least one first point that is outside of a first two-dimensional plane that includes the first map label;
determining whether the first geometrical construct is at least partially occluded in the first view of the 3D map based on the first virtual camera position; and
based on a determination that the first geometrical construct is not partially occluded, displaying the first map label in the first view of the 3D map;
rendering and displaying, by the at least one processing unit of the computing device executing the mapping application, a route corresponding to navigation instructions using the first view of the 3D map including the first map label;
subsequent to performing a zoom operation:
identifying, by the at least one processing unit of the computing device executing the mapping application, a second virtual camera position for rendering a second view of the 3D map;
projecting, by the at least one processing unit in the view of the 3D map, second geometrical construct with at least one second point that is outside the first two-dimensional plane that includes the first map label;
determining, by the at least one processing unit, whether the second geometrical construct is at least partially occluded in the second view of the 3D map based on the second virtual camera position;
based on a determination that the second geometrical construct is at least partially occluded, removing, by the at least one processing unit, the first map label from the 3D map for the second view of the 3D map; and
rendering and displaying, by the at least one processing unit executing the mapping application, the route corresponding to navigation instructions using the second view of the 3D map without including the first map label.

### Claim 18 (depends on 17)

The method of claim 17, wherein:
the first geometrical construct includes a first line segment in a first direction that is orthogonal to the first two-dimensional plane that includes the first map label; and
wherein the second geometrical construct includes a second line segment in the first direction that is orthogonal to the first two-dimensional plane that includes the first map label.

### Claim 19 (depends on 17)

The method as recited in claim 17, wherein:
the first geometrical construct extends from a center of the first map label and is projected vertically along a z-axis of the first view of the 3D map; and
the second geometrical construct extends from the center of the first map label and is projected vertically along a z-axis of the second view of the 3D map.

### Claim 20 (depends on 17)

The method as recited in claim 17, wherein determining that the second geometrical construct is at least partially occluded comprises determining that an entirety of the second geometrical construct is occluded.
