Javascript 为什么';不要在地图上显示特征

Javascript 为什么';不要在地图上显示特征,javascript,openlayers-3,Javascript,Openlayers 3,这是小提琴。当它像以下代码一样时,功能不会显示在地图上: var featureVectorLayer = new ol.layer.Vector({ source: featureClusterSource, style: new ol.style.Style({ fill: new ol.style.Fill({ color: 'rgba(255, 255, 255, 0.2)' }), stroke:

这是小提琴。当它像以下代码一样时,功能不会显示在地图上:

 var featureVectorLayer = new ol.layer.Vector({
    source: featureClusterSource,
    style: new ol.style.Style({
        fill: new ol.style.Fill({
            color: 'rgba(255, 255, 255, 0.2)'
        }),
        stroke: new ol.style.Stroke({
            color: 'blue',
            width: 2
        }),
        image: new ol.style.Circle({
            radius: 7,
            fill: new ol.style.Fill({
                color: '#ffcc33'
            })
        })
    })
});
但我将source-featureClusterSource更改为featureVectorSource。它工作得很好,但这次我在地图上单击feature时并没有得到feature

 var featureVectorLayer = new ol.layer.Vector({
    source: featureVectorSource,
    style: new ol.style.Style({
        fill: new ol.style.Fill({
            color: 'rgba(255, 255, 255, 0.2)'
        }),
        stroke: new ol.style.Stroke({
            color: 'blue',
            width: 2
        }),
        image: new ol.style.Circle({
            radius: 7,
            fill: new ol.style.Fill({
                color: '#ffcc33'
            })
        })
    })
});
如何使用featureClusterSource在地图上显示要素

但我将source-featureClusterSource更改为featureVectorSource。它工作得很好,但这次我在地图上单击feature时并没有得到feature

 var featureVectorLayer = new ol.layer.Vector({
    source: featureVectorSource,
    style: new ol.style.Style({
        fill: new ol.style.Fill({
            color: 'rgba(255, 255, 255, 0.2)'
        }),
        stroke: new ol.style.Stroke({
            color: 'blue',
            width: 2
        }),
        image: new ol.style.Circle({
            radius: 7,
            fill: new ol.style.Fill({
                color: '#ffcc33'
            })
        })
    })
});
单击相交的特征时,更改forEachFeatureAtPixel方法以将其添加到阵列中。”这是一把小提琴

    map.on("singleclick", singleClickCB);
    function singleClickCB(event) {
        var features = [];
        map.forEachFeatureAtPixel(event.pixel, function(feature, layer) {
          features.push(feature);
        });
        if (features) {
           var i;
           for (i = 0; i < features.length; ++i) {
              alert(features[i].get('title'));
            }
         }
   } ;
map.on(“singleclick”,singleClickCB);
函数singleClickCB(事件){
var特征=[];
map.forEachFeatureAtPixel(event.pixel,函数(feature,layer){
功能。推送(功能);
});
如果(功能){
var i;
对于(i=0;i
使用featureVectorSource作为源代码,您的代码对我有效。我甚至得到了点击事件。是的,它与featureVectorSource一起工作。但它与FeatureClusterSource不工作有什么原因你不能继续与VectorSource一起工作吗?是的,因为当我点击features intersect时,我只得到一个特性。这不是真的。我必须同时获得两个特性。为此,你必须更改forEachFeatureAtPixel方法。根据您的代码,该方法在检测到特征后立即返回该特征。所以上面的任何特性都会被返回。你能检查一下这个问题吗?