使用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,例如: |
|
schema_dir |
强制性的 |
tinyows schema dir所在的路径,例如: |
|
日志 |
可选择的 |
Tinyows记录输入请求的路径。例如: |
|
log_level |
可选择的 |
0 |
用于指示要记录内容的位字段值:1:错误,2:事件,4:HTTP查询,8:SQL。例如:15个记录全部。 |
degree_precision |
可选择的 |
6 |
当坐标以经纬度表示时,指示小数精度的位数。 |
meter_precision |
可选择的 |
0 |
指示投影坐标时要使用的小数精度位数(即米单位)。 |
display_bbox |
可选择的 |
1 |
指示是否应为WFS GML计算边界框的标志 |
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客户端的最大功能数,启用 |
|
地球箱 |
可选择的 |
地理边界框,用于指示最大范围:东、西、北、南 |
<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上检索层。 |
可写的 |
可选择的 |
假 |
是的 |
如果为真,则可以使用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>