arcgisgeoserver发布wfs服务的wfs服务怎么调用

ArcGIS 10.1 for Server (Windows) - 教程:发布 WMS 服务
本教程将引导您完成将 ArcMap 地图文档发布为 WMS 服务的整个过程。WMS 是开放地理空间联盟 (OGC) 针对在 Internet 上为地图影像提供服务而发布的一种规范。如果您不了解 WMS 并且想要在学习本教程之前了解更多信息,请参阅 。
开始学习本教程前如果您刚刚安装了 ArcGIS Server,那么在 ArcMap 中连接到服务器并发布服务之前,需要完成一些准备工作:有关如何配置 ArcGIS Server 站点的详细信息,请参阅本帮助系统的部分。要了解如何使 GIS 资源所引用的数据对于服务器可用,请参阅主题。发布 WMS 服务按照以下步骤在 ArcMap 中配置并发布 WMS 服务:步骤:在 ArcMap 中打开地图文档,从主菜单中选择文件 & 共享为 & 服务。在共享为服务 窗口中,选择发布服务。单击下一步。在发布服务对话框中,单击连接到 ArcGIS Server
以创建一个到服务器的新连接。在添加 ArcGIS Server 窗口中,选择发布 GIS 服务。单击下一步。对于服务器 URL,输入要连接的 ArcGIS Server 站点的 URL。例如,http://myserver:6080/arcgis。在服务器类型下拉列表中选择 ArcGIS Server。在发布过程中,将创建服务定义文件并将其临时存储到本地磁盘上。发布过程完成后,服务定义将上传到服务器而且本地文件将被删除。考虑到本教程的目的,接受默认的过渡文件夹并继续。如果服务器管理员已为您的站点启用了安全功能,请输入用户名和密码。单击完成。还可以在发布服务 窗口中,输入新的服务名称。名称长度不能超过 120 个字符,并且只能包含字母数字字符和下划线。单击下一步。默认情况下,服务将发布到 ArcGIS Server 的根文件夹下。也可将服务组织到根文件夹下的子文件夹中。选择要将服务发布到其中的目标文件夹,或创建一个新的文件夹存来储服务。单击继续。服务编辑器 随即显示。您将使用服务编辑器 选择用户可对 WMS 服务执行的操作,还可对服务器显示服务的方式进行精细控制。单击服务能力选项卡。默认情况下,地图和 KML 两项功能自动启用。选择 WMS。在服务编辑器 的左侧窗格中,单击 WMS。使用此窗格可选择如何配置 WMS 服务的属性。通过提供 WMS 服务属性,用户可对服务发布程序有更好的了解。URL 字段显示客户端用来访问 WMS 服务的 URL。URL 格式如下:http://&服务器名称&:&端口号&/arcgis/services/&文件夹名称(如果适用)&/&服务名称&/MapServer/WMSServer。注:复制并保存 WMS 服务 URL。您需要用这个 URL 来执行本教程中的其他步骤。如果要使用系统生成的服务能力文件来发布 WMS 服务,请使用默认的在下面输入服务属性选项。“名称”、“标题”和“在线资源”字段会自动填充,不应对其进行修改。也可使用列表中的字段填充其他属性。有关详细信息,请参阅 。如果要配置 WMS 服务使用外部能力文件,则选择使用外部能力文件。要使用此选项,您必须已创建 WMS 能力文件。有关详细信息,请参阅。如果将 SLD 文件绑定到 WMS 服务,则需要导航至其所在的磁盘位置或在 SLD 路径或 URL 字段中输入其 URL。有关详细信息,请参阅。要反映 WMS 服务地图文档中各图层的名称,请选择使用地图文档中的图层名称。地图中的所有图层名称都必须是唯一的并且不能使用以下任何字符:&, &, &, ", '.
有关如何使用服务编辑器 设置 WMS 服务属性的详细信息,请参阅 。有关如何实现服务的最佳配置以进行部署的信息,请参阅。
单击分析 。该操作用于对地图文档进行检查,看其是否能够作为 WMS 服务发布到服务器。配置 WMS 服务时为获得更多视图区域,请单击服务编辑器 顶部的折叠
按钮。将地图发布为 WMS 服务之前,必须在准备 窗口中修复任何存在的错误 。另外,您还可以修复警告和通知消息,以进一步完善服务的性能和显示。有关解决这些问题的详细信息,请参阅。可将文件夹和地理数据库注册到 ArcGIS Server 站点,从而确保服务器可识别并使用数据。如果继续以下步骤,那么地图文档中所引用的来自取消注册 的文件夹或地理数据库的任何数据都将在发布时复制到服务器。这是一种预防性措施,可确保服务器能够访问服务所使用的所有数据。有关将文件夹或地理数据库注册到 ArcGIS Server 站点的完整说明,请参阅。还可以在服务编辑器 中,单击预览 。这样您便可以了解在 Web 上查看地图时地图的外观。有关详细信息,请参阅。修复了地图文档中的错误后,请单击发布 。使用 WMS 服务要验证是否将 ArcMap 文档作为 WMS 服务成功发布,可以立即在 ArcMap 中使用该服务。为此,请执行以下步骤:步骤:
仍然在 ArcMap 中,打开目录 窗口并展开 GIS 服务器节点。
双击添加 WMS 服务器。
在添加 WMS 服务器 窗口中,在 URL 文本框中粘贴 WMS 服务的 URL。
单击获取图层并等待 WMS 服务的连接。成功连接后,可以看到带有 WMS 服务元数据的图层树。
单击确定。
您的 WMS 服务连接的节点会出现在目录 窗口中的 GIS 服务器节点下。展开代表 WMS 服务的节点,选择任一子节点,然后将服务拖动到 ArcMap 内容列表查看服务。
也可以尝试识别 WMS 服务中的某些要素,方法是选择工具条中的识别工具并单击地图中的任意位置。
尽管此教程介绍的是在 ArcMap 中使用目录 窗口连接 WMS 服务,不过您会发现在 ArcCatalog 中添加 WMS 服务的过程与其非常相似。在 ArcCatalog 中展开 GIS 服务器结点应显示 WMS 服务器连接,因为已在 ArcMap 的目录 窗口中连接到该服务器。可以通过选择目录树中的服务并单击预览选项卡预览 WMS 服务。如果看不到连接,则双击添加 WMS 服务器按照本教程中的操作方法添加一个新连接。ArcGIS发布WFS-T数据更新服务
ArcGISserver10.1支持WFS的大部分功能,部分查询有BUG,如within在以Polygon进行过滤时实际使用的是其边界范围。与GEOServer相比,WFS-T的配置也相对繁琐。在本
Arc server10.1支持WFS的大部分功能,部分查询有BUG,如within在以Polygon进行过滤时实际使用的是其边界范围。与GEOServer相比,WFS-T的配置也相对繁琐。在本篇记录详细的配置过程,并附上客户端调用方法。在搭建服务时,目前得到的结论是:搜索,图层展示使用WMS与arcgis默认的mapserver相结合的方式,由于在有表关联,即图层存在join(1:1)或relate(1:M)关系)的情况下,WFS完全失效。故不建议使用WFS进行查询。而Feature access在图层展示时不支持多字段分类展示,也不建议使用。数据维护使用WFS-T,建议单独将库共享为geoservice。这样可以实现数据的维护与查询分离,功能上互不干扰。但又可以达到数据同步的目的。设想这样一个场景库 A 中有空间表 video_pt, 此表仅有两个字段,主键ID,空间字段GEOM关联库 B 中有信息表 video_info, 其中包含基本的属性信息。如名称,地址,名等信息。两表通过主键1对1关联。要完成的目标:客户端只更新video_pt的空间字段,查询出图时则需使用关联后的数据。步骤一:转换普通数据库为空间库,具体配置方法参考另一篇文章ArcGIS 发布Feature Service 。此过程会在当前库中创建SDE的相关表以及存储过程,所以在转换时强烈建议使用新建数据库。在此库中一律存放空间信息。步骤二:新建db versionarccatalog -& database connections -& 数据库名右键properties -& connections标签下点击show connected users... -& 弹窗中选择versions选项卡 -& 右键DEFAULT new version -& 输入下级version的名称和描述,这里填wfs,访问方式选public。此过程的步骤说明在desktop help中WFS-T的相关文档中也能找到。步骤三:切换数据库版本到刚刚建立的version,并注册到arcgis server上arccatalog -& database connections -& 数据库名右键geodatabase connection properties在transactional version下,可以看到有两个版本,DEFAULT和我们刚刚建立的WFS,选择WFS,点OK。这样就成功切换到了新的数据库版本。注册到arcgis server的过程与平常一样,只是如果之前已经注册过建议删除后重新注册。步骤四:将需要更新的表注册到相应的数据库版本下右键表选择 manage -& Register as versioned, 弹框中勾上同步到base version.步骤五:共享空间库右键库 share as geodata service... 后面的配置过程同发布map service差不多,注意勾上WFS一项,并且勾上启动事务和事务锁。(经过测试,有没有锁的情况下更新效率差不多)。客户端调用http post 方式,请求格式为XML,包含在POST BODY里面更新数据分两步操作GetFeatureWithLock:&&&&根据过滤条件获取事务锁和要素ID,如果要素已被锁定则不能进行更新。&&&&注意其中两个参数,&&&&expiry:锁超时时间,单位分钟,默认为3分钟&&&&lockAction: 可选参数为 ALL,SOME&GetFeatureWithLock
&&&&version="1.1.0"
&&&&service="WFS"
&&&&expiry="1"
&&&&lockAction="ALL"&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&xmlns="http://www.opengis.net/wfs"&&&&&&&&&&&&&&&&
&&&&xmlns:ogc="http://www.opengis.net/ogc"
&&&&xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
&&&&xsi:schemaLocation&=&"http://www.opengis.net/wfs&../wfs/1.0.0/WFS-transaction.xsd"&&
&&&&&Query&typeName="test:video_pt"&
&&&&&&&&&ogc:Filter&
&&&&&&&&&&&&&ogc:PropertyIsEqualTo&
&&&&&&&&&&&&&&&&&ogc:PropertyName&OBJECTID&/ogc:PropertyName&
&&&&&&&&&&&&&&&&&ogc:Literal&5779&/ogc:Literal&
&&&&&&&&&&&&&/ogc:PropertyIsEqualTo&
&&&&&&&&&&/ogc:Filter&&&&&&&&&&&&&&&&&
&&&&&&/Query&
&/GetFeatureWithLock&:更新操作,需要使用上一步获得的锁IDreleaseAction参数与lockAction相对应,可选参数为ALL,SOME,,默认为ALL&wfs:
&&&&version="1.1.0"
&&&&service&=&"WFS"
&&&&releaseAction&=&"ALL"
&&&&xmlns:ogc="http://www.opengis.net/ogc"
&&&&xmlns:wfs&=&"http://www.opengis.net/wfs"
&&&&xmlns:gml="http://www.opengis.net/gml"
&&&&xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
&&&&xsi:schemaLocation&=&"http://www.opengis.net/wfs&../wfs/1.1.0/WFS-transaction.xsd"&&
&&&&&wfs:LockId&&/wfs:LockId&
&&&&&wfs:Update&typeName="test:video_pt"&
&&&&&&&&&wfs:Property&
&&&&&&&&&&&&&wfs:Name&GEOM&/wfs:Name&
&&&&&&&&&&&&&wfs:Value&
&&&&&&&&&&&&&&&&&gml:Point&srsName="urn:x-ogc:def:crs:EPSG:4326"&
&&&&&&&&&&&&&&&&&&&&&gml:coordinates&decimal="."&cs=","&ts="&"&113,23&/gml:coordinates&
&&&&&&&&&&&&&&&&&/gml:Point&
&&&&&&&&&&&&&/wfs:Value&
&&&&&&&&&/wfs:Property&
&&&&&&&&&&&&&ogc:Filter&
&&&&&&&&&&&&&&&&&ogc:FeatureId&fid="F406__5779"/&
&&&&&&&&&&&&&&&&&ogc:FeatureId&fid="F406__5780"/&
&&&&&&&&&&&&&/ogc:Filter&
&&&&&/wfs:Update&
&/wfs:Transaction&
你最喜欢的OpenLayers调用ArcGIS Server发布的WFS服务
OpenLayers调用ArcGIS Server发布的WFS服务
原创: 蔡建良
一. 开发环境
1) Openlayers2.13+arcgis server9.3
2) WFS地图空间参考EPSG: 4326也可以是EPSG:102113
3) Openlayers底图空间参考EPSG: 900913
二. 发布地图服务
1) 采用ArcMap制作mxd地图文档。
2) 采用ArcCatalog发布地图服务,将wfs打勾。
部分操作截图如下:
3) 测试WFS服务:
http://lx-server/arcgis/services/Yangdi/MapServer/WFSServer?request=GetCapabilities&service=WFS
三. 采用OpenLayers.Layer.Vector调用。该方法为POST方式。
WFS1.1.0支持服务端重投影:
new OpenLayers.Layer.Vector("一类样地",{
strategies: [new OpenLayers.Strategy.BBOX()],
protocol: new OpenLayers.Protocol.WFS({
version: "1.1.0",
srsName: "EPSG:102113",
url: "http://lx-server/arcgis/services/Yangdi/MapServer/WFSServer",
featureNS: "",
featureType: "plotpoint_Liaoning_Intersect",
maxFeatures: "10",
geometryName: "Shape"
projection: new OpenLayers.Projection("EPSG:102113"),
visibility: false
WFS1.0.0不支持服务端重投影,这边是客户端重投影:
new OpenLayers.Layer.Vector("一类样地",{
strategies: [new OpenLayers.Strategy.BBOX()],
protocol: new OpenLayers.Protocol.WFS({
version: "1.0.0",
srsName: "EPSG:4326",
url: "http://lx-server/arcgis/services/Yangdi/MapServer/WFSServer",
featureNS: "",
featureType: "plotpoint_Liaoning_Intersect",
maxFeatures: "10",
geometryName: "Shape"
projection: new OpenLayers.Projection("EPSG:4326"),
visibility: false
四. 采用OpenLayers.Layer.WFS调用。该方法为GET方式。
注意:使用该方法必须引入deprecated.js 文件。
new OpenLayers.Layer.WFS(
"一类样地",
"http://lx-server/arcgis/services/Yangdi/MapServer/WFSServer?",
request: 'GetFeature',
typename: "plotpoint_Liaoning_Intersect",
maxfeatures: 10,
extractAttributes: false,
version: "1.1.0",
srsName: "EPSG:102113"
projection: new OpenLayers.Projection("EPSG:900913"),
isBaseLayer: false,
extractAttributes: false,
visibility: false
五. OpenLayers调用WFS服务跨域问题解决
1) 在IIS中部署Openlayers开发的网站。
2) 安装python。并让IIS支持python脚本。部分操作截图:
3) 将openlayes自带的proxy.cgi扩展名改为proxy.py,并做如下修改。
(1) 打开proxy.py文件,将开头第一行内容
#!/usr/bin/env python (这是linux的路径)
改为windows路径:
#!C:/Python25/python.exe &u
(2) 在allowedHosts数组中添加要访问的跨域网址lx-server。
allowedHosts = ['www.openlayers.org', 'openlayers.org',
'', 'world.freemap.in',
'prototype.openmnnd.org', 'geo.openplans.org',
'sigma.openplans.org', 'demo.opengeo.org',
'www.openstreetmap.org', '',
'v2.suite.opengeo.org', 'v-swe.uni-muenster.de:8080',
'vmap0.tiles.osgeo.org', 'www.openrouteservice.org',
'maps.wien.gv.at','lx-server&]
4) 在网页脚本中加入如下代码:
OpenLayers.ProxyHost = "proxy.py?url=";
在浏览器上运行网页:http://localhost/ yangdi/index.html
Wfs服务返回数据格式为:
&wfs:FeatureCollection xmlns:anhuiplot="http://jane/arcgis/services/anhuiplot/MapServer/WFSServer" xmlns:gml="http://www.opengis.net/gml" xmlns:wfs="http://www.opengis.net/wfs" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jane/arcgis/services/anhuiplot/MapServer/WFSServer http://localhost/arcgis/services/anhuiplot/MapServer/WFSServer?request=DescribeFeatureType%26version=1.1.0%26typename=anhuiproj http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"&
&gml:boundedBy&...&/gml:boundedBy&
&gml:featureMember&...&/gml:featureMember&
&gml:featureMember&...&/gml:featureMember&
&gml:featureMember&...&/gml:featureMember&
&gml:featureMember&...&/gml:featureMember&
&gml:featureMember&...&/gml:featureMember&
&gml:featureMember&...&/gml:featureMember&
&gml:featureMember&...&/gml:featureMember&
&gml:featureMember&...&/gml:featureMember&
&gml:featureMember&...&/gml:featureMember&
&gml:featureMember&...&/gml:featureMember&
&/wfs:FeatureCollection&
其中featureMember--
&gml:featureMember&
&anhuiplot:anhuiproj gml:id="F3__10"&
&anhuiplot:OBJECTID&10&/anhuiplot:OBJECTID&
&anhuiplot:Shape&
&gml:Point&
&gml:pos&.1439479&/gml:pos&
&/gml:Point&
&/anhuiplot:Shape&
&anhuiplot:PLOT_NO&6975&/anhuiplot:PLOT_NO&
&/anhuiplot:anhuiproj&
&/gml:featureMember&
经测试返回10个要素,数据大小为45K。这是由于字段太多造成。可将wfs服务的数据源不需要的字段删除,留下关键字段。最后留下3个字段,返回数据的大小变为4K。
> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!
有两种方式可以调用arcgis server发布的地图服务,一种是rest,一种是wms.
地图的投影为900913,arcgis server为10.0版本,地图服务的空间参考为3857.
与Google Map相对应的ArcGis投影文件: 众所周知,Google Map的投影参考为&WGS 84 Web墨卡托&,定义为 EPS ...
如果是本地发布的服务,在手机端调用server服务时,访问rest地址主机名要改为IP加端口号(192.168.1.100:6080),而且必须是内网才能访问
问题描述: ArcGIS Server 10发布的服务, (1)在相同网段的Desktop9.3和Engine 9.3程序下可以正常显示, (2)在不同网段Desktop9.3和Engine 9.3程序下都无法加载显示, (3)在相同或不同网段Desktop10.1和Engine 10.1程序下均可正常显示, 问题原因: ArcGIS Server 发布服务 ...
首先需要添加两个引用: using ESRI.ArcGIS.GISCusing ESRI.ArcGIS.DataSourcesR
/// &summary& /// arcgis engine 调用arcgis server服务 /// &/summary& /// &param name=&quot ...
WebGIS实现在线要素编辑之ArcGIS Server 发布Feature Service 过程解析
FeatureService也称要素服务,其最大的好处就是支持在线要素编辑,并将编辑同步更新到后台的数据库中,它需要ArcSDE提供地理数据库的访问支撑.因此Feature Service中的要素来源必须是来自于ArcSDE.
关于Fe ...
arcgis server 动态创建地图服务代码:
加入地图包括图层渲染,标注等,数据从ArcSDE中读出!
代码中有两个数据表:mapinfo(存储地图信息,key:地图GUID),LayerInfo(存储图层信息,包括其在SDE中的名称,以及最主要的其属于哪个地图的地图GUID),代码中的MapGUID即为地图GUID.
引言 上一篇我们已经安装好了ArcGIS体系的服务软件,这一篇将介绍如何把我们自己的数据通过ArcGIS Server发布出去,并且能够通过Web页面进行显示和编辑. 发布数据服务
在进行WebGIS开发中,地图显示的内容可以分成两类:一类是底图,或者是矢量的世界地图.中国地图.某个地区的底图:另一类就是业务图,对于用于遥感数据发布的WebGIS应用就是遥 ...
前一阵子,简单的学习了一下ArcGIS Server,在开发层次上ArcGIS Server支持两种协议,一个是老的Soap协议,也就是webservice,另外一种是REST协议,其中REST协议是从ArcGIS Server9.3开始支持的协议,也是ESRI今后只要支持的协议,但是老的Soap协议还继续支持.该章得内容主要介绍如何使用PHP ...ArcGIS Server Java Help - WFS 服务
使用 ArcGIS Server,您可以发布符合开放地理空间联盟 (OGC) 的网络要素服务 (WFS) 规范的服务。WFS 是通过 Web 提供地理要素服务的开放规范。
要通过 ArcGIS Server 使用 WFS 来发布数据,您必须具有相应的 ArcGIS Server 许可。有关许可要求的信息,请参阅。
本主题由以下各部分构成:
为何使用 WFS 服务?通过 WFS 服务提供数据服务的情况下,任何使用 Web 服务的应用程序均可访问地图或地理数据库中的地理要素。与返回地图图像的 OGC Web 地图服务 (WMS) 不同,WFS 服务返回的是带有几何和属性信息的实际要素,客户端可以将这些要素与属性用于任何类型的地理空间分析。WFS 服务也支持过滤器,由此用户可以在数据上执行空间查询和属性查询。技术注意事项使用 ArcGIS Server 创建的 WFS 服务兼容 WFS 1.1 规范。也同样支持基于只读操作的 WFS 1.0 规范。WFS 服务使用地理标记语言 (GML) 对要素数据进行编码。GML 仅为使用 XML 表示地理信息的方法之一。由 rcGIS Server WFS 服务所使用的 GML 使用简单要素专用标准。要了解关于 GML 的详细信息,请参阅 ArcGIS Desktop 帮助中的。
如何创建 WFS 服务有两种方法可以创建 WFS 服务:从地图或从地理数据库中创建。从地图创建 WFS 服务您可以从 ArcMap 地图文档 (.mxd) 入手创建 WFS 服务。使用 ArcGIS Server 管理器或者 ArcCatalog 将地图文档作为 ArcGIS Server 地图服务发布。当提示您选择要启用的功能时,请选中 WFS。这将创建一个任何 WSF 客户端访问此服务都可以使用的 URL。如果您发布服务时需要帮助,请参阅。对于地图文档,只有图层规范在 WFS 服务中是可用的。在图层级别定义的符号系统、查询定义以及字段别名将不会传输到 WFS 服务,因为该服务的目的在于显示数据中的要素。要通过 OGC 规范显示地图的可视属性,请使用 。当从地图文档发布 WFS 服务时,请牢记以下事项:如果您想要 WFS 服务支持编辑事务 (WFS-T),那么地图中所有图层的源数据必须来自同一个 ArcSDE 地理数据库。否则,该地图可以包含来自多个源的图层。地图中两个或两个以上的图层不可以引用同一个要素类或拥有相同的名称。否则,您可能会收到错误工作空间项目或者名称出现重复情况。图层的名称将会是从 WFS 返回的类型名。 要通过 WFS 服务发布数据,必须在地理数据库中注册数据(包括 SDE 视图在内)。 因为 WFS 仅使用要素,所以地图中任何矢量图层都将从服务中排除。 WFS 服务不支持虚拟类(例如,连接、关联、XY 事件、路径、coverage 或基于 Data Interoperability 扩展模块的图层)。如果您将源地图文档用于除了发布 WFS 服务之外的其他多种用途,则可能需要一份地图文档的副本,此副本将作为 WFS 服务的源文档。然后,您可以更改副本,使其达到以上要求而不影响您的原始地图文档。从地理数据库创建 WFS 服务创建 WFS 服务的另一个方法是从地理数据库入手。该地理数据库可为以下任意一种类型:个人地理数据库、文件地理数据库或 ArcSDE 地理数据库。使用管理器或者 ArcCatalog 将地理数据库作为 ArcGIS Server 地理数据服务发布。当提示您选择要启用的功能时,请选中 WFS。这将创建一个任何 WSF 客户端访问此服务都可以使用的 URL。当从地理数据服务创建 WFS 服务时,连接用户有权访问的所有要素类都将在该服务中显示。同样,该服务中仅显示在地理数据库中注册的要素类、表格以及 SED 视图。如果您发布服务时需要帮助,请参阅。从地理数据库中创建 WFS 服务允许您编辑要素、读取要素以及对它们进行查询。创建 WFS 服务的注意事项如果地图中或者地理数据库中的要素类使用一个不能用 表示的空间参考,WGS 84 将用作此要素类的空间参考。WFS 服务将忽略使用未知空间参考系统的地图或地理数据库中的要素类。
设置 WFS 属性WFS 服务一旦发布,您便可以设置它的特定属性。这些属性定义了服务的元数据信息供客户端检索和访问。默认情况下,已设置某些服务级别的属性,而其他级别的属性则处于未设置状态。以下内容描述了如何使用 ArcGIS Server 管理器或 ArcCatalog 来设置定义服务级别元数据的属性:启动 ArcCatalog 或 ArcGIS Server 管理器。 打开服务属性 对话框。要在 ArcCatalog 中实现这一点,右键单击现有服务,然后单击服务属性。在 ArcGIS Server 管理器中,单击服务选项卡,单击管理服务,然后单击该服务的编辑图标。单击功能选项卡。如果未在功能列表中选中 WFS,请将其选中。如果已选中,仅单击字母 WFS 便可。即会出现某些 WFS 特定的属性。单击在下面输入服务属性。在文本框中,输入您要包括在内的任意服务级别的元数据(例如,服务的名称、标题以及作者联系信息)。 当您完成添加元数据时,请单击保存并重新启动。您输入的信息将显示在系统生成的服务能力文件中。有关这些属性的描述,请参阅 版本 1.0。请注意,启用事务复选框用于允许通过 WFS-T 应用编辑内容。有关详细信息,请参阅下面的部分。定义元数据的另一个方法是使用一个外部服务能力文件。使用外部服务能力文件,可以针对您的要素类型添加除了默认值以外的其他投影。默认值包括图层或要素类的坐标系以及 WGS84 (EPSG 4326)。有关使用外部服务能力文件的详细信息,请参阅下面的部分。 作为 ArcGIS 10.0 中的新增功能,您也可以设置 DefaultMaxFeatures 属性,这样您便可以控制由服务返回的最大要素数。此属性可在配置服务文件或外部服务能力文件中设置。只有 WFS 1.1.0 支持 DefaultMaxFeatures 属性,所以如果您在使用外部服务能力文件,仅需在引用 1.1.0 属性的文件中设置此属性即可。 在配置服务文件中,DefaultMaxFeatures 属性应在 WFSServer 部分中定义如下:
&Extension&
&TypeName&WFSServer&/TypeName&
&Enabled&true&/Enabled&
&Properties&
&EnableDefMaxFeatures&true&/EnableDefMaxFeatures&
&DefMaxFeaturesValue&200&/DefMaxFeaturesValue&
&/Properties&
&/ows:Constraint&
&/Extension&
如果您使用的是外部服务能力,则 DefaultMaxFeatures 属性应在 WFSServer 1.1.0 文件的元数据部分中定义如下:
&ows:Constraint name="DefaultMaxFeatures"&
&ows:Value&200&/ows:Value&
&/ows:Constraint&
特殊字符所有的服务属性都不能包含以下字符:&、&、&、" 和 '。如果您需要使用其中的某个字符,则必须通过下表中相应的转义字符进行替换:
WFS 服务的安全性WFS 服务向 WFS 客户提供 ArcGIS Server 地图或地理数据服务。通过控制 WFS 服务父地图或地理数据服务的安全来管理 WFS 服务的安全性。如果拒绝某个特殊角色(例如规划人员)访问地图,则无论尝试通过 SOAP、REST 还是 WFS 接口使用地图,规划人员都将无法访问该地图。ArcGIS Server 支持多种不同的身份验证方案。通常会通过 OGC 接口访问的服务应使用 HTTP Basic、HTTP Digest 或集成的 Windows 身份验证进行保护。大多数 OGC 客户端(非 ESRI 客户端和 ESRI 客户端)都能够识别并使用这些应用广泛的标准身份验证方案。
访问 WFS 服务当您使用 ArcGIS Server 创建 WFS 服务时,此服务可用于支持 WFS 的任何客户端。客户端的类型Web 浏览器是 WFS 服务最简单的客户端。您可通过 HTTP 发出 WFS 请求,然后会通过浏览器返回响应或者异常。所有 WFS 服务都支持三种操作:GetCapabilities、DescribeFeatureType 以及 GetFeature。通过 URL 参数,您可以使用这些操作来获取 WFS 服务中的服务元数据、要素类型信息和 GML 编码的要素。在 OGC WFS 规范中有这些操作与参数的详细介绍。有许多第三方客户端可以使用 WFS 服务:要使用由 ArcGIS Server 创建的 WFS 服务,客户端必须支持 WFS 1.1 或 1.0 以及 GML 简单要素专用标准。ArcGIS Server 随附的开箱即用的 Web 制图应用程序不支持添加 WFS 服务。但是,ArcCatalog 和 ArcMap 可以使用 WFS 服务。有关在 ArcMap 中使用 WFS 服务的帮助,请参阅。WFS 1.1 规范指出,许多地理坐标系(包括 WGS84)的坐标都以纬度、经度 (y,x) 的顺序返回。通过 ArcGIS Server 发布的 WFS 服务遵守此规范。但是某些 WFS 客户端希望坐标以经度、纬度 (x,y) 的顺序返回。在这种情况下,您可以选择交换从 WFS 服务中返回的要素的坐标顺序,即以经度、纬度 (x,y) 的顺序返回。有关详细信息,请参阅下面的。URL 结构要连接该服务,您需要了解 URL。URL 遵循以下模式:http://&服务器名称&/&实例名称&/services/&文件夹名称(如果适用)&/&服务名称&/&服务类型&/WFSServer?服务器名称为您的 Web 服务器计算机的名称。 实例名称为当您安装 ArcGIS Server 时指定的 ArcGIS Server 实例名称。 服务类型可以是 MapServer 或 GeoDataServer,这取决于您是从地图还是从地理数据库中创建 WFS 服务。例如,如果您在地图服务 WFSDemoService(位于带有默认实例名称 arcgis 的服务器 MyServer 上的文件夹 DemoFolder 中)上启用了 WFS 功能,URL 将如下所示:http://MyServer/arcgis/services/DemoFolder/WFSDemoService/MapServer/WFSServer?同样,如果您在地理数据服务上启用 WFS 功能,URL 将如下所示:http://MyServer/arcgis/services/DemoFolder/WFSDemoService/GeoDataServer/WFSServer?使用过滤器当您使用 WFS 服务时,您可以使用一系列过滤器来选择各组要素。ArcGIS Server 创建的 WFS 服务使用的是 OGC OpenGIS 过滤器编码执行规范 (FE) 版本 1.1。以下是您可以应用的过滤器:
NotEqualTo
MultiPoint
LineString
Intersects
GreaterThan
LessThanOrEqualTo
GreaterThanOrEqualTo
注意:SortBy 过滤器仅可以应用于基于存储在 ArcSDE 地理数据库中数据的 WFS 服务。示例使用带有这些过滤器的 GetFeature 示例可以在的 9.5 部分中找到。使用 FeatureID 参数。在 GetFeature 请求中可使用 FeatureID 参数来请求 WFS 服务中的指定要素。FeatureID 参数由 FeatureType 和 gml:id(不是要素的 OBJECTID)组成。ArcGIS WFS 服务中要素的 FeatureID 格式为 &FeatureType&.&gml:id&。在 WFS 服务中标识要素的 gml:id 的一个方法是在感兴趣的 FeatureType 上执行 GetFeature 请求。注意:
基于 shapefile 的 WFS 服务中不提供要素的 gml:ids。 例如:WPS 服务中有一个名为 Cities 的 FeatureType。如果您对 Cities 执行 GetFeature 请求,则响应将包括每个要素的 gml:id。URL 示例:http://bobmk/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=getfeature&typename=cities在此示例中,城市 Vancouver 的 FeatureID 将为 cities.F293__1。以下请求可使用 FeatureID 专用于请求城市 Vancouver:http://bobmk/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=getfeature&featureid=cities.F293__1使用 Filter 参数。在 GetFeature 请求中可使用 Filter 参数来请求 WFS 服务中的指定要素。Filter 参数的优势在于,它是 WFS 规范中定义的标准关键字-值对编码的一部分,并且可追加到 HTTP Get 请求的末尾。Filter 参数的值必须设置为 URL 编码的 OGC Filter XML 字符串。可对上表中列出的任何受支持的过滤器进行编码,并可通过 Filter 参数将其发送到服务器。 例如,如果在 WFS 服务中创建了一个名为 blockgroups 的 FeatureType,则可通过发送以下 GetFeature 请求来获取 -122., 37.6, -122., 37.3 范围内的 blockgoup 要素:http://server/arcgis/services/playground/sanfrancisco_wfs/MapServer/WFSServer?service=WFS&request=GetFeature&version=1.1.0&typename=esri:blockgroups&Filter=&ogc:Filter&&ogc:BBOX&&ogc:PropertyName&Shape&/ogc:PropertyName&&gml:Box srsName="urn:x-ogc:def:crs:EPSG:4326"&&gml:coordinates&37.6,-122. 37.3,-122.&/gml:coordinates&&/gml:Box&&/ogc:BBOX&&/ogc:Filter&如果要请求包含特定点要素(如 122..749936)的 blockgroups 要素,可发送以下 GetFeature 请求:http://server/arcgis/services/playground/sanfrancisco_wfs/MapServer/WFSServer?service=WFS&request=GetFeature&version=1.1.0&typename=esri:blockgroups&Filter=&ogc:Filter&&ogc:Contains&&ogc:PropertyName&Shape&/ogc:PropertyName&&gml:Point srsName="urn:x-ogc:def:crs:EPSG:4326"&&gml:pos srsName="urn:x-ogc:def:crs:EPSG:936 -122.431577&/gml:pos&&/gml:Point&&/ogc:Contains&&/ogc:Filter&注意:WFS 要求过滤器 XML 字符串中包含相关的命名空间前缀。此外,为避免 Web 浏览器或 Web 服务器完成不正确的转换,应先对过滤器 XML 字符串进行 URL 编码,然后再将其发送到服务器。
编辑和 WFS 服务地图服务与地理数据服务都可用于发布 ESRI 数据源(例如地理数据库)数据。当您发布带有 WFS 服务能力的地图或者地理数据服务时,可通过 OGC 兼容的 WFS 客户端访问该数据。WFS 客户端也可以查看对数据所做的最新更改。当从 WFS 客户端(例如,查看器)发出请求时,将返回相应数据,因为此时数据源中存在此数据。例如,假设有一个包含要素类的地图文档。此要素类来自于一个文件地理数据库。现在您将该地图文档作为地图服务发布并且启用 WFS 服务能力。带有 WFS 查看器的客户端可以使用由地图服务提供的 WFS 的 URL 访问要素类中的数据。假设某人访问源文件地理数据库,并添加、更新和删除了要素类中的要素。带有 WFS 查看器的客户端下次刷新时,用户将看到最新编辑后的数据。当数据源为 ArcSDE 地理数据库时,地理数据服务和地图服务会发布特定版本的数据。如果数据是在此特定版本中进行了编辑,那么 WFS 客户端和非 WFS 客户端均能看到这些更改。但是,如果是在其他版本中进行了编辑,则只有使用已发布版本对更改进行协调之后,客户端才能看到这些更改。上述功能可以使您对通过您的服务显示的数据进行更多控制。假设您从名为 WFS 的版本中发布带有 WFS 服务能力的某些数据。配有 WFS 查看器的客户端随后开始通过您的服务访问数据。与此同时,内业编辑人员在使用 ArcGIS 更新默认版本。如有必要,稍后将对编辑人员做出的更改进行检查和调整。一旦完成评估,WFS 版本将与默认版本进行协调。此时,WFS 客户端将看到编辑人员的最新更新。事务 WFS 服务 使用事务性 WFS 服务(有时称为 WFS-T),WFS 编辑器可以应用通过 WFS 服务对源数据库中的数据所做的更改。要通过 WFS-T 应用更改,数据必须来源于 ArcSDE 地理数据库。可在具有版本化数据、非版本化数据或者以上两者组合的服务上启用事务功能。如果您选择使用版本化数据,同样建议您由非默认版本发布服务。 要将您的地理数据库作为事务性 WFS 服务发布,请执行以下步骤:确定您要将通过 WFS 服务发布的数据进行版本化还是非版本化。如果您要发布版本化数据,请创建一个您的事务性 WFS 编辑器专用的版本。如果您要使用非版本化的数据,则可以在默认版本上发布该服务。选择您将数据作为 WFS 服务发布时要使用的服务类型。您可以发布一个地理数据库连接文件(作为地理数据服务)或一个地图文档(作为地图服务)。如果您要对版本化数据使用地图服务,请确保地图文档中的数据仅引用了来自于为 WFS 编辑器创建的特定版本中的数据。确保在服务上启用 WFS 服务能力。在服务上启用事务。可在 ArcCatalog 或 ArcGIS Server 管理器中按以下步骤完成此操作: 停止服务。显示服务属性。单击功能选项卡。单击名称 WFS(不是复选框)。单击启用事务。启动该服务。一旦启用了事务功能,WFS 客户端便可使用事务性 WFS 方法应用对地理数据库的更改。下面是如何应用更改的示例:WFS 客户端连接到启用事务的已发布 WFS 服务。 在服务器上锁定所编辑的要素和行(可使用 GetFeatureWithLock WFS 方法执行此操作)。 在 WFS 客户端上使用 WFS 编辑器执行编辑。 随后在服务器上应用编辑(可使用事务 WFS 方法执行此操作)。当提交编辑内容后,将解除锁定并且要素可由其他 WFS 编辑器进行编辑。如果时间超时,锁定同样也可解除。默认情况下,5 分钟后锁定将超时,但可通过使用 GetFeatureWithLock 方法指定一个超时分钟数来调整锁定时间。管理员可通过手动编辑配置和设置元素 DefaultLockExpiration(以分钟为单位的时间)来设置默认超时时间。当客户端使用 DefaultLockExpiration 请求锁定时,将返回带有锁定要素的要素集合和一个 lockID。如果不能锁定任何请求要素,该请求将失败并且客户端需要再次调用 GetFeatureWithLock。只有解除这些要素的锁定之后,其他客户端才可以获取这些要素上的锁定。仅插入事务不要求锁定要素。因为现有要素不能被修改(更新或删除),所以不必调用 GetFeatureWithLock。任何要求更新或删除的事务请求必须有 lockID。 当更改内容通过 WFS-T 提交时,它们将应用到已发布的版本(带有版本化数据)或应用到业务表格(带有非版本化数据)。当使用版本化数据或者非版本化数据时,您都需要注意以下部分讨论的重要工作流程差异。WFS-T 服务和版本化数据 版本管理的功能允许您向 WFS 和非 WFS 编辑器显示您的地理数据库,也允许您通过完全冲突检测有效合并由两组用户所做的编辑。要合并编辑内容,您可以将发布的 WFS-T 版本与其父版本进行协调并提交发布的 WFS-T 版本。如果存在未完成的锁,系统不会允许继续执行协调与提交。这就可以防止 WFS-T 客户端锁定的要素与因为协调过程和提交过程更改的要素之间发生冲突。此外,协调和提交将锁定发布的版本,防止在协调过程和提交过程中执行 GetFeatureWithLock 和事务调用。有关使用版本化数据的详细信息,请参阅:要素锁定通过锁表的方法在服务器上保留。当事务被启用并且以常规表出现在地理数据库中时,将创建锁表。表的命名遵循 VERSION_&versionID&_ROW_LOCKS 约定。要防止协调和提交受到阻止,管理员可能要在调用协调和提交之前通过直接从锁表上删除行来删除未完成的锁定。已发布的 WFS-T 版本不应使用 ArcGIS 进行编辑。ArcGIS 编辑器不会注意要素锁定,所以可对锁定的要素进行编辑。这这种情况下,在 ArcGIS 中所做的编辑可能会导致冲突,阻止 WFS-T 客户端上载所做的更改。如果更改被协调并提交到所发布版本中,则创建并编辑所发布版本的子版本可能也会引起类似的问题。多个 WFS-T 服务可以引用相同的发布版本,因为所有的 WFS-T 服务都共享同一个锁表。发布版本与其锁表之间存在 1 对 1 的关联。如果您禁用事务或者将 WFS 服务移除,锁表不会自动删除。一旦不再有任何 WFS-T 服务引用此版本,可以手动删除相应的锁表。
WFS-T 服务和非版本化数据
如果您在 WFS-T 服务中发布非版本化数据,编辑内容将直接应用到地理数据库的业务表中,所以一旦提交了编辑内容,就无法撤消。有关使用非版本化数据的详细信息,请参阅: 对于基于 WFS-T 服务的非版本化数据,要素锁定同样保存在锁表的服务器上,该锁表当在服务上启用事务时创建。如果您计划仅使用 WFS-T 客户端编辑服务,这将与基于服务的版本化数据的行为相同。但是如果您计划使用非 WFS-T 客户端(例如,ArcMap)编辑在服务中发布的数据,则需要注意一些重要的事项;
ArcMap 编辑器不会注意到要素锁定,所以可以编辑通过 WFS-T 服务锁定的要素。 如果 ArcMap 编辑器编辑要素,这些要素将以对 WFS-T 客户端锁定的形式出现。所以只有 ArcMap 编辑器保存这些编辑内容之后,WFS-T 客户端才能锁定、更新或者删除这些要素。
如果您禁用事务或者将 WFS 服务移除,锁表不会自动删除。一旦不再有任何 WFS-T 服务引用此版本,可以手动删除相应的锁表。注ArcGIS Server 用于连接到 ArcSDE 地理数据库的 DBMS 用户必须被授予在 DBMS 中创建表格的权限,才能成功使用 WFS-T。 ArcMap 不存在事务 WFS 编辑的机制,这意味着您必须使用第三方客户端来编辑使用 WFS 的要素。 当通过 WFS-T 编辑时,您可以使用池化服务,因为不要求始终访问服务。 无法使用 WFS-T 编辑具有 Z 值的要素类。
高级主题本部分包含了关于 WFS 服务的高级条目信息。
使用外部服务能力文件使用外部服务能力文件发布 WFS 服务的目标对象是熟悉 OGC WFS 规范与 WFS 服务能力文件语法的用户。这种选择方式为您最大程度地提供了自定义 WFS 服务的灵活性。使用外部服务能力文件,您可以执行以下操作:将服务级别的元数据信息添加到 WFS 服务能力文件。 将要素级别的元数据信息添加到 WFS 服务能力文件。 添加来自 ArcGIS Server 预定义投影列表中的其他预定义空间参考系统。使用外部服务能力文件发布 WFS 服务将节省每次访问服务时从头开始创建服务能力文件所花的时间。这可提高连接到您 WFS 服务的速度,尤其是当您的服务中有多种类型名称时。但是,如果您对服务的基础地图文档或者地理数据库进行了更改,您也必须相应地更新该服务的服务能力文件后才能继续工作。有两种不同的方法可用于创建外部服务能力文件:您可以在 XML 或文本编辑器中从头开始创建服务能力文件。您也可以通过发布带有默认设置的 WFS 服务并从 Web 浏览器中调用 GetCapabilities 的方法生成服务能力文件。从 GetCapabilities 请求返回的内容可以保存为 .xml 文件、可根据需要进行修改以及可用作外部服务能力文件。如何构造并填写外部服务能力文件的内容已超出本帮助系统的范围,有关详细信息,请访问本主题底部的链接。从 ArcGIS 9.3 SP1 开始,ArcGIS Server 与 1.1.0 和 1.0.0 OGC WFS 规范都兼容。因此,对于 ArcGIS 9.3 SP1,创建并使用外部服务能力文件的各步骤已更改。以下各步骤将介绍从现有 WFS 服务中创建外部服务能力文件的方法以及使用这些外部服务能力文件发布 WFS 服务的方法。其中包括适用于 ArcGIS 9.3 和始于 ArcGIS 9.3 SP1 的新过程的各个步骤。 在 ArcGIS 9.3 中使用外部服务能力文件创建并发布 WFS 服务的方法
第 1 部分:从现有 WFS 服务中创建外部服务能力文件 启动 ArcCatalog 或 ArcGIS Server 管理器。 打开服务属性 对话框。要在 ArcCatalog 中实现这一点,右键单击现有服务,然后单击服务属性。在 ArcGIS Server 管理器中,单击服务选项卡,然后单击服务的编辑图标。单击功能选项卡。如果未在功能列表中选中 WFS,请将其选中。如果已选中,仅单击字母 WFS 便可。即会出现一些 WFS 特定的属性。高亮显示 WFS URL 并将其复制及粘贴到 Web 浏览器。要创建适用于 WFS 1.1.0 规范的外部功能文件,请将 ?request=getCapabilities 或 request=getCapabilities&version=1.1.0 追加到 Web 浏览器中的 WFS URL 之后,并将结果以结尾追加版本号的 XML 文件的形式保存。在 ArcGIS 9.3 中,.xml 文件必须以 GetCapabilities110.xml 的形式保存。 第 2 部分:在 ArcGIS 9.3 中使用外部服务能力文件创建 WFS 服务 一旦已创建服务能力文件,此文件可放置在 SOC 与服务器可访问的文件夹中。例如,文件可放置在与服务的地理数据库或者地图文档相同的位置。也可使用 URL 位置。可对使用默认属性的现有服务进行更新以使用外部服务能力文件,或可创建引用外部服务能力文件的新服务。以下步骤描述了使用外部服务能力文件发布 WFS 服务的方法。注意:
要特别注意,仅有一个外部服务能力文件可以在 ArcGIS 9.3 中的文件夹中保存,否则服务器将无法区分应该使用哪个服务能力文件,所以服务能力文件必须都命名为 GetCapabilities110.xml。 使用外部服务能力文件发布 WFS 服务的方法:启动 ArcCatalog 或 ArcGIS Server 管理器。 停止您要更新的服务。 打开服务属性 对话框。要在 ArcCatalog 中实现这一点,右键单击现有服务,然后单击服务属性。在 ArcGIS Server 管理器中,单击服务选项卡,然后单击服务的编辑图标。单击功能选项卡。如果未在功能列表中选中 WFS,请将其选中。如果已选中,仅单击字母 WFS 便可。即会出现某些 WFS 特定的属性。单击使用外部服务能力文件。下一步骤用于指定外部服务能力文件的位置。通过提供 URL 或包含服务能力文件的文件夹路径来指定服务能力文件的位置。当指定位置或 URL 时,请不要将 .xml 文件的名称包含在内。URL 位置的一个示例为 http://&server name&/arcgis/wfs;文件夹位置的示例为 C:\arcgis\arcgisserver\wfs。重新启动服务。 在 ArcGIS 9.3 SP1 及以后版本中使用外部服务能力文件创建并发布 WFS 服务的方法 从 ArcGIS 9.3 SP1 开始,ArcGIS Server 与 1.1.0 和 1.0.0 OGC WFS 规范都兼容。因此,需要两个外部服务能力文件,一个引用 1.1.0 规范,另一个引用 1.0.0 规范。 第 1 部分:从现有 WFS 服务中创建外部服务能力文件 启动 ArcCatalog 或 ArcGIS Server 管理器。 打开服务属性 对话框。要在 ArcCatalog 中实现这一点,右键单击现有服务,然后单击服务属性。在 ArcGIS Server 管理器中,单击服务选项卡,然后单击服务的编辑图标。单击功能选项卡。如果未在功能列表中选中 WFS,请将其选中。如果已选中,仅单击字母 WFS 便可。即会出现一些 WFS 特定的属性。高亮显示 WFS URL 并将其复制及粘贴到 Web 浏览器。要创建适用于 WFS 1.1.0 规范的外部服务能力文件,请将 ?request=getCapabilities 或 request=getCapabilities&version=1.1.0 追加到 Web 浏览器中的 WFS URL 之后,并将结果以 XML 文件的形式保存。该文件名必须为 &前缀&110.xml 格式。例如,如果服务名为 California,您可能希望将文件命名为 California110.xml,其中 California 是前缀。要创建适用于 WFS 1.0.0 规范的外部服务能力文件,请将 ?request=getCapabilities&version=1.0.0 追加到 WFS URL 之后,并将结果以 XML 文件的形式保存。该文件名必须为 &前缀&100.xml 格式,并且前缀必须与 1.1.0 文件的前缀相匹配。按照第 6 步中的示例,如果 1.1.0 文件名为 California110.xml,则 1.0.0 文件名必须为 California100.xml。 第 2 部分:在 ArcGIS 9.3 SP1 及以后版本中使用外部服务能力文件创建 WFS 服务 一旦已创建服务能力文件,此文件可放置在 SOC 与服务器可访问的文件夹中。例如,文件可放置在与服务的地理数据库或者地图文档相同的位置。也可使用 URL 位置。要特别注意,从 ArcGIS 9.3 SP1 开始,两个文件必须放置在相同的位置。可对使用默认属性的现有服务进行更新以使用外部服务能力文件,或可创建引用外部服务能力文件的新服务。以下步骤描述了发布带有外部服务能力文件的 WFS 服务的方法。使用外部服务能力文件发布 WFS 服务的方法:启动 ArcCatalog 或 ArcGIS Server 管理器。 停止要更新的服务。 打开服务属性 对话框。要在 ArcCatalog 中实现这一点,右键单击现有服务,然后单击服务属性。在 ArcGIS Server 管理器中,单击服务选项卡,然后单击服务的编辑图标。单击功能选项卡。如果未在功能列表中选中 WFS,请将其选中。如果已选中,仅单击字母 WFS 便可。即会出现一些 WFS 特定的属性。单击使用外部服务能力文件。下一步骤用于指定外部服务能力文件的位置。通过提供 URL 或包含服务能力文件和前缀的文件夹路径来指定服务能力文件的位置。例如,如果对于 California 服务有名为 California110.xml 和 California100.xml 的服务能力文件,则前缀为 California。如果这些文件存储在 http://ArcGIS_Server/arcgis/wfs,则应该指定 http://ArcGIS_Server/arcgis/wfs/California。如果您选择将这些文件存储在其他位置 C:\arcgis\arcgisserver\wfs,则应该指定 C:\arcgis\arcgisserver\wfs\California。重新启动服务。注意:
现在当 WFS 客户端访问服务时,将根据要求的版本引用相应的服务能力文件。例如,如果 WFS 客户端调用 DescribeFeatureType&version=1.0.0,则服务器将以 1.0.0 特定的外部服务能力文件的信息来响应。如果不指定版本,服务器将返回 1.1.0 特定的外部服务能力文件的信息。
将空间参考系统添加到外部服务能力文件 虽然您可以使用数百个受支持的空间参考系统中的任意一种向 WFS 服务请求地图,但如果请求的空间参考没有出现在服务能力文件中,则有些 WFS 客户端会返回错误。其他客户端(例如 Data Interoperability 扩展模块)仅允许在服务能力文件中列出的空间参考系统间进行切换。您可以手动将更多空间参考系统添加到 WFS 服务的外部服务能力文件中。外部服务能力文件在上面进行了介绍。控制轴顺序在某些地理坐标系(例如 WGS 84)中返回的要素具有默认的纬度、经度 (y,x) 的轴顺序。这一点符合 WFS 1.1 规范。例如,通过 getfeature 请求可返回带有如下指定坐标的一点:
&gml:Point&
&gml:pos&48.3 -122.&/gml:pos&
&/gml:Point&
某些 WFS 客户端希望坐标以经度、纬度 (x,y) 的轴顺序返回。要使用这些客户端,您可将服务的轴顺序设置为经度、纬度。以下描述了设置该属性的方法:以管理员的身份登录到运行 ArcGIS Server 的计算机。 关闭 ArcGIS Server。 转到服务配置文件的位置。例如,如果 ArcGIS Server 安装在 c:\arcgis 中,则请转到 c:\arcgis\server\user\cfg。在文本编辑器中打开您的服务的配置文件(例如 myservice.cfg)。 在 WFS 部分中,将以下内容添加到属性:&AxisOrderWFS11&longlat&/AxisOrderWFS11&。例如:
&Extension&
&TypeName&WFSServer&/TypeName&
&Enabled&true&/Enabled&
&Properties&
&AxisOrderWFS11&longlat&/AxisOrderWFS11&
&CustomGetCapabilities&false&/CustomGetCapabilities&
&EnableTransactions&false&/EnableTransactions&
&Name&wfs_WFSTest_ras&/Name&
&OnlineResource&http://bobmk/arcgis/services/wfs/WFSTest_ras/MapServer/WFSServer&/OnlineResource&
&AppSchemaURI&http://bobmk/arcgis/services/wfs/WFSTest_ras/MapServer/WFSServer&/AppSchemaURI&
&AppSchemaPrefix&wfs_WFSTest_ras&/AppSchemaPrefix&
&/Properties&
&WebEnabled&true&/WebEnabled&
&/Info& &/Extension&
启动 ArcGIS Server。从服务中请求的地理坐标的要素现在以经度、纬度的轴顺序返回。请注意轴顺序属性仅适用于带地理坐标的要素。带有投影坐标的要素始终以 x,y 的轴顺序返回。使用完全限定的类型名针对从 ArcSDE 地理数据库中定义的 WFS 服务生成的类型名默认情况下将基于要素类的非限定名。例如,名为 bob.buildings 的要素类的类型名将是 buildings。您可以设置一个属性以在生成类型名时包括完全限定的名称。如果在地理数据库中多个要素类具有相同的名称但具有不同的所有者,您可能需要执行此操作。当使用完全限定的名称时,bob.buildings 的类型名将是 bob_buildings。以下步骤描述了设置属性以使用完全限定名的方法:以管理员的身份登录到运行 ArcGIS Server 的计算机。 关闭 ArcGIS Server。 转到服务配置文件的位置。例如,如果 ArcGIS Server 安装在 c:\arcgis 中,则请转到 c:\arcgis\server\user\cfg。在文本编辑器中打开您的服务的配置文件(例如 myservice.cfg)。 在 WFS 部分中,将以下内容添加到属性:&UseQualifiedName&true&/UseQualifiedName&。例如:
&Extension&
&TypeName&WFSServer&/TypeName&
&Enabled&true&/Enabled&
&Properties&
&UseQualifiedName&true&/UseQualifiedName&
&CustomGetCapabilities&false&/CustomGetCapabilities&
&EnableTransactions&false&/EnableTransactions&
&Name&wfs_WFSTest_ras&/Name&
&OnlineResource&http://bobmk/arcgis/services/wfs/WFSTest_ras/MapServer/WFSServer&/OnlineResource&
&AppSchemaURI&http://bobmk/arcgis/services/wfs/WFSTest_ras/MapServer/WFSServer&/AppSchemaURI&
&AppSchemaPrefix&wfs_WFSTest_ras&/AppSchemaPrefix&
&/Properties&
&WebEnabled&true&/WebEnabled&
&/Info& &/Extension&
启动 ArcGIS Server。
更多阅读材料如果您对阅读更多关于 WFS 服务的资料感兴趣,请参阅以下附加资源:

我要回帖

更多关于 arcgis10.2发布服务 的文章

 

随机推荐