我正在尝试学习如何使用 Openlayers 和 SOS(传感器观察服务)服务。我在互联网上找到了几个例子,我研究了算法,但是由于我对 Openlayers 库不是很熟悉,而且我是 Javascript 的初学者,所以我有一些基本的问题。
我研究的例子是这样的:http: //ows.terrestris.de/examples/ol-sos-layer.html
在此示例中,他们向服务发出请求,如下所示(部分代码):
OpenLayers.SOSClient = OpenLayers.Class({
url: null,
map: null,
capsformat: new OpenLayers.Format.SOSCapabilities(),
obsformat: new OpenLayers.Format.SOSGetObservation(),
initialize: function (options) {
OpenLayers.Util.extend(this, options);
var params = {'service': 'SOS', 'request': 'GetCapabilities'};
var paramString = OpenLayers.Util.getParameterString(params);
url = OpenLayers.Util.urlAppend(this.url, paramString);
**OpenLayers.Request.GET({url: url,
success: this.parseSOSCaps, scope: this});**
} ...
成功时执行 parseSOSCaps 函数。此函数解析 XML 响应:
parseSOSCaps: function(response) {
// cache capabilities for future use
this.SOSCapabilities = this.capsformat.read(response.responseXML || response.responseText);
this.layer = new OpenLayers.Layer.Vector("Stations", {
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.SOS({
formatOptions: {internalProjection: map.getProjectionObject()},
url: this.url,
fois: this.getFois()
})
最后是 init() 函数,该函数在页面加载时执行。那里声明了我发送请求的服务的 url:
function init(){
map = new OpenLayers.Map( 'map' );
var baseLayer = new OpenLayers.Layer.WMS("Test Layer", "http://labs.metacarta.com/wms/vmap0?", {
layers: "basic"}, {singleTile: true});
**var sos = new OpenLayers.SOSClient({map: map, url: 'http://cawa.gfz-potsdam.de:8080/SOS/sos'});**
}
我的问题是,如何打印/显示请求的 XML 响应?有没有办法可以记录。写响应?甚至警告它?我知道我在问什么听起来很简单,但是当我尝试理解 Openlayers 库和 SOS 服务的概念时,我有点迷失了。谢谢。迪米特里斯