2015-11-11 114 views
0

最近,我正在开发一个映射工具,并选择openlayers3作为前端映射APi。 在我的地图图层中,它有几何图形和图像,我想添加一个函数,当我点击不同类型的特征时,它会做不同的动作。如何区分Openlayers3中的功能

在代码中,我需要识别它来自图像或几何。我很感谢你们的帮助。

+0

downvote可以有一个解释,所以OP不会被留在黑暗中。 –

+0

让我们来完成这个问题?你如何在jsFiddle上显示你的代码?猜测你做错了什么并不容易。 –

+0

@Jonatas Walker感谢Jonatas,我有一个关于图标属性的问题,能否向我解释[anchor,anchorOrigin,offset,offsetOrigin,size),Coz的openlayers web没有给出更多的解释,它让我困惑,当我改变anchor或抵消,他们都可以改变图标的​​位置,可以抵消和大小都可以削减图标,Orst是什么意思,这些属性混淆了我很长一段时间,可以解释他们给我,预先感谢你。 –

回答

0

你已经做出了很好的选择。有几种方法可以做到这一点。你可以存储在特征的财产,检查它,如:

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)的几何形状。

+0

感谢您的帮助,根据您的代码,当我定义特定功能时,我需要添加称为“类型”的自定义属性。我不知道我认为正确与否?谢谢inadvace。 –

+0

不必是“类型”。它可以是任何东西。 –

+0

作为这个问题的扩展,如果使用这种方式,我们必须确定它们的特征是否具有这种属性(它们有一个名为“name”的属性,每个图像功能有不同的名称,这是很难使用它)我不知道是否有一个通用的方法来解决这个问题,由openlayers的构建方法。 –

相关问题