2D Text
2D text is a text label at a given location that maintains the same size and orientation regardless of the zoom level and camera orientation of the 3D view.
The Text2D class represents a single 2D text label.
Text2D properties
Use the following properties to customise your Text2D object:
Set the text to display in the label. | |
Set the font style of the label to one of the following values: |
|
Set the point size of the label text. | |
Set the location of the label as an XYZ coordinate. | |
Set the colour of the text. | |
Use this enum property to set the horizontal alignment of your 2D text object. You can set this property to the following values: |
|
Use this enum property to set the vertical alignment of your 2D text object. You can set this property to the following values: |
Text2D examples
Creating a Text2D object
from mapteksdk.project import Project from mapteksdk.data import Text2D project = Project() # Connect to default project object_path = "scrapbook/text_example" # Create Text with project.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 project = Project() # Connect to default project object_path = "scrapbook/text_example" # Create Text with project.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 2D text 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 project = 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 project.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 project.delete(labels_path) with project.read(line.id) as line: for label_id, point in enumerate(line.points): # Create text at point with project.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