我正在学习OpenLayers。当我使用协议创建它时,我发现了一个关于矢量图层的奇怪的事情,例如:
var scheldtoutflow = new OpenLayers.Layer.Vector("scheldtoutflow", {
projection: new OpenLayers.Projection("EPSG:900913"),
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: "data/scheldtoutflow",
format: new OpenLayers.Format.GeoJSON()
}),
visibility: false
});
当我调试此代码时,我发现此图层的功能列表为空。只有当我向图层注册一些事件时,例如选择功能等,功能列表可以正确。
有谁知道为什么会这样?非常感谢你。
干杯, 轩
答案 0 :(得分:1)
听起来这个问题可能非常相似to this question。我认为您正在尝试内联功能列表,而填充功能的调用将异步调用HTTP请求。这些功能将为空,因为您将在HTTP请求返回之前询问它们。要正确执行此操作,您需要向layer loadend event添加处理程序以插入功能