gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 00:38:44 26 4
gpt4 key购买 nike

单击标记时不显示 OSM 弹出窗口。我尝试过标记上的点击事件。有效吗?建议我如何在单击标记时在标记上显示弹出窗口。

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));

最佳答案

如 OpenLayers API 中所述,Marker layer本身没有任何特征选择处理。 But Vector Layers does 。但是,标记本身也可以处理鼠标事件。

您的代码不起作用,因为您尝试在图层而不是标记上注册“mouseover”事件。

因此,您可以将事件处理程序直接添加到标记中:

myMarker.events.register('mousedown', myMarker, function(evt) { alert("this is Sparta! " + this.icon.url); OpenLayers.Event.stop(evt); });

或者使用矢量图层作为标记,as seen in this example

或使用 Layer.Text ( Layer.Text sample )

关于javascript - OSM - 单击标记时弹出窗口不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17358276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com