Coordinate systems, Styles, Coordinate systems styles – Pitney Bowes MapXtreme User Manual

Page 507

Advertising
background image

Appendix D: Extensible Data Providers

Advanced Topics / Important Considerations

MapXtreme v7.1

514

Developer Guide

This processing time can be expensive. It is necessary for interactive editing operations where
moving a single node may make an interior polygon suddenly become an exterior polygon. Data
providers typically already know that their data has been formatted and stored in a way that does not
require this expensive processing every time a geometry is built.

For large numbers of geometries and/or complex geometries with large numbers of nodes,
understanding and exploiting these geometry options will be critical for implementing a performant
data provider.

Coordinate Systems

Geometry columns in MapXtreme must return FeatureGeometry objects in the same coordinate
system. Different column and different tables may use different coordinate systems but all geometry
values returned from a single column in a table must be in the same coordinate system and must
match the coordinate system that is supplied by the table's metadata through the
IGeometryColumn.CoordSys property.

Most data providers will determine the coordinate system through some metadata that is stored and
managed with the data. However, if that information is not available, the data provider can request
that the suer supply the coordinate system as part of the table's definition.

Coordinate systems can be constructed through the CoordSysFactory instance which is available
fro the Session.CoordSysFactory property. There is no need to create new coordinate system
objects for every FeatureGeometry object returned by the data provider. The coordinate system
object returned by the IGeometryColumn interface can be referenced directly by each
FeatureGeometry object. FeatureGeometry objects supplied to the data provider for insert and
update operations will be transformed to the column's coordinate system by MapXtreme before
handing to the data provider.

Styles

MapXtreme's Extensible Data Provider model supports styles for feature geometries in two ways:

as a style property that is applied to all features in the table

as a style attribute column, which contains style information on a per-feature basis

The MapInfo.Data.Table that is opened from an extensible data provider table will have a style
column, provided there is at least one geometry column (mappable table). The data for that column
comes from either a style column in the extensible data provider table, or if there is not one, from the
default style specified on the IGeometryColumn.DefaultStyle property of the geometry column in the
data provider table.

ITableMetadata.Columns

Style information is communicated via the column definitions provided in the
MapInfo.Data.Provider.ITableMetadata interface. A style attribute column is an IColumn instance
from ITableMetadata.Columns whose DataType property is assigned the value MIDbType.Style. A
style attribute column is only necessary when two or more features within the table may contain
distinct style values.

Advertising