WFS输出格式

WFS以多种格式返回特性和特性信息。指定输出格式的语法为:

outputFormat=<format>

在哪里? <format> 是以下选项之一:

格式

句法

笔记

GML2级

outputFormat=GML2

WFS 1.0.0的默认选项

GML3型

outputFormat=GML3

WFS 1.1.0和2.0.0的默认选项

Shapefile

outputFormat=shape-zip

将生成包含形状文件的zip存档(请参见 形状文件输出 下面)。

JSON

outputFormat=application/json

返回geojson或json输出。注意 outputFormat=json 仅支持GetFeature(用于向后兼容)。

JSONP

outputFormat=text/javascript

返回A JSONP 形式: parseResponse(...json...) . 见 WMS供应商参数 更改回调名称。请注意,此格式在默认情况下是禁用的(请参见 影响WMS的全局变量

CSV

outputFormat=csv

返回csv(逗号分隔值)文件

备注

一些额外的输出格式(例如 Excel )可以使用扩展名。通过执行WFS可以找到特定地理服务器实例支持的完整输出格式列表。 GetCapabilities 请求。

geoserver提供 format_options 供应商特定参数,用于指定特定于每个格式的参数。语法是:

format_options=param1:value1;param2:value2;...

形状文件输出

shapefile格式有许多限制,这些限制会阻止将数据源转换为等效的shapefile。为了遵守这些限制,shape-zip输出格式将自动对源数据应用一些转换,并最终将单个集合拆分为多个shapefile。特别是,shape zip格式将:

  • 将属性名减少到DBF接受的长度,确保没有冲突(在属性名末尾添加计数器以处理此问题)。

  • 将多个几何图形类型扇出到以原始特征类型命名的平行形状文件中,再加上几何图形类型作为后缀。

  • 扇出多个形状文件以防达到最大大小

.shp和.dbf文件的默认最大大小都是2gb,可以通过将GS-SHP-Max-U大小和GS-DBF-Max-U大小系统变量设置为不同的值(作为字节计数,默认值为2147483647)来修改这些限制。

形状文件输出 format_options

  • format_option=filename:<zipfile> :如果提供了文件名,则该名称将用作输出文件名。例如, format_options=filename:roads.zip .

形状文件名自定义

如果未指定文件名,则从请求的功能类型名称推断输出文件名。可以通过准备 Freemarker template 它将配置归档文件(zip文件)的文件名及其包含的文件。默认模板为:

zip=${typename}
shp=${typename}${geometryName}${geometryType}
txt=wfsrequest

这个 zip 属性是存档的名称, shp 属性是给定功能类型的形状文件的名称,以及 txt 是实际WFS请求的转储。

模板中可用的属性包括:

  • typename -功能类型名称(用于 zip 属性如果请求包含多个功能类型,则这将是第一个功能类型)

  • geometryName -几何属性的名称。仅当原始要素类型具有多个几何图形属性时使用。

  • geometryType -形状文件中包含的几何图形类型。仅当输出几何图形类型是通用的,并且各种几何图形存储在每个类型的一个shapefile中时才使用此选项。

  • workspace -功能类型的工作区

  • timestamp -带有请求时间戳的日期对象

  • iso_timestamp -中的字符串(请求的ISO时间戳) yyyyMMdd_HHmmss 格式

JSON和JSONP输出

json输出格式(和jsonp,如果启用)将功能内容作为 GeoJSON 文件。下面是一个简单的geojson文件的例子;

{  "type": "Feature",
   "geometry": {
      "type": "Point",
      "coordinates": [125.6, 10.1]
   },
   "properties": {
      "name": "Dinagat Islands"
   }
}

输出属性可以包括使用列表和映射:

{
  "type": "Feature",
  "id": "example.3",
  "geometry": {
    "type": "POINT",
    "coordinates": [ -75.70742, 38.557476 ],
  },
  "geometry_name": "geom",
  "properties": {
    "CONDITION": "Orange",
    "RANGE": {"min":"37","max":"93"}
  }
}

JSON输出 format_options

  • format_options=id_policy:<attribute name>=<attribute|true|false> 用于确定ID值是否包含在输出中。

    使用 format_options=id_policy:reference_no 用于使用引用无属性生成功能ID,或 format_options=id_policy:reference_no=true 用于生成默认功能ID,或 format_options=id_policy:reference_no=false 抑制特征ID输出。

    如果未指定id_策略,则使用geotools默认功能id生成。

  • format_options=callback:<parseResponse> 仅适用于JSONP输出格式。参见 WMS供应商参数 更改回调名称。请注意,此格式在默认情况下是禁用的(请参见 影响WMS的全局变量

  • format_option=filename:<file>: if a file name is provided, the name is used as the output file name. The extension json is optional, for example format_options=filename:export or format_options=features.json

JSON输出 system properties

  • json.maxDepth=<max_value> 用于确定编码阶段允许的JSON嵌套对象的最大数量。默认情况下,该值为100。

CSV输出

默认CSV文件使用逗号分隔值。文件的每一行都是一条数据记录。每条记录由一个或多个用逗号分隔的字段组成。可以使用FORMAT_OPTIONS更改分隔符,如下所示。

CSV文件输出 format_options

  • format_option=filename:<file> :如果提供了文件名,则该名称将用作输出文件名。例如, format_options=filename:roads.csv

  • format_option=csvseparator:<csvseparator> (默认为 `, ):如果提供分隔符,则用于分隔输出CSV文件中的值。例如, ``format_options=csvseparator:-` 用于获取短划线分隔的文件。

某些特殊字符需要使用关键字处理,如下所示:

  • 空格分隔: format_options=csvseparator:space

  • 制表符分隔: format_options=csvseparator:tab

  • 分号分隔: format_options=csvseparator:semicolon

Previous: WFS参考