OSM - 点击标记时弹出窗口不可见

3

点击标记时,OSM弹出窗口未显示。 我已尝试在标记上使用click事件。它有效吗? 请建议我如何在单击标记时显示弹出窗口。

JS 我已经尝试的代码

var newlonLat = new OpenLayers.LonLat( 78.447876 ,17.371610 )
.transform( new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
    map.getProjectionObject() // to Spherical Mercator Projection
    );
var zoom=9;
var newmarkers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(newmarkers);
newmarkers.addMarker(new OpenLayers.Marker(newlonLat));
map.setCenter (newlonLat, zoom);

newmarkers = new OpenLayers.Layer.Markers( "Markers" );

newmarkers.events.register('mouseover', newmarkers, function(evt) {
    popup = new OpenLayers.Popup("chicken",
    newlonLat,
    new OpenLayers.Size(200,50),
    "Location", 
    true);
    map.addPopup(popup);
});

newmarkers.events.register('mouseout', newmarkers, function(evt) {
    popup.hide();
});

map.addLayer(newmarkers);
newmarkers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(Tlon,Tlat).transform( fromProjection, toProjection),icon));
1个回答

0
根据OpenLayers API的说明,标记图层本身没有任何功能选择处理。 但是矢量图层确有此功能。然而,标记本身也可以处理鼠标事件。
您的代码无法正常工作,因为您试图在图层上注册“mouseover”事件,而不是标记。
所以,您可以直接将事件处理程序添加到标记中:
myMarker.events.register('mousedown', myMarker, function(evt) { alert("this is Sparta! " + this.icon.url); OpenLayers.Event.stop(evt); });

或者使用矢量图层来显示标记, 就像这个示例中所示的那样

或者使用 Layer.Text (Layer.Text 示例)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接