0

上周我非常努力地尝试解决我的问题,但我没有找到答案。我希望你能帮助我:我想安装几个多边形(类似于我校园里的建筑物),使用 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);

多边形不同......我希望你能帮助我,菲利普打招呼

4

1 回答 1

1

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

你应该试试这个演示(并查看源代码): http: //openlayers.org/dev/examples/select-feature-openpopup.html

于 2013-10-18T01:35:14.450 回答