2

我的 OpenLayers 地图有一个问题。当我单击地图上的标记时,它将显示弹出窗口,但在此弹出窗口上方仍然可见其他标记。

如何以正确的方式做到这一点?

    fromProjection = new OpenLayers.Projection("EPSG:4326"); 
    toProjection   = new OpenLayers.Projection("EPSG:900913"); 

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

    markers.events.register('mouseover', markers, function(evt) {
        popup = new OpenLayers.Popup.FramedCloud("Popup",
                new OpenLayers.LonLat(Tlon,Tlat).transform( fromProjection, toProjection),
            null,
            '<span style="z-index:99999;background:red;">sdf</span>',
            null,
            false);
        map.addPopup(popup);
    });

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

    map.addLayer(markers);
    markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(Tlon,Tlat).transform( fromProjection, toProjection),icon));
4

1 回答 1

1

如果没有要测试的 URL,我无法确定,但您可能需要为添加到地图的每个标记克隆图标。从文档:

请注意,如果您将图标传递给 Marker 构造函数,它将获取该图标并使用它。这意味着你不应该在标记之间共享图标——你只使用一次,但是你应该 clone() 用于使用相同图标的任何其他标记。

于 2013-01-07T15:35:05.463 回答