使用GeoExt从WFS GetCapabilities请求中检索服务信息

时间:2012-10-22 13:57:45

标签: web-services extjs

这可能是一个非常简单的问题,但我似乎无法弄清楚。

我正在编写一个Javascript应用程序,使用GeoExt使用GetCapabilities请求从WFS服务器检索图层信息。 GetCapabilities返回有关WFS服务器的信息 - 服务器的名称,运行它的人等,以及它提供的数据层的信息。

我的基本代码如下:

var store = new GeoExt.data.WFSCapabilitiesStore({ url: serverURL });

store.on('load', successFunction);
store.on('exception', failureFunction);
store.load();

这可以按预期工作,当加载完成时,将调用successFunction。

successFunction看起来像这样:

successFunction = function(dataProxy, records, options) { 
   doSomeStuff();
}

dataProxy是Ext.data.DataProxy对象,records是记录列表,WFS服务器上每层一个记录,选项为空。

这就是我被困的地方:在这个功能中,我可以访问有关服务器提供的数据的所有层信息。但我还想提取store.load()期间获取的XML中包含的服务器信息(见下文)。但是我无法弄清楚如何从dataProxy对象中获取它,我确定它必须被淘汰。

有什么想法吗?


我想要的字段包含在此代码段中:

<ows:ServiceIdentification>
  <ows:Title>G_WIS_testIvago</ows:Title>
  <ows:Abstract/>
  <ows:Keywords>
     <ows:Keyword/>
  </ows:Keywords>
  <ows:ServiceType>WFS</ows:ServiceType>
  <ows:ServiceTypeVersion>1.1.0</ows:ServiceTypeVersion>
  <ows:Fees/>
  <ows:AccessConstraints/>

1 个答案:

答案 0 :(得分:0)

显然,GeoExt目前丢弃了服务器信息,破坏了我的问题的整个前提。

这是一个代码段,可用于告诉GeoExt抓取它。我没有编写这段代码,但已对其进行了测试,发现它适用于我:

https://github.com/opengeo/gxp/blob/master/src/script/plugins/WMSSource.js#L37