Pitney Bowes MapXtreme User Manual

Page 300

Advertising
background image

Chapter 16: Spatial Objects and Coordinate Systems

Geometries

MapXtreme v7.1

307

Developer Guide

Curve Sort Order

The order of the Curves in a MultiCurve may be altered during construction, as compared to the
array of Curves passed to the constructor, and upon completion of editing. Due to this, plus the
removal of empty Curves, and limitations in the current implementation, any references to Curves
contained in a MultiCurve prior to and during editing may no longer be valid after editing is
completed (i.e., after EditingComplete() is called). If these objects are referenced, they throw an
ObjectDisposedException. After editing, the parts of a FeatureGeometry should be reacquired to
obtain a valid reference.

Curve sort order becomes an important factor when you are calling some of the linear referencing
operations on a MultiCurve. MapXtreme includes the MapInfo.LinearReferencing.ICurveSorter
interface to handle the sort order of individual curves. If no sort order is specified, MapXtreme
returns the longest curve first, while the remaining curves are returned in an unknown order. When
using CalculateMissingMeasures on an unordered MultiCurve, for example, MapXtreme could
calculate the wrong M values for a node based on its position in the MultiCurve. Providing the
correct sort order would eliminate that problem.

For more information, see

Curve Order

.

LineStrings

A LineString is a directed collection of sequential points that are connected in a linear manner. Any
two consecutive points in the LineString are connected by a straight line. LineStrings can be part of
Curves or Rings, or they can exist as a stand-alone Geometry. LineStrings that are part of Curves or
Rings inherit the coordinate system of their container. Stand-alone LineStrings can be empty. A
LineString that is contained in a Curve or Ring that is not in Edit Mode cannot be empty, and must
contain at least two points.

See the Developer Reference for a code example.

Rectangle

A Rectangle Geometry contains two points representing the lower left hand and upper right hand
corners of the Rectangle. The other two points are implied. Rectangles are always axis aligned, and
always appear to be rectangular in shape, regardless of the coordinate system, and are not
projected. They do not contain any warping that may be represented by the coordinate system.

See the Developer Reference for a code example.

RoundedRectangle

A Rounded Rectangle behaves exactly like a Rectangle but is displayed with the corners appearing
rounded as a display-time only feature. The corners display as quarter circles and the radius of the
circle is controlled by the CornerRadius parameter.

Because RoundedRectangle objects, like rectangle objects, are defined by two points and always
display axis-aligned and unprojected, they are designed to be used primarily for cosmetic display
purposes. While many operations are available using Rectangle objects (e.g., Combine), internally,
a MultiPolygon copy of the Rectangle is used for these operations. The resulting MultiPolygon

Advertising