最近,我正在开发一个映射工具,并选择openlayers3作为前端映射APi。 在我的地图图层中,它有几何图形和图像,我想添加一个函数,当我点击不同类型的特征时,它会做不同的动作。如何区分Openlayers3中的功能
在代码中,我需要识别它来自图像或几何。我很感谢你们的帮助。
最近,我正在开发一个映射工具,并选择openlayers3作为前端映射APi。 在我的地图图层中,它有几何图形和图像,我想添加一个函数,当我点击不同类型的特征时,它会做不同的动作。如何区分Openlayers3中的功能
在代码中,我需要识别它来自图像或几何。我很感谢你们的帮助。
你已经做出了很好的选择。有几种方法可以做到这一点。你可以存储在特征的财产,检查它,如:
map.on('click', function(evt) {
var feature = map.forEachFeatureAtPixel(evt.pixel,
function(ft, layer) { return ft; }
);
// here I'm using feature.get('type') but can be any name
if (feature && feature.get('type') == 'some_value') {
// now you have the clicked feature
}
});
注意,所有功能(ol.Feature
)的几何形状。
感谢您的帮助,根据您的代码,当我定义特定功能时,我需要添加称为“类型”的自定义属性。我不知道我认为正确与否?谢谢inadvace。 –
不必是“类型”。它可以是任何东西。 –
作为这个问题的扩展,如果使用这种方式,我们必须确定它们的特征是否具有这种属性(它们有一个名为“name”的属性,每个图像功能有不同的名称,这是很难使用它)我不知道是否有一个通用的方法来解决这个问题,由openlayers的构建方法。 –
downvote可以有一个解释,所以OP不会被留在黑暗中。 –
让我们来完成这个问题?你如何在jsFiddle上显示你的代码?猜测你做错了什么并不容易。 –
@Jonatas Walker感谢Jonatas,我有一个关于图标属性的问题,能否向我解释[anchor,anchorOrigin,offset,offsetOrigin,size),Coz的openlayers web没有给出更多的解释,它让我困惑,当我改变anchor或抵消,他们都可以改变图标的位置,可以抵消和大小都可以削减图标,Orst是什么意思,这些属性混淆了我很长一段时间,可以解释他们给我,预先感谢你。 –