8.6. 定义简单要素类型

A SimpleFeatureType 定义架构中属性的名称和类型。几个命令行工具需要定义 SimpleFeatureType ,例如创建一个新的模式。GeoMesa命令支持多种不同的方式来定义一种方式(按优先级顺序):

  1. 一个广为人知的名字 SimpleFeatureType 在类路径上可用

  2. 规范字符串

  3. a TypeSafe configuration

  4. 包含规范字符串或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 the SimpleFeatureType

这个 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. 文件名

可以在包含规范字符串或配置字符串的文件中定义类型,而不是直接在命令行上定义它们。然后可以按名称引用该文件。