Javascript 地图标记上的多个事件

Javascript 地图标记上的多个事件,javascript,javascript-events,openlayers-3,markers,Javascript,Javascript Events,Openlayers 3,Markers,html,正文{ 身高:100%; 填充:0; 保证金:0; 字体系列:无衬线; 字体大小:小; } #地图{ 宽度:100%; 身高:60%; } #选择图{ 身高:40%; 宽度:100%; 背景色:白烟; } .遴选名称{ 身高:15%; 宽度:15%; 保证金:自动; 位置:相对位置; 边框底部:3px实心#DA1A21; 字体大小:30px; 顶部:30px; 颜色:#DA1A21; } .遴选表格{ 身高:20%; 宽度:100%; 文本对齐:居中; 顶部:100px; 位置:相对位

html,正文{
身高:100%;
填充:0;
保证金:0;
字体系列:无衬线;
字体大小:小;
}
#地图{
宽度:100%;
身高:60%;
}
#选择图{
身高:40%;
宽度:100%;
背景色:白烟;
}
.遴选名称{
身高:15%;
宽度:15%;
保证金:自动;
位置:相对位置;
边框底部:3px实心#DA1A21;
字体大小:30px;
顶部:30px;
颜色:#DA1A21;
}
.遴选表格{
身高:20%;
宽度:100%;
文本对齐:居中;
顶部:100px;
位置:相对位置;
}
.选择表格输入{
高度:20px;
宽度:300px;
}

西南机场地图
选定机场

要选择多个airpot,请按Shift键并选择所需的所有标记

更新:

()-要选择多用途,请按住Shift键并单击

您将删除另一种方法:

map.on('click', function(evt) {
  var feature = map.forEachFeatureAtPixel(
        evt.pixel, function(ft, l) { return ft; });
  if (feature) ...
});
并使用
ol.interaction。选择
,请参见下文


有一个选择交互,您可以通过许多选项添加到地图中,请参见。例如,您可以设置一些条件:

// only select with Mouse Hover
var select_interaction = new ol.interaction.Select({
   condition: ol.events.condition.pointerMove
});
另一个条件:

// only select with Alt key + Click
var select_interaction = new ol.interaction.Select({
  condition: function(mapBrowserEvent) {
    return ol.events.condition.click(mapBrowserEvent) &&
      ol.events.condition.altKeyOnly(mapBrowserEvent);
    }
});
在您的情况下,将所有内容放在一起类似于:

var select_interaction = new ol.interaction.Select();
map.addInteraction(select_interaction);

// add a listener to know when features are selected
select_interaction.on('select', function(evt) {
  var features = select_interaction.getFeatures();
  features.forEach(function(feature){
    // change this to your own needs
    input.value += feature.get('name') + ', ';
  });
});

这对我不起作用。我仍然一次只能单击一个标记,并且该名称不再显示在字段中。我只是把我想做的事情放在我的帖子里对不起,但它不再起作用了,我不知道为什么,我改变了get('desc')的名字,但仍然没有什么,我没有任何错误,只是似乎什么都没有发生。谢谢你的回答:/我在我的回答中更新了我的代码。你是否删除了
map.on('click',function(evt){
块代码?在你更新的问题中,前两块代码冲突(并重复)。好的,我刚刚更新了它,用整个JS文件来确保:s