1

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

我正在编写一个 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 = function(dataProxy, records, options) { 
   doSomeStuff();
}

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

这就是我卡住的地方:在这个函数中,我可以访问有关服务器提供的数据的所有层信息。但我还想提取在 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/>

4

1 回答 1

0

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

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

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

于 2012-10-23T10:42:23.200 回答