我为ol3地图创建了一个精选互动,并附加了一个精选事件处理程序。
{{1}}
如何查询'evt'以确定:
答案 0 :(得分:1)
select
发出的ol.SelectInteraction
事件已记录在案here。
如您所见,evt.selected
将是刚刚选中的所有功能的数组。在addCondition
为真时单击新要素时,它不会包含已选择的已选定要素。这些是尚未选择的点击功能,并且与要包含在选择中的过滤器相匹配。
同样,evt.deselected
将包含刚取消选择的所有功能。
您可以通过以下方式获取每个功能的ID和属性:
var featureID = feature.getId()
var properties = feature.getProperties()
var someSpecificProperty = feature.get("property-name")
有关该功能及其属性的详情,请参阅ol.Feature
的文档。
答案 1 :(得分:0)
以下是一些可以帮助您的项目.. evt.selected可以为您提供所选的功能。此示例位于群集层上,您可以对所选要素使用get
函数从所选对象中检索属性。如果您不了解可用的属性,请使用console.dir(evt)
使用控制台检查对象。
selectInteraction.on('select', function(evt){
var coord = evt.mapBrowserEvent.coordinate;
var selItems = evt.selected;
var sellength = selItems.length;
var rptFrame = parent.window.frames["rptframe"];
for (var i = 0; i < sellength; i++) {
var label = selItems[i].get('l');
var url = selItems[i].get('url');
if (url) {
rptFrame.location.href = url;
} else {
var feaObj = selItems[i].get('features');
if (feaObj.length == 1) {
url = feaObj[0].get('url');
rptFrame.location.href = url;
} else {
writeMultiSelect(rptFrame,selItems);
}
}
}
});