8.6. 定义简单要素类型¶
A SimpleFeatureType
定义架构中属性的名称和类型。几个命令行工具需要定义 SimpleFeatureType
,例如创建一个新的模式。GeoMesa命令支持多种不同的方式来定义一种方式(按优先级顺序):
一个广为人知的名字
SimpleFeatureType
在类路径上可用规范字符串
a TypeSafe configuration
包含规范字符串或TypeSafe配置的文件名
8.6.1. 包含的要素类型¶
GeoMesa发行版随附 SimpleFeatureType
几种常见数据类型的定义,包括Twitter、GeoNames、T-Drive等。看见 预打包的转换器定义 获取完整的详细信息。
这些类型通过类路径加载可用,如下所述。可用类型可以使用 env 指挥部。
8.6.2. 类路径加载¶
GeoMesa使用 TypeSafe Config 用于加载的库 SimpleFeatureType
类路径中的S。遵循约定,GeoMesa将加载由文件定义的默认配置 reference.conf
和/或 application.conf
。在二进制分发版中,这些文件包含在 conf
目录,具有各种预定义类型。看见 预打包的转换器定义 有关提供的类型的更多信息,请参见。
用户可以修改这些文件以定义他们自己的文件 SimpleFeatureType
S。默认情况下, SimpleFeatureType
S应定义为路径下的对象 geomesa.sfts
。他们是通过他们的钥匙来识别的。
这个 SimpleFeatureType
对象允许使用以下键:
type-name
-用于指定类型名称的字符串。如果省略,则类型名称将默认为对象键。attributes
(必填)-字段数组(见下文)user-data
- arbitrary key-value pairs that will be set as user data in theSimpleFeatureType
这个 attributes
对象允许定义字段,这允许使用以下键:
name
(必需)-属性的简单名称type
(必需)-属性的类型。看见 GeoTools要素类型 了解更多详细信息。
其他属性键将被设置为属性上的用户数据,并可用于启用属性索引、指示默认日期字段等。请参阅 设置属性选项 了解更多详细信息。
一旦成为 SimpleFeatureType
已在类路径上定义,则可以通过其众所周知的名称引用它,即 geomesa.sfts
。可用类型可以使用 env 指挥部。
8.6.2.1. 示例¶
以下文件定义了 SimpleFeatureType
被呼叫 example
,具有四个属性:
geomesa = {
sfts = {
# other SFTs
# ...
example = {
attributes = [
{ name = "name", type = "String", index = true }
{ name = "age", type = "Integer" }
{ name = "dtg", type = "Date", default = true, index = true }
{ name = "geom", type = "Point", default = true , srid = 4326 }
]
}
}
}
8.6.3. 规范字符串¶
A SimpleFeatureType
也可以定义为字符串。每个属性的格式为 name:type:foo=bar
,在哪里 name
是属性名称, type
是属性绑定,并且 foo=bar
是可选的用户数据。完整类型被定义为1-n个属性,由逗号分隔,然后(可选)是分号,后跟以逗号分隔的类型级别用户数据。默认几何是使用指定的 *
。
看见 GeoTools要素类型 和 设置属性选项 有关属性类型和用户数据的更多详细信息。
由于规范字符串不包含功能类型名称,因此必须单独提供该名称。
8.6.3.1. 示例¶
此字符串对应于上面的配置示例::
name:String:index=true,age:Integer,dtg:Date:index=true:default=true,*geom:Point:srid=4326
8.6.4. 配置字符串¶
不是定义一个 SimpleFeatureType
配置,则可以将相同的配置字符串作为参数直接传递。请注意,确保该定义仍嵌套在 geomesa.sfts
。
8.6.5. 文件名¶
可以在包含规范字符串或配置字符串的文件中定义类型,而不是直接在命令行上定义它们。然后可以按名称引用该文件。