Feature Representation
KF85 features consist of geometry and attributes. When reading KF85 files, several predefined attributes hold the data from the file. When writing KF85 files, the values in these predefined attributes are written out to the file. If the feature does not have these predefined attributes, appropriate default values will be used.
Free Attributes or User-Defined Attributes
KF85 files also support free attributes, also known as user-defined attributes. These attributes must have an integer as an attribute name. When a KF85 file is read, each of these attributes is added to the individual features it is associated with. As well, a special attribute kf85_attribute_list is attached, whose value is a comma-separated list of all the user-defined attribute names and values present.
When writing KF85 files, all attributes with integer names are interpreted as user-defined attributes and are written out—associated with the appropriate feature. As well, if any feature contains the special attribute kf85_attribute_list, this attribute is parsed, looking for attribute name and value pairs. Each of these attributes is written to the KF85 output file as user-defined attributes, associated with the appropriate feature.
Predefined Attributes
All KF85 FME features contain the kf85_type attribute to identify the geometric type. All features also have a special KF85 code contained in the kf85_code attribute. Depending on the geometric type, the feature contains additional attributes specific to the geometric type. These are described in subsequent sections.
Attribute Name |
Contents |
kf85_type |
The KF85 geometric type of this entity. Required: kf85_point kf85_line kf85_arc kf85_text kf85_common_info kf85_comment kf85_symbol kf85_none Default: kf85_none |
kf85_code |
The feature's special code. Required: any 9 digit integer Default: empty string |
kf85_attribute_list |
An alphanumeric comma-separated list of all user-defined attribute names and values present on the feature. Range: maximum 255 character string Default: empty string |
Points
kf85_type: kf85_point
A KF85 point feature specifies a single 2D or 3D coordinate and the mean error in both x and y. The point feature may also have text (a label) and/or a symbol associated with the point.
Attribute Name |
Contents |
kf85_internal_name |
An alphanumeric code for the feature. Range: maximum 9 character string Default:empty string |
kf85_mean_error_plane |
The mean error in the X coordinate of the point measured in millimeters (mm). Range: 0 … 32767 Default: 0.0 |
kf85_mean_error_height |
The mean error in the Y coordinate of the point measured in mm. Range: 0 … 32767 Default: 0.0 |
kf85_text_string |
The optional text string associated with the point. Range: maximum 20 character string Default:empty string |
kf85_rotation |
The rotation of the text, measured in degrees counterclockwise from horizontal. (Note that the value actually stored in the file is converted from this into GON.) Range: any real number Default: 0.0 |
kf85_text_height |
The height of the text measured in mm. Range: any real number Default: 1 |
kf85_text_width |
The width of the text measured in mm. Range: any real number Default: 1.0 |
kf85_text_pos_x |
The X coordinate of the point’s text. Range: any real number Default: 0.0 |
kf85_text_pos_y |
The Y coordinate of the point’s text. Range: any real number Default: 0.0 |
kf85_text_position |
The justification of the point’s text. Specifically, the point on the text’s bounding box where the position is given, as shown below. 0 is an unspecified position. If the value is 0, then the other values relating to the point’s text must also be 0. Range: 0 ... 9 Default: 7 |
kf85_symbol_rotation |
The rotation of the symbol, measured in degrees counterclockwise from horizontal. (Note that the value actually stored in the file is converted from this into GON.) Range: any real number Default: 0.0 |
kf85_symbol_height |
The height of the symbol measured in mm. Range: any real number Default: 1.0 |
kf85_symbol_width |
The width of the symbol measured in mm. Range: any real number Default: 1.0 |
Lines
kf85_type: kf85_line
KF85 line features contains 2D or 3D coordinates, as well as an internal name and a text string. This text also has a position, justification, rotation, width, and height.
When reading a KF85 line; its vertices can be defined in two ways. They can be defined by their x,y (and z) co-ordinates. Or they can be defined by specifying the internal_name of another point in the same file. The KF85 Reader supports both methods. The resulting line is the same regardless of which way it is defined.
Attribute Name |
Contents |
kf85_internal_name |
An alphanumeric code for the feature. Range: maximum 9 character string Default:empty string |
kf85_text_string |
The optional text string associated with the line. Range: maximum 20 character string Default:empty string |
kf85_rotation |
The rotation of the text, measured in degrees counterclockwise from horizontal. (Note that the value actually stored in the file is converted from this into GON.) Range: any real number Default: 0.0 |
kf85_text_height |
The height of the text measured in mm. Range: any real number Default: 1.0 |
kf85_text_width |
The width of the text measured in mm. Range: any real number Default: 1.0 |
kf85_text_pos_x |
The X coordinate of the line’s text, relative to the midpoint of the line. Range: any real number Default: 0.0 |
kf85_text_pos_y |
The Y coordinate of the line’s text, relative to the midpoint of the line. Range: any real number Default: 0.0 |
kf85_text_position |
The justification of the line’s text. Specifically, the point on the text’s bounding box where the position is given, as shown below. 0 is an unspecified position. If the value is 0, then the other values relating to the line’s text must also be 0. Range: 0 ... 9 Default: 7 |
Arcs
kf85_type: kf85_arc
Arc features are partial ellipse boundaries with two additional angles that control the portion of the ellipse boundary that is drawn.
Tip: The ArcStroker transformer can be used to convert an arc to a linestring. This is useful for storing Arcs in systems that do not support them directly.
Attribute Name |
Contents |
kf85_primary_axis |
The length of the semi-major axis in ground units. Range: Any real number > 0 Default: No default |
kf85_secondary_axis |
The length of the semi-minor axis in ground units. Range: Any real number > 0 Default: No default |
kf85_rotation |
The rotation of the major axis. The rotation is measured in degrees counterclockwise up from horizontal. Range: -360.0..360.0 Default: 0 |
kf85_start_angle |
How FME calculates start_angle and sweep_angle Range: 0.0..360.0 Default: No default |
kf85_sweep_angle |
How FME calculates start_angle and sweep_angle Range: Any real number > 0 Default: No default |
kf85_orientation |
The orientation of the arc. As the sweep angle is always returned as positive, this field can be used to determine the original orientation of the arc. Range: clockwise | counterclockwise Default: none |
Text
kf85_type: kf85_text
KF85 text features contain 2D coordinates and a text string, along with the justification, rotation, height, width, font, and distance between lines of the text.
Attribute Name |
Contents |
kf85_internal_name |
An alphanumeric code for the feature. Range: maximum 9 character string Default: empty string |
kf85_text_string |
The text string. Range: maximum 62 character string Default: empty string |
kf85_rotation |
The rotation of the text, measured in degrees counterclockwise from horizontal. (Note that the value actually stored in the file is converted from this into GON.) Range: any real number Default: 0.0 |
kf85_text_height |
The height of the text measured in mm. Range: any real number Default: 1.0 |
kf85_text_width |
The width of the text measured in mm. Range: any real number Default: 1.0 |
kf85_text_position |
This is the justification of the line’s text. Specifically, the point on the text’s bounding box where the position is given, as shown below. 0 is an unspecified position. If the value is 0, then the other values relating to the line’s text must also be 0. Range: 0 ... 9 Default: 7 |
kf85_text_spacing |
The spacing between the text lines. Range: any real number Default: 1.0 |
kf85_font |
The font type for the text. There is no documented standard for this field and, therefore, it must be interpreted by the user. Range: maximum 2 character string Default: empty string |
Common Info
kf85_type: kf85_common_info
KF85 common info features result from common info records that can occur anywhere within a KF85 file. These features contain no geometry. They are used to store an ID code and string information not associated with any geographic location within the KF85 file.
Attribute Name |
Contents |
kf85_common_code |
The ID code present on the common info. Range: maximum 3 digit integer Default: 0 |
kf85_common_string |
The text string present on the common info. Range: maximum 62 character string Default: empty string |
Comment
kf85_type: kf85_comment
KF85 comment features result from comment records that can occur anywhere within a KF85 file. These features contain no geometry. They are used to store string information not associated with any geographic location within the KF85 file.
Attribute Name |
Contents |
kf85_comment_string |
The text string present on the comment. Range: maximum 62 character string Default: empty string |
Symbol
kf85_type: kf85_symbol
KF85 symbol features contain 2D coordinates to indicate the location of a symbol. The symbol’s height, width, and rotation are also indicated.
Attribute Name |
Contents |
kf85_rotation |
The rotation of the symbol, measured in degrees counterclockwise from horizontal. (Note that the value actually stored in the file is converted from this into GON.) Range: any real number Default: 0.0 |
kf85_symbol_height |
The height of the symbol measured in mm. Range: any real number Default: 1.0 |
kf85_symbol_width |
The width of the symbol measured in mm. Range: any real number Default: 1.0 |