WFS

WFS是一个开放的地理空间联盟(OGC)规范。有关格式本身的详细信息,请参阅:http://www.opengeospatial.org/standards/wfs

WFS允许客户机从多个Web要素服务中检索以地理标记语言(GML)编码的地理空间数据。GML建立在标准的Web语言XML之上。

WFS不同于流行的Web地图服务(WMS)规范,因为WFS返回有效GML格式的数据子集,而不仅仅是数据的图形图像。

能力

使用getcapabilities请求向WFS服务器请求功能将返回一个XML文档,其中显示哪些层和投影可用等。WFS getcapabilities URL的示例:

getCapabilities生成的XML示例:

...
<FeatureTypeList>
  <Operations>
    <Query/>
  </Operations>
  <FeatureType>
    <Name>continents</Name>
    <Title>World continents</Title>
    <SRS>EPSG:4326</SRS>
    <LatLongBoundingBox minx="-180" miny="-90" maxx="180" maxy="83.6274"/>
  </FeatureType>
  <FeatureType>
    <Name>cities</Name>
    <Title>World cities</Title>
    <SRS>EPSG:4326</SRS>
    <LatLongBoundingBox minx="-178.167" miny="-54.8" maxx="179.383" maxy="78.9333"/>
  </FeatureType>
</FeatureTypeList>
...

数据访问/连接方法

  • WFS访问是核心MapServer功能。MapServer当前支持WFS 1.0.0版。

  • WFS访问也通过OGR支持。

  • 必须使用ConnectionType WFS或ConnectionType OGR(请参见 通过MapServer的OGR矢量层 有关如何通过OGR使用WFS的详细信息的文档)。

  • 可以通过 Mapfile 中的层请求WFS层,也可以通过带有getfeature请求的浏览器直接请求GML。您可以使用类型名请求指定特定的层。在 Mapfile 中,应将名称/值对放入元数据对象中。

  • 您可以使用maxfeatures选项(例如&maxfeatures=100)限制在GML中返回的功能的数量。

直接通过浏览器的WFS请求示例:

以下URL请求层大陆的GML。(有关此测试服务器上可用的可能层,请参阅上面的getCapabilities)。URL都是一行,为了可读性,这里进行了拆分(单击 here 对于工作链接)。::

https://demo.mapserver.org/cgi-bin/wfs?
SERVICE=WFS&
VERSION=1.0.0&
REQUEST=getfeature&
TYPENAME=continents&
MAXFEATURES=100

Mapfile 示例

LAYER
  NAME "continents"
  TYPE POLYGON
  STATUS ON
  CONNECTION "https://demo.mapserver.org/cgi-bin/wfs?"
  CONNECTIONTYPE WFS
  METADATA
    "wfs_typename"          "continents"
    "wfs_version"           "1.0.0"
    "wfs_connectiontimeout" "60"
    "wfs_maxfeatures"       "10"
  END
  PROJECTION
    "init=epsg:4326"
  END
  CLASS
    NAME "Continents"
    STYLE
      COLOR 255 128 128
      OUTLINECOLOR 96 96 96
    END
  END
END # Layer