Openlayers 3:为什么 forEachFeatureAtPixel 只有 return 一个特征

Openlayers 3: Why forEachFeatureAtPixel only return one feature

我创建了一个文本框,我可以在其中放置坐标 X、Y,然后我将图钉移动到该位置并找出那里有哪些道路。

大头针移动,但 forEachFeatureAtPixel 只有 return 一个特征而不是四个。另外我得到的功能没有 NOMBRE 属性

我正在使用 Openlayer 3 和我的 WMS 服务器地图。
正如您在 MapInfo(右图)中看到的那样,我获得了所有 4 个特征。
水平 2x "Calle 6" 和垂直 2x "Calle 1 Norte",并且有 NOMBRE 属性 .
我正在使用来自 mapinfo 的相同 x、y,其中所有 4 个特征都是相交的。

新信息:我的图层是 ol.layer.Tile 而不是 ol.layer.Vector,也许这就是问题所在(正在检查)

wmsLyr09 = new ol.layer.Tile({
    source: wmsSource
});

// move the pin to new position
geometry.translate(deltaX, deltaY);

var coordinate = geometry.getCoordinates();
var pixel = map.getPixelFromCoordinate(coordinate);
console.log('pixel: ' + pixel);

var allFeaturesAtPixel = [];
map.forEachFeatureAtPixel(pixel, function (feature) {
    allFeaturesAtPixel.push(feature);
});

// feature[len]:1
console.log("feature[len]:" + allFeaturesAtPixel.length);

//feature[Name]: undefined
feature= allFeaturesAtPixel[0];
console.log("feature[Name]: " + feature.get('NOMBRE')); 

在您的地图中,您可能有两个图层,即 WMS 切片图层和图钉的矢量图层。所以,OpenLayers 不知道道路特征。如果您调用 forEachFeatureAtPixel,您将获得 OpenLayers 知道的唯一功能:pin。

您要做的是发出 WFS GetFeature 请求以获取当前引脚位置的要素。看看这个例子:http://openlayers.org/en/master/examples/getfeatureinfo-tile.html