上周我很难解决我的问题,但我没有找到答案。我希望你能帮帮我: 我想安装几个多边形(类似我校园里的建筑物),使用OpenStreetMap作为基础层。当用鼠标单击多边形时,我想生成一个特定的alert()或其他输出,它完全属于所点击的多边形(我想提供有关所点击建筑的信息)。我发现的所有示例都只使用了每个多边形的一次单击事件,因为所有多边形都设置在一个图层中。为每个多边形设置图层时,只有顶层保持可点击状态。 使用Markers,它可以完美运行,因为我可以识别每个标记,即使在同一层中也是如此:
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);
与多边形不同...... 我希望你能帮帮我, 招呼 菲利普
答案 0 :(得分:1)
多边形是矢量对象(要素)并放置在矢量图层(OpenLayers.Layer.Vector)上。在OpenLayers中管理多边形点击的常用方法是使用SelectFeature控件。
你应该尝试这个演示(并查看源代码): http://openlayers.org/dev/examples/select-feature-openpopup.html