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方法。根据您的代码,该方法在检测到特征后立即返回该特征。所以上面的任何特性都会被返回。你能检查一下这个问题吗?