Select 互动 'select' 事件
Select interaction 'select' event
我为我的 ol3 地图创建了一个 select 交互并附加了一个 select 事件处理程序。
selectInteraction = new ol.interaction.Select({
...
});
selectInteraction.on('select', function (evt) {
???;
});
我如何询问 'evt' 以确定:
- 点击哪个功能触发事件?
- 这个地图项的 ID 和其他属性?
- 该功能是select编辑的还是select删除的?
这里有一些应该对您有帮助的项目。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);
}
}
}
});
ol.SelectInteraction
发出的 select
事件记录在案 here。
如您所见,evt.selected
将是刚刚选择的所有特征的数组。它不会包含已选择的功能,当 addCondition
为真时单击新功能时这些功能将保持选中状态。这些是尚未被选中且与要包含在选择中的筛选器相匹配的已单击要素。
同样,evt.deselected
将包含刚刚取消选择的所有功能。
您可以通过以下方式获取每个功能的 ID 和属性:
var featureID = feature.getId()
var properties = feature.getProperties()
var someSpecificProperty = feature.get("property-name")
请参阅 ol.Feature
的文档以了解有关该功能及其属性的更多信息。
我为我的 ol3 地图创建了一个 select 交互并附加了一个 select 事件处理程序。
selectInteraction = new ol.interaction.Select({
...
});
selectInteraction.on('select', function (evt) {
???;
});
我如何询问 'evt' 以确定:
- 点击哪个功能触发事件?
- 这个地图项的 ID 和其他属性?
- 该功能是select编辑的还是select删除的?
这里有一些应该对您有帮助的项目。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);
}
}
}
});
ol.SelectInteraction
发出的 select
事件记录在案 here。
如您所见,evt.selected
将是刚刚选择的所有特征的数组。它不会包含已选择的功能,当 addCondition
为真时单击新功能时这些功能将保持选中状态。这些是尚未被选中且与要包含在选择中的筛选器相匹配的已单击要素。
同样,evt.deselected
将包含刚刚取消选择的所有功能。
您可以通过以下方式获取每个功能的 ID 和属性:
var featureID = feature.getId()
var properties = feature.getProperties()
var someSpecificProperty = feature.get("property-name")
请参阅 ol.Feature
的文档以了解有关该功能及其属性的更多信息。