Vector OpenLayers:如何在单击多边形时设置警报()

Vector OpenLayers:如何在单击多边形时设置警报(),vector,click,openlayers,polygon,Vector,Click,Openlayers,Polygon,上周我努力想解决我的问题,但没有找到答案。我希望你能帮助我: 我想使用OpenStreetMap作为基础层安装几个多边形(类似于我校园中的建筑)。当用鼠标单击多边形时,我希望生成一个特定的alert()或其他输出,它完全属于单击的多边形(我希望提供有关单击的建筑的信息)。我发现的所有示例都只对每个多边形使用一次单击事件,因为所有多边形都设置在一个层中。为每个多边形设置图层时,只有顶层保持可单击状态。 对于标记,它工作得非常完美,因为我可以识别每个标记,即使在同一层中: llm = new Ope

上周我努力想解决我的问题,但没有找到答案。我希望你能帮助我: 我想使用OpenStreetMap作为基础层安装几个多边形(类似于我校园中的建筑)。当用鼠标单击多边形时,我希望生成一个特定的alert()或其他输出,它完全属于单击的多边形(我希望提供有关单击的建筑的信息)。我发现的所有示例都只对每个多边形使用一次单击事件,因为所有多边形都设置在一个层中。为每个多边形设置图层时,只有顶层保持可单击状态。 对于标记,它工作得非常完美,因为我可以识别每个标记,即使在同一层中:

llm = new OpenLayers.LonLat(Lon2Merc(lonm), Lat2Merc(latm));  
var marker2 = new OpenLayers.Marker(llm, icon);
marker2.events.register("mousedown", marker2, 
      function() { alert("Hello marker 2"); });
layer_markers.addMarker(marker2);
与多边形不同的是。。。 我希望你能帮助我, 问候
Philip

多边形是矢量对象(特征)并放置在矢量层(OpenLayers.Layer.vector)上。管理OpenLayers中多边形上的单击的常用方法是使用控件

您应该尝试此演示(并查看源代码):