1

コントロールボタンがクリックされたときにプログラムでレイヤーを切り替えたい。

これを行うと、マップが正しく機能しなくなり、非常にバグが多くなります。より正確には、その後、描画ハンドラーがまったく正しく機能しません。

レイヤーを切り替えてプログラムで制御する方法を誰か教えてもらえますか?なぜこれが機能しないのですか?

コードは次のとおりです。

find_control(editing_toolbar_polygon.getControlsByClass(new RegExp(".*DrawFeature")),"Point").events.register("activate",null,function(e){
    map.removeControl(editing_toolbar_polygon);
    polygon_layer.setVisibility(false);
    vectors.setVisibility(true);
    map.addControl(editing_toolbar_vector);
});

これ:

find_control(editing_toolbar_polygon.getControlsByClass(new RegExp(".*DrawFeature")),"Point")

コールバック関数を設定したコントロールを返すだけactivateです。

4

2 に答える 2

2

レイヤーを変更するには、次のスニペットを使用できます。

map.setBaseLayer(map.layers[0]);

または、次のように名前でレイヤーを見つけることができます。

map.getLayersByName(layerName);
于 2013-07-31T16:20:28.337 に答える
2

マップ レイヤを切り替えるには、Map のメソッドを使用する必要がありますsetBaseLayerドキュメントを参照してください。

于 2013-05-28T16:16:32.670 に答える