WFS和WPS PPIO的DXF输出格式

这个扩展为geoserver添加了两个不同的功能,这两个功能都与作为输出的DXF格式支持有关。

DXF是一种CAD交换格式,可用于在多个CAD系统中导入数据。作为文本格式,它可以很容易地压缩成更小的版本,因此需要一个dxf-zip格式,用于低带宽使用。

格式有多个修订版,因此我们需要选择一个“版本”的DXF来编写。扩展实现了版本14,但也可以很容易地扩展(通过SPI提供者)来编写其他版本。

WFS的dxf outputformat为WFS GetFeature请求添加了对两种额外输出格式的支持。新格式dxf和dxf-zip分别与“application/dxf”和“application/zip”mime类型关联。它们生成标准的DXF文件或压缩为zip格式的DXF文件。

WPS PPIO将DXF添加为WPS进程的输出格式选项。WPS PPIO要求在geoserver上安装WPS扩展。

WFS输出格式用法

请求示例:

http://localhost:8080/geoserver/wfs?request=GetFeature&typeName=Polygons&
outputFormat=dxf

输出示例(部分)::

  0
SECTION
  2
HEADER
  9
$ACADVER
  1
AC1014
...
  0
ENDSEC
...
  0
SECTION
  2
TABLES
...
  0
TABLE
  2
LAYER
...
  0
LAYER
  5
2E
330
2
100
AcDbSymbolTableRecord
100
AcDbLayerTableRecord
  2
POLYGONS
 70
         0
 62
         7
  6
CONTINUOUS
  0
ENDTAB
...
  0
ENDSEC
  0
SECTION
  2
BLOCKS
  ...
  0
ENDSEC
  0
SECTION
  2
ENTITIES
  0
LWPOLYLINE
  5
927C0
330
1F
100
AcDbEntity
  8
POLYGONS
100
AcDbPolyline
 90
         5
 70
         1
 43
0.0
 10
500225.0
 20
500025.0
 10
500225.0
 20
500075.0
 10
500275.0
 20
500050.0
 10
500275.0
 20
500025.0
 10
500225.0
 20
500025.0
  0
ENDSEC
  0
SECTION
  2
OBJECTS
...
  0
ENDSEC
  0
EOF

每个查询都呈现为一个层。几何图形编码为实体(如果简单到可以用单个DXF几何图形类型表示)或块(如果复杂,例如带孔或集合的多边形)。

有些选项可用于控制生成的输出。以下段落对其进行了描述。

获取请求格式选项

支持以下格式选项:
  1. version:(number)以指定的版本格式创建DXF(当前仅支持14个)

  2. asblock:(true/false)如果为true,则将所有几何图形写入块,然后作为实体插入。如果为false,则直接将简单几何体写入实体。

  3. 颜色:(逗号分隔的数字列表):按顺序用于DXF图层的颜色。如果层超过了指定的颜色,它们将被多次重复使用。如果不使用该选项,则使用一组默认颜色。颜色是AutoCAD颜色编号(7=白色等)。

  4. ltypes:(逗号分隔的线型描述符列表):按顺序用于DXF图层的线型。如果图层多于指定的线型,则它们将被多次重用。如果未指定,则所有图层都将被指定为实心连续线型。描述符的格式如下:<name>!<可重复模式> [!<base length>] ,其中,<name>是指定给线型的名称,<base length>(可选)是一个实数,用于指示线型图案的每个部分的长度(默认值为0.125),而<repeatable pattern>是线型图案的可重复部分的可视描述,作为(实线)序列, * (dot) and _ (empty space). For example a dash-dot pattern would be expressed as --_* _.

  5. 层:(逗号分隔的字符串列表)要分配给DXF层的名称。如果指定,则必须包含每个请求的查询的名称。默认情况下,将为图层指定标准名称。

  6. with attributes:(true/false)允许使用来自每个特征的属性编写一个额外的层,该层具有一个准时的几何体,其点位于原始特征的质心中。

Post选项

遗憾的是,目前不能在POST请求中使用FORMAT_OPTIONS。我们唯一选择实现的是Layers选项,通过查询属性的Handle属性实现。因此,如果指定,查询的层将被命名为其句柄属性。GetFeature标记的Handle属性也可用于覆盖生成的文件的名称。

WPS PPIO

安装WPS PPIO模块后,连同WPS扩展,返回FeatureCollection的WPS进程可以使用application/dxf或application/zip作为输出mime类型,以在输出中获取dxf(或zipped dxf)。