1SPRS, Vol-34, Part 2W2, “Dynamic and Multi-Dimensional GIS”, Bangkok, May 23-25, 2001
321
these components has at least two types of functions. One is for
input and another for output. The number of these functions
varies from format to format according to its geometric model.
For example, the VCT format defines only three types of
geometric objects. The ActiveX Control GeoVCT provides only
three functions for input point, line and polygon respectively and
three functions for output the same three types of geometric type.
In order to translate non-geometric information of geometric
objects, we designed another component called
GeoExchangeCenter to incorporate the exchange of non
geometric information in the process. This component manages
a dictionary which contains all the information needed for original
object being transformed to new object. For example, if both the
DXF layers Provincial Road and National Road are required to
transform to a new feature class High Road in VCT format, this
component will have an instance contains two dictionary items.
One is Provincial Road to High Road and another is National
Road to High Road. For another example, if there are two
dictionary items: Feature Point to Label Point and Feature Point
to Feature Point, the DXF layer Feature Point will be transformed
into two feature classes, namely Label Point and Feature Point.
Fig.1 shows the logical relationship among all these components.
Fig. 1 Relationship among data exchange components
4. IMPLEMENTATION
Microsoft VC++ 5.0 or later version provides multiple choices for
users to develop ActiveX Control. The most convenient choice is
utilizing MFC and following the guidance of the MFC ActiveX
Control Wizard tool. The MFC ActiveX Control Wizard tool can
automatically generate codes of the framework of an ActiveX
Control.
The remained and core work is to reform this framework into
designed component by adding methods and attributes and
message processing functions. Attributes are public data of
component and container referring the component. Attributes are
used to describe features of it and pass these data to container.
Container recognizes the state of referred component by reading
these attributes. If permitted by the component, the container
can also change the value of these attributes in order to
customize the behavior of the component. Take GeoDXF as an
example, most of the attributes are designed to reflect the
fundamental parameters of DXF file format. When exporting data
from DXF format, they are important information for correctly
interpret other information in the data file. When importing data
to DXF format, they are important information for correctly write
geometric information into the file.
Methods of the component are the interface functions provided
to the container to command the component. This part is the
core of the GIS data exchange components. External
applications are designed as a container to call these functions
to fulfill data reading and writing task.
As a component, it has also message processing functions to
response external events such as mouse-down and mouse-up.
In order to reach the maximum flexibility, these data exchange
components are designed without visual interface. The
application program that refers to these components should
provide the end-user’s interface on request.
5. EXAMPLES
In VC++6.0, we have developed a series of ActiveX Controls
including GeoDXF, GeoDwg, GeoVCT, GeoFile, GeiMif,
GeoShape. GeoFile is for reading data from and writing data to
GeoStar File format. Other ActiveX Controls are for reading and
writing of data format of what their names imply.
Fig.2 A Dwg data view of sample data set
Making use of these ActiveX Controls, we implemented several
application systems for data transformation in VB6.0. Fig.2 and
Fig.3 show an example of sample data of DWG format
transformed to GeoStar file format. Usually we develop this kind
of application system on end-user’s demands directly based on
ActiveX Controls needed. Or we release these ActiveX Controls
and the end-user develops his own system by using these
ActiveX Controls needed.
Fig.3 The GeoStar data view of sample data set
transformed from Dwg
6. CONCLUSIONS
Data preparation is a hard task in making a GIS working
effectively. Especially during the start phase of constructing a
GIS, most of the work is to collect data and input them in the
database. A flexible data transformation program is of significant
importance. COM and its ActiveX technique provide an