【问题标题】:OSM - Popup not visible while clicking on markerOSM - 单击标记时不可见弹出窗口
【发布时间】:2013-06-28 06:09:11
【问题描述】:

单击标记时没有显示 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));

【问题讨论】:

    标签: javascript popup openlayers openstreetmap


    【解决方案1】:

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

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

    因此,要么将事件处理程序直接添加到标记中:

    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)

    【讨论】:

      猜你喜欢
      • 2020-06-03
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      • 1970-01-01
      • 2011-12-20
      • 2020-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多