读者指令
下面列出的指令是由SpatialWare阅读器处理的。列出的后缀以当前前缀< ReaderKeyword >
在映射文件中。默认情况下,< ReaderKeyword >
对于SpatialWare的读者来说SPATIALWARE.
数据集
要求/可选:要求
此子句标识连接到SpatialWare数据库的ODBC数据源,从该数据库检索特性。
参数 |
内容 |
<数据集> |
从其中检索特性的ODBC数据源的名称。在SpatialWare中,这个数据集被称为数据库或数据源.无论SpatialWare的底层RDBMS是什么,这都是必需的。 |
例子:
SPATIALWARE_DATASET乔治敦
工作台参数:Source MapInfo SpatialWare ODBC数据源
DEF
必需的/可选
可选
此子句标识用于从SpatialWare数据库检索特性的查询。
第一种形式的语法是:
_DEF \ [spatialware_def_where_clause ]
的<表>必须与数据库中的表匹配。这将用作从表中读取的所有特性的特性类型。
如果没有whereClause > <时,将读取表中的所有行并作为单个特性返回。如果一个whereClause > <,则只读取由子句选择的行。的whereClause > <将包含在一个构造的SQL语句中,并不受影响地传递给数据库(因此可以使用任何SpatialWare的SQL/Spatial谓词)。
请注意,whereClause > <不重复这个词在哪里.还要注意,如果你已经有whereClause > <在DEF行指定的SQL语句中spatialware_def_sql_statement那么你就不需要指定spatialware_def_where_clause。这样做将导致一个错误,因为重复的where子句。
表中的所有属性都将出现在每个返回的特性上。
示例1:
下面的示例指示FME从数据库中检索表的特性道路,对于其中的行NUMLANES列的值为2和表面列的值为'砾石”。在构建长在哪里条款。
SPATIALWARE_DEF道路\ spatialware_def_where_clause子句numlanes = 2 and surface \
=砾石
注意:转义引号可以放在作为保留字的列名周围。例如,/“从”。
示例2:
的在哪里子句说明如何选择包含在预设边界框中的所有道路特征,预设边界框定义为X1 y1 x2 y2).特性类型将被设置为道路.
SPATIALWARE_DEF道路\ spatialware_def_where_clause \ ST_Contains(HG_Box(10,20,60,70),sw_geometry)
的第二种形式的语法DEF线:
SPATIALWARE_DEF\ [ ]
在此表单中,任意填写< sqlStatement >,如“选择语句,将被执行。该语句不受影响地传递给数据库(因此可以使用SpatialWare的任何SQL/Spatial谓词)。语句的结果将作为特性返回给FME,每次返回一行。该表单允许将复杂连接的结果返回给FME。
所有的特征将给出特征类型<表>,尽管它们不一定来自那张表。事实上,通过这种形式<表>不需要在数据库中作为单独的表存在。
查询产生的所有属性都将出现在每个返回的特性上。当执行连接操作时,FME特性将来自不同表的所有属性组合到每个特性中。如果多个表中有同名的列,那么这些列的特性属性将使用表名进行限定,以确保每个属性都是惟一的。
示例3:
的< spatialware_def_sql_statement >下面演示了如何在两个不同的表上执行连接湖,PRIVBLDG.该查询要求所有湖泊和私人建筑的数量,相互之间在150个单元。特性类型将被设置为复杂的.
select a.sw_member, b.sw_member \ from lake a, privbldg b \ where st_overlaps(st_buffer(a.))Sw_geometry, 150.0, 10.0), \ b.sw_geometry)
DEF_OVERRIDE
要求/可选:可选
这个子句与DEF子句的形式完全相同。它执行与DEF子句相同的功能。除了在自动生成的映射文件中,使用此子句通常对用户没有直接的价值。
如果映射文件中有具有相同特性类型的DEF行,则此子句将覆盖DEF行并持久化。匹配的DEF行将被忽略。如果映射文件中没有具有相同特性类型的DEF行,该子句将简单地添加另一个查询,从该查询将读取特性。
例子:
SPATIALWARE_DEF_OVERRIDE ROADS \ SELECT owner FROM ROADS WHERE numlanes = 2
id
要求/可选:可选
此子句标识要从中读取信息的表的名称。
参数 |
内容 |
<表名> |
SpatialWare数据库中表名的列表。 |
使用这些表名的方式取决于是否存在表名DEF映射文件中的行。任何DEF_OVERRIDE关键词不算DEF在这种情况下。
如果有的话DEF行,则只有其特征类型列在id使用线。所有其他的DEF的行或表名id线将被忽略。
如果没有DEF中列出的所有表名读取所有特性id行。特性的读取与查询完全相同' SELECT * FROM表名> '用于?中的每个表名id列表。
例子:
spatialware_id建筑道路河流森林
SERVER_TYPE
要求/可选:可选
此子句标识SpatialWare服务器正在操作的数据库类型。
参数 |
内容 |
<服务器类型> |
SpatialWare服务器操作的数据库类型。此值可能包含sqlserver或informix。 |
例子:
SPATIALWARE_SERVER_TYPE informix
或
SPATIALWARE_SERVER_TYPE sqlserver
工作台参数:SpatialWare服务器类型
用户标识
要求/可选:可能需要
访问SpatialWare数据库所需的用户名。Sine数据库(比如Informix)可能不需要这样做。
参数 |
内容 |
<标识> |
用于访问SpatialWare数据集的用户帐户的ID。 |
例子:
SPATIALWARE_USERID名字
工作台参数:用户ID
密码
要求/可选:可能需要
与指定用户ID关联的密码。Informix等数据库可能不需要它,但SQLServer可能需要它。
参数 |
内容 |
<密码> |
用于访问SpatialWare的用户帐户的密码。 |
例子:
SPATIALWARE_Password secretpassword
工作台参数:密码
SEARCH_ENVELOPE
使用最小和最大的x和y参数,定义一个边界框,用于过滤输入特征。只有与边界框交互的特性才会返回。
如果搜索信封的所有四个坐标都指定为0,则搜索信封将被禁用。
映射文件的语法
注意:如果搜索信封的所有四个坐标都指定为零,则搜索信封将被禁用。
必需的/可选
可选
工作台参数
最小X,最小Y,最大X,最大Y
SEARCH_ENVELOPE_COORDINATE_SYSTEM
这个指令指定搜索信封的坐标系统,如果它与数据的坐标系统不同。
的COORDINATE_SYSTEM
指令,它指定与要读取的数据相关联的坐标系统SEARCH_ENVELOPE_COORDINATE_SYSTEM
设置指令。
如果设置了这个指令,搜索信封的最小和最大点将从SEARCH_ENVELOPE_COORDINATE_SYSTEM
读者COORDINATE_SYSTEM
在申请信封之前。
必需的/可选
可选
映射文件的语法
< ReaderKeyword > _SEARCH_ENVELOPE_COORDINATE_SYSTEM <坐标系统>
工作台参数
搜索包络坐标系
RETRIEVE_ALL_SCHEMAS
此参数仅在生成映射文件、生成工作区或在FME Objects应用程序中检索模式时适用。
当设置为是的,则返回数据库中所有表和特性类的模式。
当设置为没有(或失踪),如果RETRIEVE_ALL_TABLE_NAMES
类似地设置为没有(或丢失)时,只返回id参数请求的模式。
必需的/可选
可选
值
YES | NO(默认)
没有:读取器将返回id中指定的特性类型的模式。如果id中没有指定特性,那么FME将返回所有表的模式特性。
如果未指定该值,则假定为No。
是的:指示读取器返回数据库中所有表的模式。
映射文件的语法
不适用。
FME对象应用程序将包括RETRIEVE_ALL_SCHEMAS
在参数数组中后跟“YES”IFMEUniversalReader:: open ()
.
工作台参数
不适用
RETRIEVE_ALL_TABLE_NAMES
此参数仅适用于生成映射文件、生成工作区或在FME Objects应用程序中检索模式时。
当设置为yes时,以及如果RETRIEVE_ALL_SCHEMAS
设置为no(或缺失)时,将返回数据库中所有表和特性类的名称。当设置为no(或missing)时,以及ifRETRIEVE_ALL_SCHEMAS
类似地设置为no(或missing),则返回IDs指令请求的模式。
注意:如果RETRIEVE_ALL_SCHEMAS也设置为Yes, thenRETRIEVE_ALL_SCHEMAS优先。
必需的/可选
可选
值
YES | NO(默认)
映射文件的语法
不适用。
FME对象应用程序将包括RETRIEVE_ALL_TABLE_NAMES
在参数数组中后跟“YES”IFMEUniversalReader:: open ()
.
工作台参数
不适用(当您浏览表列表时使用)