来自特征的不同层 map.on 方法的信息
information about diferents layers map.on method from features
如何使用 map.forEachFeatureAtPixel 方法显示要素的所有属性?
我得到一个单一的值,我尝试放置一个 for 循环 来获取所有属性,但它不支持它。我有这段代码可以获取单个值。使用 forEachFeatureAtPixel 允许我选择要在其上显示信息的图层。
这是代码
map.on('click', function (evt) {
document.getElementById("divInformation").innerHTML = '<h1>Click for Info</h1>';
var layer;
var feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature, featureLayer) {
layer = featureLayer;
return feature;
});
var el = document.getElementById('divInformation');
el.innerHTML = '';
if(layer === vectorLayer1){
el.innerHTML += feature.get('cod');
el.innerHTML += feature.get('date);
}else if(layer === vectorLayer2){
el.innerHTML += feature.get('name');
el.innerHTML += feature.get('Percent');
}else{
el.innerHTML = '<h1>click for Info</h1>';
}
});
要显示特征的所有属性,请使用 JSON.stringify(feature.getProperties())
,如 https://openlayers.org/en/latest/examples/vector-tile-info.html
要更好地控制格式,请使用 for
... in
循环。然后,您可以排除内部 属性 键,例如在显示时没有意义的几何图形。
var key;
var properties = feature.getProperties();
for (key in properties) {
el.innerHTML += key + ': ' + properties[key];
}
如何使用 map.forEachFeatureAtPixel 方法显示要素的所有属性? 我得到一个单一的值,我尝试放置一个 for 循环 来获取所有属性,但它不支持它。我有这段代码可以获取单个值。使用 forEachFeatureAtPixel 允许我选择要在其上显示信息的图层。 这是代码
map.on('click', function (evt) {
document.getElementById("divInformation").innerHTML = '<h1>Click for Info</h1>';
var layer;
var feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature, featureLayer) {
layer = featureLayer;
return feature;
});
var el = document.getElementById('divInformation');
el.innerHTML = '';
if(layer === vectorLayer1){
el.innerHTML += feature.get('cod');
el.innerHTML += feature.get('date);
}else if(layer === vectorLayer2){
el.innerHTML += feature.get('name');
el.innerHTML += feature.get('Percent');
}else{
el.innerHTML = '<h1>click for Info</h1>';
}
});
要显示特征的所有属性,请使用 JSON.stringify(feature.getProperties())
,如 https://openlayers.org/en/latest/examples/vector-tile-info.html
要更好地控制格式,请使用 for
... in
循环。然后,您可以排除内部 属性 键,例如在显示时没有意义的几何图形。
var key;
var properties = feature.getProperties();
for (key in properties) {
el.innerHTML += key + ': ' + properties[key];
}