WFS レイヤーをマップに追加し、(Fiddler を使用して) レイヤー データのサーバーへの要求を確認できます。サーバーはデータ形式として GML を使用し、返されるデータは有効です。ただし、OpenLayers はデータを表示しません。これが私が使用するコードです。
$(document).ready(
function () {
// allow testing of specific renderers via "?renderer=Canvas", etc
var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
var geographic = new OpenLayers.Projection("EPSG:4326");
var mercator = new OpenLayers.Projection("EPSG:900913");
map = new OpenLayers.Map({
div: "map",
layers: [
new OpenLayers.Layer.WMS("OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0",
{ layers: "basic" }
),
new OpenLayers.Layer.Vector("GML", {
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.WFS({
url: "http://localhost/MapServer/Default.aspx",
featureType: "Layer_ACTIVE",
featureNS: "http://www.tstgis.org/gml",
version: "1.1.0",
geometryName: "line"
}),
renderers: renderer
})
],
zoom: 15
});
var bb = new OpenLayers.Bounds(-179.821327209473, 12.1057098342161, -56.5289154052734, 78.1442901657839);
map.zoomToExtent(bb);
});
このテスト スクリプトは、localhost/mapserver で実行されている HTML シェルの一部であるため、おなじみのクロスドメインの問題が除外されます。
何が起こっている?注: 返されたデータ セットは非常に大きく (1.5 MB)、表示の欠落と関係があるのでしょうか。