3

1 つのベース レイヤー、1 つのオーバーレイ、1 つの WFS レイヤーの 3 つのレイヤーを持つマップがあります。私は次のようにそれらをロードします:

map.addLayers([baseLayer, wfsLayer, overlayLayer]);

ユーザーがマップをクリックすると、WFS レイヤー上のフィーチャが選択されます。そのため、map.addLayers を呼び出した後に選択コントロールを追加しました。

  selectControl = new OpenLayers.Control.SelectFeature(
      [wfsLayer],
      {
          clickout: true, toggle: false,
          multiple: false, hover: false
      }
  );
  map.addControl(selectControl);
  selectControl.activate();

これはうまく機能し、クリックすると機能が選択されます。

しかし、私のオーバーレイ レイヤーは WFS レイヤーの下にあり、それを一番上にしたいのです。オーバーレイ レイヤーは、塗りつぶされていないポリゴン レイヤーです。だから私は追加しました

map.setLayerZIndex(overlayLayer, map.Z_INDEX_BASE[ "Feature" ]+10);

map.addLayers の後。これは問題ないようです。オーバーレイ レイヤーが WFS レイヤーの上に配置されました。しかし、地図をクリックしても何も選択されません。

ほとんどの場合、私はそれを正しくしていません。オーバーレイ レイヤーを一番上にして、WFS レイヤーを選択可能にするにはどうすればよいですか?

[編集]

クリストフが述べたように、私は試しました

  selectControl = new OpenLayers.Control.SelectFeature( 
      [wfsLayer, overlayLayer], 
      { 
        clickout: true, toggle: false, 
        multiple: false, hover: false
      }
  );

しかし、おそらくオーバーレイ レイヤーが WMS レイヤーであるため、OL エラーが発生しました。

[編集#2]

この質問をhttps://gis.stackexchange.com/questions/59619/select-features-of-layer-which-is-not-on-top-in-openlayersに再投稿しました

4

1 に答える 1