Text2D

Text2D is 2D text that maintains a given size regardless of zoom level and camera orientation in the 3D view.

Text2D properties

Use the following properties to customise your Text2D object:

Name Description
text Use this property to set the content of your 2D text object.
font_style Use this enum property to set the font style of your 2D text object. You can set this property to the following values:
  • FontStyle.ITALIC

  • FontStyle.BOLD

  • FontStyle.REGULAR

size Use this property to set the size of your 2D text object.
location Use this property to set the location of your 2D text object in terms of X, Y, Z coordinates.
colour Use this property to set the colour of your 2D text object.
horizontal_alignment Use this enum property to set the horizontal alignment of your 2D text object. You can set this property to the following values:
  • HorizontalAlignment.CENTRED

  • HorizontalAlignment.LEFT

  • HorizontalAlignment.RIGHT

vertical_alignment Use this enum property to set the vertical alignment of your 2D text object. You can set this property to the following values:
  • VerticalAlignment.CENTRED

  • VerticalAlignment.BOTTOM

  • VerticalAlignment.TOP

Text2D examples

Creating a Text2D object

from mapteksdk.project import Project
from mapteksdk.data import Text2D
proj = Project() # Connect to default project

object_path = "scrapbook/text_example"

# Create Text
with proj.new(object_path, Text2D, overwrite=True) as text:
    text.text = 'hello world'
    text.location = [0, 0, 0]
    # Colours are R,G,B,A, where A is Alpha (255 = opaque)
    text.colour = [38, 128, 0, 255] # Light Green
    text.size = 100

Editing Text2D properties

The following example will modify the colour, size, text, and position of the text object created in the last example.

from mapteksdk.project import Project
from mapteksdk.data import Text2D
proj = Project() # Connect to default project

object_path = "scrapbook/text_example"

# Create Text
with proj.edit(object_path) as text:
    text.text = 'new text'
    text.location = [50, 50, 50]
    # Colours are R,G,B,A, where A is Alpha (255 = opaque)
    text.colour = [255, 50, 50, 255]
    text.size = 150

Labelling point heights along a line with text

The following example will add Text2D at each point in a 3D Polyline and label it with the height of the point.

from mapteksdk.project import Project
from mapteksdk.data import Text2D, Polyline
proj = Project() # Connect to default project

# Create a swirl line that rises in height
line_path = "scrapbook/label_line_example"
labels_path = "scrapbook/line_labels"

with proj.new(line_path, Polyline, overwrite=True) as line:
    line.points = [[10, 0, 0], [7, 5, 5], [9, 10, 10], [15, 12, 15],
                   [20, 10, 20], [20, 5, 25], [15, 5, 30], [12, 8, 35]]

# Delete labels container if it exists
proj.delete(labels_path)

with proj.read(line.id) as line:
    for label_id, point in enumerate(line.points):
        # Create text at point
        with proj.new(
          "{}/{}".format(labels_path, label_id),
          Text2D,
          overwrite=True) as text:
            text.text = "{}m".format(point[2])
            text.location = point
            text.colour = [point[2], 255, 255, 255]
            text.size = 40