上周我是 OL 的新手,所以如果我错过了一些明显的事情,我深表歉意。它主要由示例拼凑而成,但我很确定我理解此时发生的事情。你可以在这里看到我的代码:https ://fleur.github.io/dist/index.html ,或者更传统的,在这里:https ://github.com/fleur/olexample 。
如果我创建一个带有矢量图层的地图,其源是一个静态文件(通过“url”属性),那么这些特征就会按预期显示。如果我使用相同的代码创建地图,唯一的区别是源是进行 xhr 调用的加载器函数,则这些功能不会显示。
在这两种情况下,我都在源和层上放置了侦听器,并触发了这些事件:
静止的:
precompose
postcompose
addfeature
addfeature
addfeature
change
precompose
render
postcompose
动态的:
precompose
postcompose
addfeature
addfeature
addfeature
change
precompose
postcompose
请注意,动态事件序列中没有“渲染”事件。我什至做了一个同步 HTTP 调用。我完全不知所措。动态源加载器函数正在用闭包做一些棘手的事情,所以也许这与它有关?不过,代码取自 openlayers.org 上的示例,仅使用 console.log 和不同的 url 进行了修改。
所以,我的问题是:我怎样才能得到动态检索的特性,这些特性确实被添加到源中,以呈现?