使用XML文件配置tinyows

配置tinyows的最简单方法是使用一个名为 tinyows.xml .

默认路径为 /etc/tinyows.xml . 您也可以使用 TINYOWS_CONFIG_FILE 环境变量来设置自己的路径。

配置文件简单示例

一个例子 config.xml 文件在演示目录中:

<tinyows online_resource="http://127.0.0.1/cgi-bin/tinyows"
         schema_dir="/usr/local/tinyows/schema/">

 <pg host="127.0.0.1" user="postgres" password="postgres" dbname="tinyows_demo" port="5432"/>

 <metadata name="TinyOWS Server"
           title="TinyOWS Server - Demo Service" />

 <layer retrievable="1"
        writable="1"
        ns_prefix="tows"
        ns_uri="http://www.mapserver.org/tinyows/"
        name="world"
        title="World Administrative Boundaries" />

 <layer retrievable="1"
        writable="1"
        ns_prefix="tows"
        ns_uri="http://www.mapserver.org/tinyows/"
        name="france"
        title="French Administrative Sub Boundaries (IGN - GeoFLA Departements)" />

</tinyows>

测试config.xml文件

一旦有了与服务相关的config.xml文件,就可以使用--check选项启动tinyows,以验证配置文件、测试数据库连接并列出要使用的层:

./tinyows --check
 TinyOWS version:   1.1.0
 FCGI support:      Yes
 Config File Path:  /etc/tinyows.xml (TinyOWS XML)
 PostGIS Version:   2.1.0
 PostGIS dsn:       host=127.0.0.1 user=postgres password=postgres dbname=foo port=5432
 Output Encoding:   UTF-8
 Database Encoding: UTF8
 Schema dir:        /usr/local/share/tinyows/schema/
 Display bbox:      Yes
 Estimated extent:  No
 Check schema:      Yes
 Check valid geoms: No
 Available layers:
  - public.commune (2154) -> tows.commune [RW]
  - public.world (4326) -> tows.world [RW]

config.xml文件的结构

TiNYOW元件

tinyows是根元素。他是强制性的,必须包含一些关于服务本身的系统信息。某些全局服务选项也可以在此级别上打开或关闭。

属性

必修的?

违约

描述

online_resource

强制性的

服务所在的URL,例如: http://127.0.0.1/cgi-bin/tinyows

schema_dir

强制性的

tinyows schema dir所在的路径,例如: /usr/local/tinyows/schema/

日志

可选择的

Tinyows记录输入请求的路径。例如: /var/log/tinyows.log . 此文件必须可由拥有tinyows进程的用户写入。

log_level

可选择的

0

用于指示要记录内容的位字段值:1:错误,2:事件,4:HTTP查询,8:SQL。例如:15个记录全部。

degree_precision

可选择的

6

当坐标以经纬度表示时,指示小数精度的位数。

meter_precision

可选择的

0

指示投影坐标时要使用的小数精度位数(即米单位)。

display_bbox

可选择的

1

指示是否应为WFS GML计算边界框的标志 GetFeature 输出。这在WFS规范中是强制性的。但由于这是一项耗时的工作,因此能够将其停用可能会很有趣。

estimated_extent

可选择的

0

用于指示马口铁是否应使用估计范围的标志(速度更快,但精度稍差)。

check_schema

可选择的

1

一个标志,用于指示在执行前是否必须根据架构检查输入数据。注意,模式验证是安全性的重要组成部分。禁用此属性会造成危险。

check_valid_geom

可选择的

1

用于指示在执行事务之前是否应完成OGC SFS 1.1几何验证的标志。

编码

可选择的

UTF-8

输出编码。例如,其他值可以是ISO-8859-1。没有对数据进行编码转换;此属性是声明性的。

expose_pk

可选择的

0

用于指示tinyows是否应在架构中公开pk的标志(因此在事务查询中需要它们)。

wfs_default_version

可选择的

用于指示WFS默认版本的字符串版本,例如1.0.0或1.1.0。

极限元素

limits元素为服务器输出提供最大值。它可以帮助防止拒绝服务攻击或异常大的用户查询导致服务器崩溃。此元素是可选的。

限制属性

属性

必修的?

违约

描述

特征

可选择的

用于设置返回到WFS客户端的最大功能数,启用 GetFeature 请求

地球箱

可选择的

地理边界框,用于指示最大范围:东、西、北、南

<tinyows>
 ...
 <limits features="10000" />
 ...
</tinyows>

PostgreSQL连接

PostgreSQL连接元素。此元素是必需的。

属性

必修的?

违约

描述

主办

可选择的

本地服务器

PostgreSQL服务器的名称(或IP)(默认为localhost)

用户

可选择的

要连接的PostgreSQL用户(默认为用于运行服务器的系统用户)

密码

可选择的

PostgreSQL密码连接

库名

可选择的

PostGIS数据库(默认情况下,与用于运行服务器的系统用户相同

港口

可选择的

5432

PostgreSQL端口号

编码

可选择的

UTF-8

PostgreSQL DB编码,如http://www.postgresql.org/docs/9.0/static/multibyte.html charset-table中所述

<tinyows>
 ...
 <pg host="127.0.0.1"
        user="postgres"
        password="postgres"
        dbname="gis_data"
        port="5432" />
  ...
</tinyows>

元数据和联系人元素

用于提供有关服务本身的信息。这两个要素是强制性的。

元数据属性

属性

必修的?

违约

描述

名称

强制性的

Web服务名称

标题

强制性的

Web服务标题

关键词

可选择的

Web服务关键字列表(逗号分隔列表)

费用

可选择的

网络服务费

access_constraints

可选择的

Web服务访问约束

抽象元素

抽象元素是元数据的可选子元素。它是一个自由格式化的服务文本描述的地方。

联系人属性

属性

必修的?

违约

描述

名称

强制性的

Web服务联系人姓名

网站

强制性的

Web服务联系人URL

电子邮件

强制性的

Web服务联系人电子邮件

individual_name

可选择的

Web服务联系人个人名称

位置

可选择的

Web服务联系人位置

电话

可选择的

Web服务联系人电话

传真

可选择的

Web服务联系人传真

online_resource

可选择的

Web服务联系人URL(例如附加元数据)

地址

可选择的

Web服务联系人邮政地址

邮政编码

可选择的

Web服务联系人邮政编码

城市

可选择的

Web服务联系人城市

administrative_area

可选择的

Web服务联系人管理区域

国家

可选择的

Web服务联系人国家/地区

hours_of_service

可选择的

Web服务联系小时数

contact_instructions

可选择的

Web服务联系说明||

只有强制属性的联系人和元数据示例:

<metadata name="TinyOWS Server"
          title="TinyOWS Server - Demo Service" />

<contact name="TinyOWS Server"
         site="http://www.mapserver.org/tinyows/"
         email="tinyows-users@lists.maptools.org" />

层元

layer元素用于设置服务提供的所有层。尽管该元素在技术上是可选的,但省略它将导致根本不提供任何层。

属性

必修的?

违约

继承?

描述

ns_prefix

强制性的

是的

WFS中使用的层的命名空间前缀

ns_uri

强制性的

是的

WFS中使用的层的命名空间URI

名称

强制性的

层名

标题

可选择的

层标题

可检索的

可选择的

是的

如果为真,则可以在WFS上检索层。 GetFeature 请求

可写的

可选择的

是的

如果为真,则可以使用WFS事务请求编辑层。

图式

可选择的

“公共”

是的

PostgreSQL架构名称。

桌子

可选择的

PostgreSQL表名(默认为使用层名)。

摘要

可选择的

摘要文本

关键词

可选择的

是的

关键字(逗号分隔列表)

SRID

可选择的

是的

以逗号分隔的输出srid列表

地球箱

可选择的

是的

WGS-84 B最大范围:东、西、北、南

include_items

可选择的

是的

要检索的列的逗号分隔列表(仅限)

exclude_items

可选择的

是的

要检索的列的逗号分隔列表

可选择的

是的

当没有PostgreSQL One时用作主键的列名(例如,与View一起使用很有用)

<tinyows>
 ...
     <layer retrievable="1"
        writable="1"
        ns_prefix="tows"
        ns_uri="http://www.mapserver.org/tinyows/"
        name="world"
        title="World Administrative Boundaries" />
 ...
</tinyows>

嵌套层

层实体可以嵌套,在这种情况下属性是继承的。没有标题的层将被视为“虚拟”层。

<tinyows>
 ...
     <layer name="root"
            retrievable="1" writable="1"
            ns_prefix="tows"
            ns_uri="http://www.mapserver.org/tinyows/"
            schema="my_db_schema">

          <layer name="foo" title="foo" />
          <layer name="bar" title="bar" />

     </layer>

 ...
</tinyows>