我正在试图弄清楚如何使用openlayers在单独的div中以列表的形式显示动态标记,但是我希望只显示在当前视图中看到的那些。这意味着无论何时移动地图,标记信息列表都会更改。有没有人有任何建议来实现这一目标?我还在学习openlayers,所以如果这个问题的答案显而易见,我会道歉。提前谢谢。
答案 0 :(得分:0)
您可以注册地图的moveend
事件,并使用onScreen()
方法检查显示哪些功能。
var map = new Openlayer.Map( ... );
var layer = new OpenLayers.Layer.Vector( ... );
map.events.register('moveend', this, function() {
var displayedFeatures = [];
for (var i=0, len=layer.features.length; i<len; i++) {
var feature = layer.features[i];
if (feature.onScreen())
displayedFeatures.push(feature);
}
//Do somthing with displayedFeatures
});