0

ボックスの下の機能を選択するopenlayersには1つのオプションがあります。でも、線を引くとき(Shiftキーを押しながらフリーハンドで描くとき)に特徴を選択したい。私のスクリプトでは、描画と選択オプションを既に実装しています。線を引いて (複数の) フィーチャを個別に選択できます。今、私はこの2つをマージしたいと思います。描画した線が接するフィーチャ データを選択したいと考えています。利用可能なサンプル例はありますか?

ここで、サンプルコードを提供しました-

//Selection property---------------------------------------
            var selectControl = new OpenLayers.Control.SelectFeature(
                [vectorLayer],
                {
                    clickout: true, toggle: true,
                    multiple: true, hover: false,
                    toggleKey: "ctrlKey", // ctrl key removes from selection
                    multipleKey: "shiftKey" // shift key adds to selection
                }
            );
            map.addControl(selectControl);
            selectControl.activate();


var draw = new OpenLayers.Control.DrawFeature(
                vectorLayer, OpenLayers.Handler.Path,
                {displayClass: "olControlDrawFeaturePoint", title: "Draw Features", handlerOptions: {holeModifier: "altKey"}}
            );

前もって感謝します。

4

1 に答える 1

0

選択対象のレイヤー内のすべてのフィーチャに対して実行されるイベント「sketchcomplete」を登録し、ラインスケッチとジオメトリを共有しているかどうかを確認する必要があります。

このようなものですが、残念ながら今はテストできません。

vectorLayer.events.register('sketchcomplete', vectorLayer, sketchCompleteFunc);

function sketchCompleteFunc(obj) {

    for (var i=0;i<layer-to-be-selected.features.length;i++) {
         if (layer-to-be-selected.features[i].geometry.intersects(obj.geometry)) {
             selectControl.select(layer-to-be-selected.features[i])
         }

    }
}
于 2012-07-06T07:19:42.763 に答える