Openlayers zIndex(マーカーとベクトル用)

私はOSMでマップをレンダリングしています。ページ要素のzIndexを設定することには重大な問題があります。

JSの一部は次のようになります。

var userRoute = new OpenLayers.Layer.Vector( "KML", {
    sphericalMercator : true,
    styleMap: styleMap,
    rendererOptions: { zIndexing: true }
} );

var markers = new OpenLayers.Layer.Markers( "Markers", {
    sphericalMercator : true,
    rendererOptions: { zIndexing: true }
} );

markers.setZIndex( 500 );
userRoute.setZIndex( 200 );

最初の要素のKMLファイルを解析中

var startFlag = new OpenLayers.Icon( '/start_flag_2.png', new OpenLayers.Size( 23, 22 ) );
markers.addMarker( new OpenLayers.Marker( latlon, startFlag ) )

最後の要素も同じです。 :

var stopFlag = new OpenLayers.Icon( '/stop_flag_2.png', new OpenLayers.Size( 23, 22 ) );
markers.addMarker( new OpenLayers.Marker( latlon, stopFlag ) )

zIndexを設定することは、スクリプトによって単純に無視されます。

7
誰かがintrestedの場合は、map.addLayers([userRoute、marker]);をマップするレイヤーを追加した後にzIndexを指定する必要があります。 markers.setZIndex(1001); userRoute.setZIndex(1000);それはちょうどうまく動作します:)
追加された 著者 kamil,
私はちょうど私が8時間のための自分の質問に答えることができないので、それを早くすることができなかった;)
追加された 著者 kamil,
あなたが解決策を見つけたことは素晴らしいことです。 :-)それを答えとして置き、解決したことを他の人に簡単に見えるように解決策としてマークします。
追加された 著者 Niklas Wulff,

1 答え

誰かがintrestされている場合は、マップにレイヤーを追加した後にzIndexを指定する必要があります

map.addLayers( [userRoute, markers] ); 
markers.setZIndex( 1001 ); 
userRoute.setZIndex( 1000 ); 

それはちょうどうまく動作します:)

19
追加された
あなたが言ったように "あなたはマップにレイヤーを追加した後にzIndexを指定する必要があります"というトリックでした!ありがとうございました!
追加された 著者 wondie,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript