Pitney Bowes MapXtreme User Manual

Page 299

Advertising
background image

Chapter 16: Spatial Objects and Coordinate Systems

Geometries

MapXtreme v7.1

306

Developer Guide

CoordSys longLatNad83;
CoordSysFactory coordSysFactory = new CoordSysFactory();
longLatNad83=coordSysFactory.CreateLongLat

(MapInfo.Geometry.DatumID.NAD83);

MultiPoint multiPointGeometry = new MultiPoint

(longLatNad83, pointArray);

where pointArray is an array of DPoints.

MultiCurve

The MultiCurve class is derived from the FeatureGeometry class, and contains a possibly
disconnected set of Curves. These Curves may interact in many ways; they can be connected or
disconnected, and can intersect or overlap each other.

Although the Geometry object model supports multiple CurveSegments for each Curve, the current
version of the MapInfo engine is limited to having one CurveSegment per Curve that is part of a
FeatureGeometry (i.e., MultiCurve). This limitation derives from the current TAB file format, which
remains largely unchanged for this version of MapInfo. Hence, the limitation concerns
FeatureGeometry objects only.

Upon construction of a MultiCurve where the constructor takes a Curve or Curves which may
contain multiple CurveSegments per Curve, the actual Curves contained in the constructed
MultiCurve are altered to always contain only one CurveSegment per Curve. Currently, the only
types of CurveSegments that exist are LineStrings. Curves containing multiple LineString
CurveSegments have the LineStrings combined to form one large LineString.

Upon completion of editing (signified by calling EditingComplete(), any Curve which was added to
the MultiCurve and contained multiple CurveSegments is altered in a similar manner as noted above
to produce Curves containing single CurveSegments.This limitation, of Curves contained in
MultiCurves always containing only a single CurveSegment, should be removed in future versions of
MapInfo as new types of CurveSegments are introduced (e.g., EllipticalArcs, CircularArcs, and
Splines), and the TAB file format is altered. Also, during construction and on completion of editing,
any empty Curves are automatically removed from the MultiCurve.

Line objects made up of two points that exist in MapInfo TAB files become MultiCurve
FeatureGeometry objects. They can be detected as two-point Lines by using the IsLegacyLine
property of the MultiCurve:

See the Developer Reference for a code example of creating and editing a MultiCurve object.

Measure Values on MultiCurves

The Geometry object model supports M and Z values on FeatureGeometry objects. M, or measure
values, hold data at the nodes of MultiCurve objects that describes anything you wish to map and
analyze, including physical assets, conditions or events. The M values play an important role in
linear referencing and dynamic segmentation. For more information, see

Chapter 21: Linear

Referencing

.

Advertising