当前位置:首页 >> 电力/水利 >>

空间数据转换模块GDC1.0映射文件


空间数据转换模块

——GDC1.0 映射文件
2006

武汉武大吉奥信息工程技术有限公司

责任与担保
武汉武大吉奥信息工程技术有限公司对所有软件产品的销售合同或契约中已经说明的担保责任将 不再阐述,简言之,本手册或手册中的内容将被认为是担保责任的更新。 对于本手册和本软件的更新或改变的有关信息

, 恕不提供, 武汉武大吉奥信息工程技术有限公司不 对此承担义务。 本手册中讨论的软件产品受有关协议保护,对于使用或者拷贝也必须根据有关许可协议的条款。 对于在武汉武大吉奥信息工程技术有限公司其分销商没有声明支持的软硬件上使用本手册所讨论 的产品,武汉武大吉奥信息工程技术有限公司及其分销商将不承担责任。

商标
吉奥之星?、GeoStar?是武汉武大吉奥信息工程技术有限公司的注册商标。GeoImager?、GeoTIN?、 GeoGrid?、 GeoImageDB?、GeoSurf?是武汉武大吉奥信息工程技术有限公司的商标。其它商标或者 产品名称为相关厂商所有。

版权声明
版权所有? 2004-2006 保留所有权利 包括软件产品、文件格式、声像资料等,或许在软件产品使用许可协议的允许范围内使用的软件产 品, 所有包含武汉武大吉奥信息工程技术有限公司及其合作伙伴的商业机密等, 均受到有关版权和 商业机密法律保护。没有书面证明不得随意提供给第三方。 武汉武大吉奥信息工程技术有限公司 传真:027-87196133 Email:techsupport@geostar.com.cn Web:www.geostar.com.cn 中国·武汉 手册名称:GDC 映射文件 手册最后修订时间: 2006 年 2 月 武汉武大吉奥信息工程技术有限公司

GDC 映射文件

目录

目 录
第一章 关于本手册............................................................................................................................................ 1 1.1 预期读者 ................................................................................................................................................... 1 1.2 更多信息 ................................................................................................................................................... 1 1.3 如何联系我们 ........................................................................................................................................... 1 第二章 映射文件设计........................................................................................................................................ 3 2.1 概述 ........................................................................................................................................................... 3 2.2 映射文件模式 ........................................................................................................................................... 5 2.2.1 命名空间............................................................................................................................................ 5 2.2.2 包含与格式有关的模式 .................................................................................................................... 5 2.2.3 根元素GDC_MappingFile................................................................................................................. 6 2.2.4 映射文件标识...................................................................................................................................11 2.2.5 宏定义.............................................................................................................................................. 12 2.2.6 动态宏定义...................................................................................................................................... 13 2.2.7 包含其它的映射文件 ...................................................................................................................... 14 2.2.8 原数据格式标识和目标数据格式标识 .......................................................................................... 14 2.2.9 原数据集和目标数据集 .................................................................................................................. 15 2.2.10 读数据指示.................................................................................................................................... 15 2.2.11 写数据指示 .................................................................................................................................... 16 2.2.12 坐标转换........................................................................................................................................ 17 2.2.13 坐标系统、基准、椭球、单位定义 ............................................................................................ 18 2.2.14 比例尺............................................................................................................................................ 23 2.2.15 读数据参数.................................................................................................................................... 23 2.2.16 写数据参数.................................................................................................................................... 25 2.2.17 转换变量........................................................................................................................................ 26 2.2.18 转换规则说明................................................................................................................................ 29 2.2.19 属性结构定义................................................................................................................................ 35 2.3 映射规则的匹配 ..................................................................................................................................... 37 2.4 映射文件中的函数 ................................................................................................................................. 39 第三章 映射文件编辑...................................................................................................................................... 41 3.1 创建映射文件 ......................................................................................................................................... 41 3.1.1 使用XMLSPY工具新建映射文件.................................................................................................. 41 3.1.2 通过GDC工具生成映射文件模板.................................................................................................. 42 3.2 映射文件编辑 ......................................................................................................................................... 43 3.2.1 编辑映射规则.................................................................................................................................. 44 3.2.2 编辑属性结构.................................................................................................................................. 45 3.2.3 在应用程序中编辑映射文件 .......................................................................................................... 45 第四章 映射文件示例...................................................................................................................................... 47

1

GDC 映射文件

第一章

关于本手册

第一章 关于本手册
映射文件定义了数据转换过程中的一系列转换规则,规定了从原数据集到目标数据集的映射关系。 使用 GDC 进行高级数据转换时需要映射文件。 本手册介绍了映射文件的设计、 编辑和示例。 关于在数据转换时如何使用映射文件, 请参考 《GDC 开 发帮助》和《GDC Objects 应用开发指南》。 本手册的示例使用 XML 文档。关于 XML 模式文档和实例文档,建议使用 Altova 公司的 XMLSPY?工 具查看、编辑。

1.1 预期读者
本手册适用于那些需要使用 GDC 进行比较复杂的数据转换的技术人员,包括数据管理人员,相关 软件开发人员,GIS 数据操作人员等。

1.2 更多信息
关 于 更 多 的 GDC 映 射 文 件 的 支 持 信 息 , 请 参 考 下 列 文 档 ( 这 些 文 档 可 以 从 网 站 www.geostar.com.cn获得): 《GDC 开发帮助》 《GDC Objects 参考手册》 《GDC Objects 应用开发指南》 《GDC 读写参考手册》 《GeoStar5.0 技术手册》 《组件类别开发指南》

1.3 如何联系我们

1

第一章

关于本手册

GDC 映射文件

武汉武大吉奥信息工程技术有限公司网站包含最新的产品消息,示例,错误修正等,请注意浏 览www.geostar.com.cn中关于GDC产品的消息。

从哪里得到技术支持
为了获得最新的GeoStar产品信息,您可以访问吉奥公司的网址 www.geostar.com.cn 或者在中国境内,请拨打电话: 027-87196134 (35/36/37/39/40/41) 或者传真至: 027-87196133 或者发送电子邮件至: techsupport@geostar.com.cn

从哪里得到有关文档和软件产品的信息
与本软件产品有关的文档或许已更新,请征询最近的吉奥公司的分公司或代理 商,或者www.geostar.com.cn中关于GDC Objects产品的消息。 或拨打:027-87196134 (35/36/37/39/40/41) 或者传真至:027-87196133 或者发送电子邮件至:market@geostar.com.cn

从哪里得到有关培训的信息
请拨打电话:027-87196134 (35/36/37/39/40/41) 或者传真至:027-87196133 或者发送电子邮件至:market@geostar.com.cn

2

GDC 映射文件

第二章

GDC 映射文件

第二章 映射文件设计
在数据转换的过程中, 用户希望通过某种手段来达到控制生成目标数据的目的, 如指定目标数据地 物类名,增加或删除属性字段,比较属性值,更改数据几何类型,数据合并,数据分解等。这种需 求是通过映射文件来实现的。 映射文件中的规则实际上定义了从一种数据模型到另一种数据模型的 映射关系, 如下图所示。

2.1 概述
映射文件定义了数据转换过程中的一系列转换规则,规定了从原数据集到目标数据集的映射关系。 映射文件在数据转换过程中的位置如下图所示:

这个从原数据集到目标数据集的转换过程可以分为三个子过程: 读数据子过程
3

第二章

GDC 映射文件

GDC 映射文件

读数据模块负责根据映射文件中的读数据指示过滤原数据集, 将满足读数据指示条件的数据转换为 中间数据存储在数据库; 转换子过程 将中间数据根据映射文件中的转换规则进行处理与转换,结果仍以中间数据形式表示; 写数据子过程 将中间数据根据映射文件中的写数据指示过滤,将满足写数据指示条件的数据输出为目标数据集。 这三个子过程可以由用户在进行开发时控制, 从而开发出灵活的数据转换工具或应用系统, 或将数 据转换功能嵌入用户的应用系统中。 映射文件在数据转换过程中扮演了重要的角色。通过使用映射文件,可以达到如下目标: 可以根据用户不同的应用需求设计不同内容的映射文件,从而满足多种多样的应用需求, 增加了系统的灵活性和扩展性; 使从原来简单的数据转换过渡到复杂的语义转换成为可能; 通过映射文件和中间数据模型统一了数据转换模型,使得用户在面对繁多的 GIS 系统和数据 格式时能够简单容易地使用数据转换功能。 映射文件设计为 XML 文件,文件扩展名为“.gdc.xml”(一般命名形式为:XXX2XXX.gdc.xml, 其中 XXX 为格式标志)。映射文件逻辑上由读数据指示、写数据指示和转换规则三部分组成,如 下图所示。

本章主要介绍: 映射文件模式; 映射规则的匹配;

4

GDC 映射文件

第二章

GDC 映射文件

映射文件中的函数。

2.2 映射文件模式
模式文档名为 GDCMappimgFile.xsd。它定义了映射文件中的元素、属性、类型和结构。

2.2.1 命名空间
目标命名空间定义为 http://www.geostar.com.cn/gdc,如下所示: <xs:schema targetNamespace="http://www.geostar.com.cn/gdc"

xmlns="http://www.geostar.com.cn/gdc" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">

2.2.2 包含与格式有关的模式
对于不同的数据格式,读数据参数和写数据参数模式是不同的。模式文档 GDCMappimgFile.xsd 通过包含与格式有关的模式可以扩展地(当有新的格式增加时,模式文档 GDCMappimgFile.xsd 应作相应的改变)定义读数据参数和写数据参数,目前包含的与格式有关的模式如下: <xs:include schemaLocation="CADReaderParameter.xsd"/> <xs:include schemaLocation="E00ReaderParameter.xsd"/> <xs:include schemaLocation="MIFReaderParameter.xsd"/> <xs:include schemaLocation="SHPReaderParameter.xsd"/> <xs:include schemaLocation="GWSReaderParameter.xsd"/> <xs:include schemaLocation="VCTReaderParameter.xsd"/> <xs:include schemaLocation="CGMLReaderParameter.xsd"/> <xs:include schemaLocation="GeoStarReaderParameter.xsd"/> <xs:include schemaLocation="CADWriterParameter.xsd"/> <xs:include schemaLocation="E00WriterParameter.xsd"/> <xs:include schemaLocation="MIFWriterParameter.xsd"/>
5

第二章

GDC 映射文件

GDC 映射文件

<xs:include schemaLocation="SHPWriterParameter.xsd"/> <xs:include schemaLocation="GWSWriterParameter.xsd"/> <xs:include schemaLocation="VCTWriterParameter.xsd"/> <xs:include schemaLocation="CGMLWriterParameter.xsd"/> <xs:include schemaLocation="GeoStarWriterParameter.xsd"/> 每种数据格式的读数据参数和写数据参数模式文件名统一命名为 XXXReaderParameter.xsd 和 XXXWriterParameter.xsd,其中,XXX 为格式标志。具体的内容模型请参考《GDC 读写参考手 册》。

2.2.3 根元素 GDC_MappingFile
映射文件文档实例的根元素必须是“GDC_MappingFile”,下面分别包含可选的元素(这些元素是 无序的): MAPPING_FILE_ID:映射文件标识; GDC_MINIMUM_BUILD:可以运行该映射文件的最早 Build 版本号; COORDINATE_SYSTEM_DEF:坐标系统定义; UNIT_DEF:单位定义; DATUM_DEF:基准定义; ELLIPSOID_DEF:参考椭球定义; MACRO:宏定义; DEFAULT_MACRO:缺省宏定义; DYNAMIC_MACRO:动态宏定义; INCLUDE:包含文件说明; READER_TYPE:原数据格式标识; WRITER_TYPE:目标数据格式标识; SOURCE_DATASET:原数据集; DESTINATION_DATASET:目标数据集;

6

GDC 映射文件

第二章

GDC 映射文件

READER_DIRECTIVE:读数据指示; WRITER_ DIRECTIVE:写数据指示; COORDINATE_SYSTEM:坐标转换说明; COORDINATE_UNIT:坐标单位说明; MAP_SCALE:比例尺说明; GDC_DEBUG:调试版说明; GUI:用户界面元素; LOG:日志文件说明; VARIABLE:转换变量申明; READER_PARAMETER:读数据参数; WRITER_PARAMETER:写数据参数; FACTORY_DEF:要素厂定义; GDC_RULE:转换规则说明; ATTRIBUTESTRUCT_DEF:属性结构定义; 根元素 GDC_MappingFile 的模式申明如下: <xs:element name="GDC_MappingFile" abstract="false"> <xs:annotation> <xs:documentation>GDC 映射文件模式</xs:documentation> </xs:annotation> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="MAPPING_FILE_ID" type="xs:string"

nillable="false" minOccurs="0"> <xs:annotation> <xs:documentation>映射文件标识,如 DWG to SHP Release 1.0 2005-03-08 for XXX Project</xs:documentation>

7

第二章

GDC 映射文件

GDC 映射文件

</xs:annotation> </xs:element> <xs:element name="GDC_MINIMUM_BUILD" type="xs:integer"

nillable="false" minOccurs="0"> <xs:annotation> <xs:documentation>可以运行该映射文件的最早 Build 版本号, 缺省为 100。</xs:documentation> </xs:annotation> </xs:element> <xs:element type="CoordSysType" minOccurs="0"/> <xs:element name="UNIT_DEF" type="UnitType" minOccurs="0"/> <xs:element minOccurs="0"/> <xs:element minOccurs="0"/> <xs:element name="MACRO" type="MacroType" minOccurs="0"> <xs:annotation> <xs:documentation>宏定义可以避重复引用较复杂的文本, 从而简 化文件,使映射文件轻便,增加文件可读性。也可以通过引入符号常量来避免硬编码值、路径等, 从而便于维护。 宏的扩展根据符号$(Macro_Name)来进行,括号内为宏的名称。如果宏的扩展不成功,说明映射 文件有错误。</xs:documentation> </xs:annotation> </xs:element> <xs:element name="DEFAULT_MACRO" type="MacroType" name="ELLIPSOID_DEF" type="EllipsoidType" name="DATUM_DEF" type="DatumType" name="COORDINATE_SYSTEM_DEF"

nillable="false" minOccurs="0" maxOccurs="unbounded"> <xs:annotation>

8

GDC 映射文件

第二章

GDC 映射文件

<xs:documentation>缺省的宏定义给宏定义。当宏有定义时,缺省 的宏定义不起作用。</xs:documentation> </xs:annotation> </xs:element> <xs:element minOccurs="0"> <xs:annotation> <xs:documentation>动态宏定义。 所谓动态宏是指需要在程序运行 (数据转换)过程中根据获得的值动态进行宏替代的宏。动态宏在映射文件中不进行宏替代。宏的 扩展根据符号 d$(Macro_Name)来进行,括号内为宏的名称。如果宏的扩展不成功,相应的值缺 省为空。</xs:documentation> </xs:annotation> </xs:element> <xs:element nillable="false" minOccurs="0"> <xs:annotation> <xs:documentation>通过包含其它的映射文件可以使映射文件设 计模块化,便于映射文件的重用,也便于映射文件的维护。被包含的映射文件的全部内容被嵌入到 包含它的主映射文件中。映射文件的包含可以嵌套,嵌套的次数没有限制,但不能循环包含。包含 的映射文件名可以是相对路径名,也可以是绝对路径名。如果是相对路径名,则被包含的映射文件 应该与包含它的主映射文件放在同一路径。Include 的内容不能为空。GUI 指示只有在主映射文 件中有效,在其它被包含的映射文件中 GUI 指示将被忽略。</xs:documentation> </xs:annotation> </xs:element> <xs:element name="READER_TYPE" type="xs:NMTOKEN" name="INCLUDE" type="xs:string" name="DYNAMIC_MACRO" type="MacroType"

nillable="false" minOccurs="0"/> <xs:element name="WRITER_TYPE" type="xs:NMTOKEN"

nillable="false" minOccurs="0"/> <xs:element name="SOURCE_DATASET" type="xs:string"

nillable="false" minOccurs="0"/>
9

第二章

GDC 映射文件

GDC 映射文件

<xs:element

name="DESTINATION_DATASET"

type="xs:string"

nillable="false" minOccurs="0"/> <xs:element type="ReaderDirectiveType" minOccurs="0"/> <xs:element type="WriterDirectiveType" minOccurs="0"/> <xs:element name="COORDINATE_SYSTEM" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0"/> <xs:element name="DESTINATION" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="MAP_SCALE" type="xs:long" minOccurs="0"/> <xs:element name="GDC_DEBUG" type="xs:string" name="SOURCE" type="xs:string" name="WRITER_DIRECTIVE" name="READER_DIRECTIVE"

nillable="false" minOccurs="0"/> <xs:element name="GUI" type="GUIType" minOccurs="0"/> <xs:element name="LOG" type="LogFileType" minOccurs="0"/> <xs:element minOccurs="0"/> <xs:element type="ReaderParameterType" minOccurs="0"/> <xs:element type="WriterParameterType" minOccurs="0"/> <xs:element name="FACTORY_DEF" type="FactoryType" name="WRITER_PARAMETER" name="READER_PARAMETER" name="VARIABLE" type="VariableType"

10

GDC 映射文件

第二章

GDC 映射文件

minOccurs="0"> <xs:annotation> <xs:documentation>地物厂定义。 地物厂是一组作用于地物类上的 函数的集合。它用于对地物类中的地物集合进行一系列的转换操作。</xs:documentation> </xs:annotation> </xs:element> <xs:element minOccurs="0"/> <xs:element type="AttrStructType" minOccurs="0"/> </xs:choice> </xs:complexType> </xs:element> 下面对一些主要元素分别说明。 name="ATTRIBUTESTRUCT_DEF" name="GDC_RULE" type="GDCRuleType"

2.2.4 映射文件标识
映射文件标识的目的是使用户明确当前使用的是哪个映射文件。这样,当映射文件很多(不同的版 本、工程会导致不同的映射文件)时,用户可以根据标识方便选择正确的映射文件。标识用一个任 意的字符串描述。标识信息应该在日志文件中显示。模式定义如下: <xs:element name="MAPPING_FILE_ID" type="xs:string" nillable="false" minOccurs="0"> <xs:annotation> <xs:documentation>映射文件标识,如 DWG to SHP Release 1.0 2005-03-08 for XXX Project</xs:documentation> </xs:annotation> </xs:element> 可以运行的最早 Build 版本号

11

第二章

GDC 映射文件

GDC 映射文件

为了保证新版本的映射文件不会被老版本的 GDC Objects 使用,在映射文件中可以指定运行该 映射文件最早的 GDC Objects Build 版本号。该版本号用一个整型数描述,当前缺省为 100。 版本号信息应该在日志文件中显示。模式定义如下: <xs:element name="GDC_MINIMUM_BUILD" type="xs:integer"

nillable="false" minOccurs="0"> <xs:annotation> <xs:documentation>可以运行该映射文件的最早 Build 版本号,缺省为 100。</xs:documentation> </xs:annotation> </xs:element>

2.2.5 宏定义
宏定义可以避重复引用较复杂的文本,从而简化文件,使映射文件轻便,增加文件可读性。也可以 通过引入符号常量来避免硬编码值、路径等,从而便于维护。 宏的扩展根据符号$(Macro_Name)来进行,括号内为宏的名称。如果宏的扩展不成功,说明映射 文件有错误。 模式定义如下: <xs:element name="MACRO" type="MacroType" minOccurs="0"> <xs:complexType name="MacroType"> <xs:annotation> <xs:documentation>宏定义。引入宏定义的目的有两个:一是避免映射文件中相同内 容的重复,一是引入符号常量来避免硬编码。映射文件提供了简单的文本替换机制。 宏定义可以嵌套,但宏定义不能直接或间接引用自己。宏定义可以在映射文件中重新定义。一个宏 定义的有效范围为从定义开始到它重新定义之前或到文件结束。 宏的名称中不能有空格。 宏的内容 不允许为空。</xs:documentation> </xs:annotation> <xs:attribute name="Key" type="xs:NMTOKEN" use="required"/> <xs:attribute name="Value" type="xs:string" use="required"/>

12

GDC 映射文件

第二章

GDC 映射文件

</xs:complexType>

2.2.6 动态宏定义
所谓动态宏是指需要在程序运行(数据转换)过程中根据获得的值动态进行宏替代的宏。动态宏在 映射文件中不进行宏替代。宏的扩展根据符号 d$(Macro_Name)来进行,括号内为宏的名称。如果 宏的扩展不成功,相应的值缺省为空。 模式定义如下: <xs:element name="DYNAMIC_MACRO" type="MacroType" minOccurs="0"> 下面是一个使用动态宏的文档示例。 <?xml version="1.0" encoding="GB2312"?> <GDC_MappingFile xmlns="http://www.geostar.com.cn/gdc"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.geostar.com.cn/gdc CMappingFile.xsd"> <DYNAMIC_MACRO Key="GC0002" Value="2360200"/> <DEFAULT_MACRO Key="GC0004" Value="2240000"/> <GDC_RULE> <DESTINATION> <FeatureClassName>DJK_JJZ</FeatureClassName> <AttributePair> <AttributeName>CODE</AttributeName> <AttributeValue>d$(%AUTOCAD_BLOCKNAME)</AttributeValue> </AttributePair> </DESTINATION> </GDC_RULE> </GDC_MappingFile> 上面例子表示目标地物类 DJK_JJZ 中的地物的属性字段 CODE 的属性值的取值方式为: 先从对应
13

..\GDCMappingFile\GD

第二章

GDC 映射文件

GDC 映射文件

的原地物的属性字段 AUTOCAD_BLOCKNAME 取得属性值,再进行动态宏替代,即如果原地物 的属性字段 AUTOCAD_BLOCKNAME 的属性值为 GC0002,则目标地物的属性值为 2360200。 如果不能进行动态宏替代,则目标地物的属性值为空。

2.2.7 包含其它的映射文件
通过包含其它的映射文件可以使映射文件设计模块化, 便于映射文件的重用, 也便于映射文件的维 护。被包含的映射文件的全部内容被嵌入到包含它的主映射文件中。映射文件的包含可以嵌套,嵌 套的次数没有限制, 但不能循环包含。 包含的映射文件名可以是相对路径名, 也可以是绝对路径名。 如果是相对路径名,则被包含的映射文件应该与包含它的主映射文件放在同一路径。Include 的内 容不能为空。GUI 指示只有在主映射文件中有效,在其它被包含的映射文件中 GUI 指示将被忽略。 模式定义如下: <xs:element minOccurs="0"/> name="INCLUDE" type="xs:string" nillable="false"

2.2.8 原数据格式标识和目标数据格式标识
在一个完整的数据转换映射文件中, 大多数情况下必须指定原数据格式和目标数据格式。 格式标识 用一个字符串描述。数据转换时将根据这两个标识创建读和/或写数据组件。格式标识信息应该在 日志文件中显示。模式定义如下: <xs:element name="READER_TYPE" type="xs:NMTOKEN" nillable="false"

minOccurs="0"/> <xs:element name="WRITER_TYPE" type="xs:NMTOKEN" nillable="false"

minOccurs="0"/> 目前支持的格式标识如下表所示: READER_TYPE E00 格 式 标 识 CAD SHP MIF VCT GWS CGML GeoStar
14

WRITER_TYPE E00 CAD SHP MIF VCT GWS CGML GeoStar

GDC 映射文件

第二章

GDC 映射文件

2.2.9 原数据集和目标数据集
原数据集和目标数据集用字符串描述。根据格式的不同,数据集名称可以是文件名、文件路径名、 或数据库连接串描述,请参考《GDC 读写参考手册》。模式定义如下: <xs:element name="SOURCE_DATASET" type="xs:string" nillable="false"

minOccurs="0"/> <xs:element name="DESTINATION_DATASET" type="xs:string" nillable="false" minOccurs="0"/>

2.2.10 读数据指示
读数据指示说明了读数据过程中的一些共有的设置, 如是否要进行坐标投影变换或坐标变换, 是否 利用快速方式进行读数据,是否将数据读到数据集(FeatureDataRoom)下及相应的数据集名称, 是否激活发进度事件消息等。模式定义如下:

<xs:element minOccurs="0"/>

name="READER_DIRECTIVE"

type="ReaderDirectiveType"

<xs:complexType name="ReaderDirectiveType"> <xs:annotation> <xs:documentation>读数据指示类型</xs:documentation> </xs:annotation> <xs:choice minOccurs="0" maxOccurs="unbounded">

15

第二章

GDC 映射文件

GDC 映射文件

<xs:element minOccurs="0"/> <xs:element minOccurs="0"/>

name="TRANSFORM_PROJECTION"

type="xs:boolean"

name="QUICKIMPORT"

type="xs:boolean"

<xs:element name="IMPORT_TO_FEATUREDATAROOM" type="xs:boolean" minOccurs="0"/> <xs:element minOccurs="0"/> <xs:element minOccurs="0"/> <xs:element minOccurs="0"/> </xs:choice> </xs:complexType> 指示“TEMP_STORAGE_MODE”表示中间数据存储模式,分数据库模式和内存模式,值为 DATABASE/MEMORY,数据库模式占内存较少,而内存模式时则将占用较多内存保存中间数据。 缺省值为"DATABASE" 指示 “FEATURECLASS_CHECK” 表示创建地类时, 如果地物类已经存在, 是否进行一致性检查, 缺省值为"YES"。如果确保要创建的地物类与已经存在的地物类一致,可以不进行检查,这时可以 提高速度。 name="FEATURECLASS_CHECK" type="xs:boolean" name="TEMP_STORAGE_MODE" type="xs:string" name="FEATUREDATAROOM_NAME" type="xs:string"

2.2.11 写数据指示
写数据指示说明了写数据过程中的一些共有的设置, 如是否要进行坐标投影变换或坐标变换等。 模 式定义如下:

<xs:element minOccurs="0"/>

name="WRITER_DIRECTIVE"

type="WriterDirectiveType"

16

GDC 映射文件

第二章

GDC 映射文件

<xs:complexType name="WriterDirectiveType"> <xs:annotation> <xs:documentation>写数据指示类型</xs:documentation> </xs:annotation> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element minOccurs="0"/> </xs:choice> </xs:complexType> name="TRANSFORM_PROJECTION" type="xs:boolean"

2.2.12 坐标转换
如果在映射文件中指定了要进行坐标转换, 则还需要指定原坐标系统和目标坐标系统。 坐标系统定 义在映射文件中以文本的方式给出,以唯一的字符串标识坐标系统。模式定义如下:

<xs:element name="COORDINATE_SYSTEM" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="SOURCE" type="xs:string" minOccurs="0"/> <xs:element minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> name="DESTINATION" type="xs:string"

17

第二章

GDC 映射文件

GDC 映射文件

2.2.13 坐标系统、基准、椭球、单位定义
下面给出了模式中对坐标系统、基准、椭球和坐标单位的定义。 坐标系统定义:

一个坐标系统定义中包括:坐标系统名称标识,它用来唯一标识该坐标系统;投影类型,它标识了 该坐标系统所用的投影方式,以投影的名称表示,如高斯-克吕格投影;坐标系统描述;坐标单位, 它标识了该坐标系统所用的单位;基准名称或椭球名称,它标识了该坐标系统所用的基准或椭球; 多个投影参数,每个投影参数又由参数的名称、类型和参数值表示,不同的投影类型所需要的投影 参数不同;坐标轴的方向,用 1~4 的象限表示;坐标系统定义的来源。模式定义如下: <xs:complexType name="CoordSysType"> <xs:sequence> <xs:element name="CoordSysName" type="xs:string"> <xs:annotation> <xs:documentation>坐标系统的名称标识</xs:documentation> </xs:annotation>

18

GDC 映射文件

第二章

GDC 映射文件

</xs:element> <xs:element nillable="false"/> <xs:element minOccurs="0"/> <xs:element name="UNIT" type="xs:string" nillable="false"/> <xs:choice> <xs:element nillable="false"/> <xs:element nillable="false"/> </xs:choice> <xs:element name="PARAMETERS" minOccurs="0"> <xs:complexType> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element nillable="false"/> <xs:element nillable="true" minOccurs="0"/> <xs:element nillable="false"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="QUADRANT" type="xs:unsignedByte" default="1" nillable="true" minOccurs="0"/> <xs:element minOccurs="0"/> name="SOURCE" type="xs:string" nillable="true" name="Value" type="xs:string" name="Type" type="xs:string" name="ParameterName" type="xs:string" name="EllipsoidName" type="xs:string" name="DatumName" type="xs:string" name="DESCRIPTION" type="xs:string" name="PROJECTIONTYPE" type="xs:string"

19

第二章

GDC 映射文件

GDC 映射文件

</xs:sequence> </xs:complexType> 坐标单位定义:

坐标单位定义包括:单位名称,它唯一地标识了坐标单位;坐标类型,它说明了该单位是长度单位 还是角度单位;单位的缩写;该单位与标准单位(长度的标准单位为米,角度的标准单位为度)的 比例因子。模式定义如下: <xs:complexType name="UnitType"> <xs:sequence> <xs:element name="UNIT_NAME" type="xs:string"/> <xs:element nillable="false"/> <xs:element name="UNIT_ABBREVIATION" type="xs:string" name="UNIT_TYPE" type="xs:NMTOKEN"

nillable="true" minOccurs="0"/> <xs:element name="UNIT_FACTOR" type="xs:double"/> </xs:sequence> </xs:complexType> 基准定义:

20

GDC 映射文件

第二章

GDC 映射文件

基准定义包括:基准的名称,它唯一地标识了该基准;基准的描述;基准的来源;基准使用的椭球; 基准的类型,它说明该基准的使用方法,如 3 参数,或 7 参数;三个平移、三个旋转、一个比例 参数。模式定义如下: <xs:complexType name="DatumType"> <xs:sequence> <xs:element name="DATUM_NAME"/> <xs:element name="DESCRIPTION" type="xs:string"/> <xs:element name="SOURCE" type="xs:string"/> <xs:element name="ELLIPSOID" type="xs:string"/> <xs:element name="USETYPE" type="xs:string"/> <xs:element name="DELTA_X" type="xs:double"/> <xs:element name="DELTA_Y" type="xs:double"/> <xs:element name="DELTA_Z" type="xs:double"/> <xs:element name="BWSCALE" type="xs:double"/>
21

第二章

GDC 映射文件

GDC 映射文件

<xs:element name="ROTATION_X" type="xs:double"/> <xs:element name="ROTATION_Y" type="xs:double"/> <xs:element name="ROTATION_Z" type="xs:double"/> </xs:sequence> </xs:complexType> 椭球定义:

椭球定义包括:椭球的名称,它唯一地标识了该椭球;椭球的描述;椭球的来源;长半轴长度;短 半轴长度。模式定义如下: <xs:complexType name="EllipsoidType"> <xs:sequence> <xs:element name="ELLIPSOID_NAME" type="xs:string"/> <xs:element name="DESCRIPTION" type="xs:string"/> <xs:element name="SOURCE" type="xs:string"/> <xs:element name="EQUATOR_RADIUS" type="xs:double"> <xs:annotation> <xs:documentation>长半轴</xs:documentation> </xs:annotation> </xs:element> <xs:element name="POLAR_RADIUS" type="xs:double">

22

GDC 映射文件

第二章

GDC 映射文件

<xs:annotation> <xs:documentation>短半轴</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType>

2.2.14 比例尺
指定了数据集的比例尺分母。 转换时不考虑比例尺的变化, 即认为原数据集与目标数据集的比例尺 是一致的。指定比例尺,主要是用于转换注记时计算注记的大小,即注记的高度和宽度,因为有的 系统中注记是以图面长度为单位的(一般以毫米为单位),有的是以实地长度为单位的,因此转换 时需要根据比例尺进行转换。模式定义如下: <xs:element name="MAP_SCALE" type="xs:long" minOccurs="0"/>

2.2.15 读数据参数
读数据参数描述了读每个数据集时可能需要或用到的设置,它与具体的数据格式有关,请参考 《GDC 读写参考手册》。映射文件中不规定读每种数据格式的数据时的参数设置的模式,而是通 过包含其它的模式来说明定义读数据参数的方法。 当有新的数据格式需要扩展时, 只需要对相应的 映射文件模式进行扩充即可。模式定义如下:

23

第二章

GDC 映射文件

GDC 映射文件

<xs:element minOccurs="0"/>

name="READER_PARAMETER"

type="ReaderParameterType"

<xs:complexType name="ReaderParameterType"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element type="CADReaderParameterType" minOccurs="0"/> <xs:element type="E00ReaderParameterType" minOccurs="0"/> <xs:element type="MIFReaderParameterType" minOccurs="0"/> <xs:element type="SHPReaderParameterType" minOccurs="0"/> <xs:element type="VCTReaderParameterType" minOccurs="0"/> <xs:element type="GWSReaderParameterType" minOccurs="0"/>
24

name="CADReaderParameter"

name="E00ReaderParameter"

name="MIFReaderParameter"

name="SHPReaderParameter"

name="VCTReaderParameter"

name="GWSReaderParameter"

GDC 映射文件

第二章

GDC 映射文件

<xs:element

name="CGMLReaderParameter"

type="CGMLReaderParameterType" minOccurs="0"/> <xs:element name="GeoStarReaderParameter"

type="GeoStarReaderParameterType" minOccurs="0"/> </xs:choice> </xs:complexType>

2.2.16 写数据参数
写数据参数描述了写每个数据集时可能需要或用到的设置,它与具体的数据格式有关,请参考 《GDC 读写参考手册》。映射文件中不规定写每种格式的数据时的参数设置的模式,而是通过包 含其它的模式来说明定义写数据参数的方法。 当有新的数据格式需要扩展时, 只需要对相应的映射 文件模式进行扩充即可。模式定义如下:

<xs:element minOccurs="0"/>

name="WRITER_PARAMETER"

type="WriterParameterType"

<xs:complexType name="WriterParameterType"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element type="CADWriterParameterType" minOccurs="0"/>
25

name="CADWriterParameter"

第二章

GDC 映射文件

GDC 映射文件

<xs:element type="E00WriterParameterType" minOccurs="0"/> <xs:element type="MIFWriterParameterType" minOccurs="0"/> <xs:element type="SHPWriterParameterType" minOccurs="0"/> <xs:element type="VCTWriterParameterType" minOccurs="0"/> <xs:element type="GWSWriterParameterType" minOccurs="0"/> <xs:element

name="E00WriterParameter"

name="MIFWriterParameter"

name="SHPWriterParameter"

name="VCTWriterParameter"

name="GWSWriterParameter"

name="CGMLWriterParameter"

type="CGMLWriterParameterType" minOccurs="0"/> <xs:element name="GeoStarWriterParameter"

type="GeoStarWriterParameterType" minOccurs="0"/> </xs:choice> </xs:complexType>

2.2.17 转换变量
转换变量提供了灵活的从原地物属性值转换成目标地物属性值的机制。例如,将原地物属性字段 SF 的属性值转换成对应的目标地物的属性字段 TF 的属性值。转换变量也可以作为函数的参数。 下面是转换变量的模式定义:

<xs:element name="VARIABLE" type="VariableType" minOccurs="0"/>

26

GDC 映射文件

第二章

GDC 映射文件

<xs:complexType name="VariableType"> <xs:sequence> <xs:element name="FeatureClassName" type="xs:string"/> <xs:element maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="AttributePairType"> <xs:annotation> <xs:documentation> 属 性 字 段 名 与 属 性 值 组 成 的 对 定 义 。 </xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="AttributeName" type="xs:string"> <xs:annotation> <xs:documentation>属性字段名</xs:documentation> </xs:annotation> </xs:element> <xs:element name="AttributeValue" type="xs:string"> <xs:annotation> <xs:documentation>属性值,如果字符串以“%”字符开始,表示值是一 个变量</xs:documentation> </xs:annotation> </xs:element> <xs:element name="DefaultValue" type="xs:string" minOccurs="0" maxOccurs="unbounded"> <xs:annotation>
27

name="AttributePair"

type="AttributePairType"

第二章

GDC 映射文件

GDC 映射文件

<xs:documentation>缺省值</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> 定义一个转换变量需要给定原地物所在的地物类名, 属性字段名及该属性字段对应的变量名, 它申 明了某个地物类的某个属性字段可以作为一个变量来使用, 转换时目标地物的属性值需要根据这个 变量来确定。变量名前用一个字符%来表示该名称申明为一个变量。申明变量时要求在一个地物类 中变量名是唯一的。 在有些情况下,如果地物的属性值不存在,则意味着该属性值有一个缺省值。变量申明时考虑了缺 省值情况。例如: <?xml version="1.0" encoding="GB2312"?> <GDC_MappingFile xmlns="http://www.geostar.com.cn/gdc"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.geostar.com.cn/gdc CMappingFile.xsd"> <READER_TYPE>E00</READER_TYPE> <WRITER_TYPE>SHP</WRITER_TYPE> <VARIABLE> <FeatureClassName>Bount_L</FeatureClassName> <AttributePair> <AttributeName>Code</AttributeName> <AttributeValue>%Code</AttributeValue> </AttributePair> <AttributePair> <AttributeName>Level</AttributeName> <AttributeValue>%Level</AttributeValue> <DefaultValue>2</DefaultValue>
28

..\GDCMappingFile\GD

GDC 映射文件

第二章

GDC 映射文件

</AttributePair> </VARIABLE> </GDC_MappingFile> 在上面的例子中, 格式中地物类 Bount_L 的属性字段 Code 和 Level 可以作为转换变量的申明, E00 变量名称分别是 Code 和 Level。变量 Level 的缺省值为 2。 在映射文件中还提供一些预定义的转换变量,如下表所示。 转换变量名 %GDC_NONE 含义 目标地物的属性值以空值表示。 如原文件名为 %GDC_PATHNAME 目标地物的属性值取取原数据 集文件的上一级目录名。 D:\GDC\test\GF.GWS, 则 GDC_PATHNAME 表示属性值取 test。 如原文件名为 %GDC_FILENAME 目标地物的属性值取原文件名。 D:\GDC\test\GF.GWS, 则 GDC_FILENAME 表 示属性值取 GF。 %GDC_FEATURECLASSNAME 目标地物的属性值取对应的原 地物类名。 目标地物的属性值取对应的原 地物类别名。 目标地物的属性值以属性函数 @FUNCTIONNAME(…) 值的形式表示。 @表示是一个函 数申明。 举例说明

%GDC_FEATURECLASSALIAS

2.2.18 转换规则说明
转换规则说明了原数据集中的地物类对象如何映射到目标地物类。一个转换规则应包含原地物类 名,原地物类几何类型,原地物类中地物应满足的条件,目标地物类名,目标地物类几何类型,目 标地物类别名,目标地物类属性值的取值方式。原地物类名可以为通配符"*",表示所有地物类。 目标地物类名可以为通配符"*",表示所有目标地物类名与原地物类名一致。模式定义如下:

29

第二章

GDC 映射文件

GDC 映射文件

<xs:element name="GDC_RULE" type="GDCRuleType" minOccurs="0"/> <xs:complexType name="GDCRuleType"> <xs:sequence> <xs:element name="SOURCE"> <xs:complexType> <xs:sequence> <xs:element type="xs:string"> <xs:annotation> <xs:documentation>原地物类名。可以用通配符"*",表 示所有地物类。</xs:documentation> </xs:annotation> </xs:element> <xs:element minOccurs="0"/> <xs:element name="Condition" type="GDCConditionType" minOccurs="0" maxOccurs="unbounded"/> name="GeometryType" type="xs:string" name="FeatureClassName"

30

GDC 映射文件

第二章

GDC 映射文件

</xs:sequence> </xs:complexType> </xs:element> <xs:element name="DESTINATION"> <xs:complexType> <xs:sequence> <xs:element type="xs:string"> <xs:annotation> <xs:documentation>目标地物类名。可以用通配符"*", 表示所有目标地物类名与原地物类名一致。</xs:documentation> </xs:annotation> </xs:element> <xs:element minOccurs="0"/> <xs:element minOccurs="0"/> <xs:element name="AttributePair" name="GeometryType" type="xs:string" name="Alias" type="xs:string" name="FeatureClassName"

type="AttributePairType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="RuleID" type="xs:ID" use="required"/> </xs:complexType> 在上述模式中定义了原(SOURCE)地物类和目标(DESTINATION)地物类的对应关系。在 SOURCE 端,相当于定义了一个过滤器,只有满足指定条件的地物对象才与该对应关系匹配。根 据这一转换规则,可以实现地物类转换时的换名,多个地物类合并成一个地物类,一个地物类分解
31

第二章

GDC 映射文件

GDC 映射文件

成多个地物类,新增地物类,忽略老地物类等要求。条件的模式如下:

<xs:complexType name="GDCConditionType"> <xs:annotation> <xs:documentation>GDC 映射文件中的条件类型</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="ConditionType" type="xs:string"/> <xs:element name="AttributeName" type="xs:string"/> <xs:element name="Operator" type="xs:string"/> <xs:element name="AttributeValue" type="xs:string"/> </xs:sequence> </xs:complexType> 说明映射文件中的条件应包括:条件类型,属性名,算符,属性值。条件类型分为“和”与“或”, 关键词“GDC_WHERE”,“GDC_AND”表示“和”条件,关键词“GDC_OR”表示“或”条 件。在同一个对应关系中,可以有多个条件,第一个条件以关键词“GDC_WHERE”开始。为了 便于处理,在同一个对应关系的多个条件中不能同时有“和”与“或”条件,即在同一个对应关系 的多个条件中只能是同类型的“和”条件或“或”条件,而不能同时有两者。如果要表示同时存在 “和”与“或”条件,可以分解成多个对应关系描述,而每个对应关系中只有同种类型的条件。条 件中的算符包括:EQ(等于)、NE(不等于)、LT(小于)、GT(大于)、LE(小于等于)、 GE(大于等于)、IN(包含于,值间以“,”分隔)。属性值可以是常量,转换变量(对于非预定 义转换变量,转换变量申明中的地物类名与地物类对应关系中的原地物类名要求一致),和属性函 数值。 目标地物类属性值的取值方式说明了如何将原地物的属性数据转换成目标地物的属性数据。 映射的 方法是: 先将原地物类的属性字段名作为转换变量, 转换时目标地物的属性数据根据转换变量从对 应的原地物的属性数据得到。
32

GDC 映射文件

第二章

GDC 映射文件

每个转换规则必须有一个唯一的标识号属性 RuleID,它用于提高内部转换处理的效率和便于错误 定位。 几何类型定义如下: 几何类型 Point MultiPoint Polyline Polygon Text 下面的示例说明了转换规则。 <?xml version="1.0" encoding="GB2312"?> <GDC_MappingFile xmlns="http://www.geostar.com.cn/gdc" 说明 点 多点 线 面 注记

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.geostar.com.cn/gdc CMappingFile.xsd"> <READER_TYPE>E00</READER_TYPE> <WRITER_TYPE>SHP</WRITER_TYPE> <VARIABLE> <FeatureClassName>Bount_L</FeatureClassName> <AttributePair> <AttributeName>Code</AttributeName> <AttributeValue>%Code</AttributeValue> </AttributePair> <AttributePair> <AttributeName>Level</AttributeName> <AttributeValue>%Level</AttributeValue> <DefaultValue>2</DefaultValue> </AttributePair> ..\GDCMappingFile\GD

33

第二章

GDC 映射文件

GDC 映射文件

</VARIABLE> <GDC_RULE RuleID="1"> <SOURCE> <FeatureClassName>Bount_l</FeatureClassName> <GeometryType>E00_Line</GeometryType> <Condition> <ConditionType>GDC_WHERE</ConditionType> <AttributeName>Code</AttributeName> <Operator>=</Operator> <AttributeValue>4300</AttributeValue> </Condition> <Condition> <ConditionType>GDC_AND</ConditionType> <AttributeName>Level</AttributeName> <Operator>!=</Operator> <AttributeValue>%Code</AttributeValue> </Condition> </SOURCE> <DESTINATION> <FeatureClassName>Prov</FeatureClassName> <GeometryType>SHP_Line</GeometryType> <AttributePair> <AttributeName>Code</AttributeName> <AttributeValue>%Code</AttributeValue> </AttributePair>

34

GDC 映射文件

第二章

GDC 映射文件

<AttributePair> <AttributeName>Name</AttributeName> <AttributeValue>%GDC_FILENAME</AttributeValue> </AttributePair> </DESTINATION> </GDC_RULE> </GDC_MappingFile> 在上面的示例中,原 E00 数据中地物类名为 Bount_L 的地物如果满足条件:属性字段 Code 的属 性值等于 4300, 且属性字段 Level 的属性值不等于属性字段 Code 的属性值时转换到 SHP 格式中 的 Prov 地物类。 在该例子中暗含如下规则:原地物类 Bount_L 映射到两个目标地物类 Prov 和 County 中;对于目 标目标地物类 Prov,属性字段 ProvID 的值根据对应的原地物的 Code 字段的属性值得到,属性字 段 Name 的值根据原数据集的路径名得到;对于目标目标地物类 County,属性字段 Code 的值根 据对应的原地物的 Code 字段的属性值得到,属性字段 Name 的值根据原数据集的文件名得到。 如果映射文件中没有定义地物类映射关系, 则认为根据该映射文件不进行数据间的转换, 该映射文 件可能是被其它主映射包含的子映射文件。 目标地物类定义说明了在目标数据集中将存在那些地物 类。

2.2.19 属性结构定义
属性结构定义说明了转换前后各地物类的属性结构。 原数据集中地物类的属性结构可以从原数据集 获得, 因此在映射文件中原数据集中地物类的属性结构定义是可选的。 目标地物类的属性结构定义 说明了转换后目标地物类应该具有那些属性字段及其字段类型。目标地物类名可以为通配符"*", 表示所有目标地物类的属性结构与对应的原地物类的属性结构一致, 后面的属性结构为新增加的属 性结构。如果没有定义目标地物类的属性结构,则认为目标地物类没有属性结构,转换时将忽略目 标地物的属性。 在属性结构定义中包括地物类名和多个属性字段, 每个字段包括字段名、 字段类型和可选的字段宽 度、小数点位数及是否可以为空、是否主键约束,是否删除该字段。 字段类型说明如下: 字段类型 Smallint 说明 短整型
35

第二章

GDC 映射文件

GDC 映射文件

Integer Float Double Char

整型 单精度浮点数 双精度浮点数 字符型 日期型(格式为 YYYYMMDD hh:mm:ss.xxx,其中 YYYY 表示年份,MM 表示月份,DD 表示日期,hh 表示小时, mm 表示分,ss.xxx 表示秒)

Date 属性结构定义模式如下:

<xs:element minOccurs="0"/>

name="ATTRIBUTESTRUCT_DEF"

type="AttrStructType"

<xs:complexType name="AttrStructType"> <xs:sequence> <xs:element name="SOURCE" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element type="xs:NMTOKEN" nillable="false"/> <xs:element name="Field" type="FieldType" name="FeatureClassName"

minOccurs="0" maxOccurs="unbounded"/>
36

GDC 映射文件

第二章

GDC 映射文件

</xs:sequence> </xs:complexType> </xs:element> <xs:element name="DESTINATION" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element type="xs:NMTOKEN" nillable="false"> <xs:annotation> <xs:documentation>目标地物类名。可以用通配符"*", 表示所有目标地物类的属性结构与对应的原地物类的属性结构一致。</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Field" type="FieldType" name="FeatureClassName"

minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType>

2.3 映射规则的匹配
映射文件中规则与数据的匹配主要有两种方法。 第一种方法是以数据为主线的匹配方法, 即对于从 原数据集中得到的每个地物数据, 逻辑上从映射文件的顶端到底部顺序扫描所有规则, 如果数据满 足规则中的条件,则执行转换。该方法的示意图如下:

37

第二章

GDC 映射文件

GDC 映射文件

第二种方法是以规则为主线的匹配方法, 即对于映射文件中的规则, 按先后顺序依次对满足条件的 数据(包括根据前面的规则转换后的中间数据)进行转换。该方法的示意图如下:

38

GDC 映射文件

第二章

GDC 映射文件

2.4 映射文件中的函数
函数提供了一种灵活的操作需要转换的数据的方法。 通过在映射文件中申明函数的方法, 可以使一 部分数据转换操作由内部(预定义)或外部函数完成。预定义函数由系统提供,外部函数由用户自 定义,并以动态库(API)的形式实现。函数申明以字符“@”开头,形式如下: @FuncName([<parameter>[,<parameter>]]) 参数以字符串的形式给出,各参数间以“,”分隔。 函数参数可以是常量、转换变量、属性值、属性函数、或它们的组合。因此,函数支持嵌套。 用户函数必须注册,GDC 将根据函数名标识查找相应的动态库和函数入口地址,将用户函数扩展 到本系统中。 用户函数库在注册表的位置为 HKEY_CLASS_ROOT \GEOCOMPONENTCATEGORY \GeoStar\ GDCObjects\ Function,如下图形式。

39

GDC 映射文件

第三章

映射文件编辑

第三章 映射文件编辑
本章介绍如何根据映射文件模式文档快速、有效、方便地创建、编辑、定制映射文件,包括: 创建映射文件; 编辑映射文件; 在应用程序中编辑映射文件。

3.1 创建映射文件
可以通过以下两种途径创建符合模式文档 GDCMappinfFile.xsd 的映射文件: 使用 XMLSPY 工具新建映射文件; 通过 GDC 工具生成映射文件模板。

3.1.1 使用 XMLSPY 工具新建映射文件
XMLSPY 软件是一个创建、编辑与 XML 有关的文档的专业工具。使用 XMLSPY 工具新建映射文 件的步骤如下: 选择 新建 xml 文档:

41

第三章

映射文件编辑

GDC 映射文件

选择 Schema:

指定映射文件模式文档 GDCMappingFile.xsd:

映射文件模式文档 GDCMappingFile.xsd 可以在安装目录下找到,如下图所示:

新建的映射文件中会自动添加缺省的根元素,用户可以在新建的映射文件基础上进行编 辑, 包括添加、修改、删除元素等。

3.1.2 通过 GDC 工具生成映射文件模板
这是一种更加快速、有效的生成映射文件的方法。映射文件组件提供了生成映射文件模板的方法, 用户可以基于映射文件组件开发生成映射文件模板的工具, 请参考 《GDC Objects应用开发指南》 。 下面是一个用于生成映射文件的工具示例,示例程序可以从网站www.geostar.com.cn获得。

42

GDC 映射文件

第三章

映射文件编辑

该工具将根据源数据格式和源数据集按自动转换的方式生成缺省的映射文件, 文件中主要包括源数 据集中的所有地物类及其属性结构, 并按目标数据模型与原数据模型一致的原则生成转换规则, 用 户可以编辑该缺省的映射文件,最终得到满足用户应用需求的映射文件。

3.2 映射文件编辑
你可以用任何文本编辑器,如notepad、UltraEdit等编辑映射文件。但如果使用XMLSPY工具编辑 映射文件则会更加方便、快速和有效。关于使用XMLSPY的详细信息,请参考www.altova.com。 XMLSPY 工具可以将映射模式文档中所有的元素列出(如下图所示),极大地方便了用户在编辑 时选定这些元素。

43

第三章

映射文件编辑

GDC 映射文件

使用 XMLSPY 工具的一般操作: 打开映射文件、保存映射文件。在保存文件前可以验证以映射文件符合模式文档,或映射文件 格式是否为标准的 XML 格式。 添加元素。 删除元素,选定元素后按“delete”键。 修改元素,双击选定的项进行修改。

3.2.1 编辑映射规则
在映射文件中,一条规则由"RuleID","SOURCE","DESTINATION" 三部分组成,源与目标必须一 一对应的。映射文件规则明确了源数据应转换成怎样的目标数据。如下图:

(1)RuleID 规则唯一标识符。 (2) SOURCE 指定满足条件的源数据。 "FeatureClassName":用于指定源地物类名。 "GeometryType":用于指定源地物类类型。 "Condition":用于数据过滤,只有满足条件的数据才会被处理。"ConditionType"用于指定条件类 型,关键词"GDC_WHERE","GDC_AND"表示"和" 条件,关键词"GDC_OR"表示"或"条件,第一 个条件以关键词"GDC_WHERE"开始。 "AttributeName"用于指定属性名, "Operator"用于指定算符, 包括:EQ(等于)、NE(不等于)、LT (小于)、GT(大于)、LE(小于等于)、GE(大于 等于)、IN(包含于,值间以“,”分隔),"AttributeValue"用于指定属性值,可以是常量,转换 变量或函数值。

44

GDC 映射文件

第三章

映射文件编辑

(3)DESTINATION 指定目标数据信息。 "FeatureClassName":用于指定目标地物类名。 "GeometryType":用于指定目标地物类类型。 "AttributePair":用于指定该目标地物类中每个对象的属性值取值方法。 "AttributeName"用于指定 属性名,"AttributeValue"用于指定属性值,可以是常量,转换变量或函数值。

3.2.2 编辑属性结构
在映射文件中,一个属性结构定义由"FeatureClassName"和多个"Field"组成,如下图:

"FeatureClassName":用于指定目标地物类名。 "Field": 用于指定每个属性字段的信息, "Name"用于指定字段名, "Type"用于指定字段类型, "Width" 和"Decimals"分别指定字段宽度和小数位数。

3.2.3 在应用程序中编辑映射文件
映射文件是一个 XML 文档。在应用程序中可以使用 Microsoft? XML Core Services (MSXML) 4.0 SDK(Software Development Kit)或 DOM(Document Object Model)操作映射文件中的元素。 MSXML 4.0 可以从 URL 地址 http://msdn.microsoft.com 获得。

45

GDC 映射文件

第四章

映射文件示例

第四章 映射文件示例
下面的示例说明了将 AutoCAD 数据转换到 GeoStar 时的映射关系。 原数据集的文件名为“F:\东莞\景湖花园 b.dwg”。 读 CAD 数据时的参数包括块和扩展数据的处理方式。在该示例中,块采用缺省的处理方式,即采 用不炸开块,将块作为点处理的方式。扩展数据为按行方式给出,扩展数据项间以“,”号分隔。 示例中包含 2 个转换规则: 规则 1 说明将原 CAD 数据中层名为 “BOUND” 的满足 “CAD_Thickness” 4221008 或 4460008 为 的线对象转换到线地物类 DL_X 中, 目标对象的属性项包括 “cad_thickness” “cad_elevation” 和 , 属性值与原对象对应。 规则 2 说明将原 CAD 数据中层名为 “BOUND” 的满足 “CAD_Thickness” 2320108 或 2330008 为 的线对象转换到线地物类 DL_X 中, 目标对象的属性项包括 “cad_thickness” “cad_elevation” 和 , 属性值与原对象对应。

示例文档如下:
47

第四章

映射文件示例

GDC 映射文件

<?xml version="1.0" encoding="gb2312"?> <!-- edited with XMLSPY v2004 rel. 2 U (http://www.xmlspy.com) by dengyuejin (geostardyj) --> <GDC_MappingFile xmlns="http://www.geostar.com.cn/gdc"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.geostar.com.cn/gdc GDCMappingFile.xsd"> <READER_TYPE>CAD</READER_TYPE> <WRITER_TYPE>GeoStar5</WRITER_TYPE> <SOURCE_DATASET>F:\东莞\景湖花园 b.dwg</SOURCE_DATASET> <READER_PARAMETER> <CADReaderParameter> <CAD_Block> <ThirdRule> <Default> <Transact>1</Transact> </Default> </ThirdRule> </CAD_Block> <CAD_XData> <APP_NAME>INFO</APP_NAME> <XDATA_FORMAT>ROW</XDATA_FORMAT> <XDATA_SEPARATOR>,</XDATA_SEPARATOR> </CAD_XData> </CADReaderParameter> </READER_PARAMETER> <GDC_RULE RuleID="Rule_1">

48

GDC 映射文件

第四章

映射文件示例

<SOURCE> <FeatureClassName>BOUND_L</FeatureClassName> <Condition> <ConditionType>GDC_WHERE</ConditionType> <AttributeName>CAD_Thickness</AttributeName> <Operator>IN</Operator> <AttributeValue>4221008,4460008</AttributeValue> </Condition> </SOURCE> <DESTINATION> <FeatureClassName>DL_X</FeatureClassName> <AttributePair> <AttributeName>cad_thickness</AttributeName> <AttributeValue>%cad_thickness</AttributeValue> </AttributePair> <AttributePair> <AttributeName>cad_elevation</AttributeName> <AttributeValue>%cad_elevation</AttributeValue> </AttributePair> </DESTINATION> </GDC_RULE> <GDC_RULE RuleID="Rule_2"> <SOURCE> <FeatureClassName>BOUND_L</FeatureClassName> <Condition>

49

第四章

映射文件示例

GDC 映射文件

<ConditionType>GDC_WHERE</ConditionType> <AttributeName>CAD_Thickness</AttributeName> <Operator>IN</Operator> <AttributeValue>2320108,2330008</AttributeValue> </Condition> </SOURCE> <DESTINATION> <FeatureClassName>JMD_X</FeatureClassName> <AttributePair> <AttributeName>cad_thickness</AttributeName> <AttributeValue>%cad_thickness</AttributeValue> </AttributePair> <AttributePair> <AttributeName>cad_elevation</AttributeName> <AttributeValue>%cad_elevation</AttributeValue> </AttributePair> </DESTINATION> </GDC_RULE> <ATTRIBUTESTRUCT_DEF> <DESTINATION> <FeatureClassName>DL_X</FeatureClassName> <Field> <Name>代码</Name> <Type>char</Type> <Width>7</Width> </Field>
50

GDC 映射文件

第四章

映射文件示例

<Field> <Name>cad_thickness</Name> <Type>char</Type> <Width>7</Width> </Field> <Field> <Name>cad_elevation</Name> <Type>double</Type> </Field> </DESTINATION> </ATTRIBUTESTRUCT_DEF> <ATTRIBUTESTRUCT_DEF> <DESTINATION> <FeatureClassName>JMD_X</FeatureClassName> <Field> <Name>代码</Name> <Type>char</Type> <Width>7</Width> </Field> <Field> <Name>cad_thickness</Name> <Type>char</Type> <Width>7</Width> </Field> <Field> <Name>cad_elevation</Name> <Type>double</Type> </Field> </DESTINATION> </ATTRIBUTESTRUCT_DEF> </GDC_MappingFile>
51


相关文章:
MODBUS协议转换模块简介
0 指定为主变量(或第二、三、四变量),转换逻辑见...转 HART 模块1.1 数据映射逻辑图 HART 模块...当使用具有 DD 文件解析能力的手操器进行配置时,...
课后习题三(第四章)
每个模块的容量是 64K×32 位,单体的存储周期为 ...在程序的执行过程中,Cache 与主存的地址映射是由( ...假设 Cache 初始 为空,CPU 依次从主存第 01、...
更多相关标签:
添加模块映射 | iis 添加模块映射 | php模块映射 | thinkphp5.0 模块映射 | thinkphp模块映射 | m340模块地址映射 | iis 模块映射 | php 添加模块映射 |