2

OpenLayers マップに問題が 1 つあります。マップ上のマーカーをクリックするとポップアップが表示されますが、他のマーカーはこのポップアップの上に表示されたままです。

これを正しい方法で行うにはどうすればよいですか?

    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 に答える