複数のイベント ハンドラを使用して多角形を作成しています。クリック アンド ドラッグしてフリーハンドで描画したり、Shift キーを押しながらクリックして道路にスナップしたり、通常のクリックを行うこともできます。もともと、これらの各ポイントをプッシュする 1 つの配列がありました。ただし、イベント ハンドラーは固有であるため、どこにでも渡してどこでも変更する配列をデバッグするのは、悪い形式のように思えます。
ポリゴン パスが点の配列の配列になるようにしました。Shift キーを押しながらクリックすると点の配列が作成され、クリック アンド ドラッグすると点の配列が作成され、これらを配列の配列にプッシュします。
しかし、どうすればこれらを一緒に接続できますか? 現在、あるアレイのエンドポイントを次のアレイの開始点に接続できません。私は自分のコードをモジュール化しようとしているので、次の配列を作成するイベント リスナーに配列の最後のポイントを渡す必要はありません。これは、個別の配列を持つ目的を無効にするためです。
ポリゴンの複数のパスに関するドキュメントはかなり薄いです。
これが私がこれまでに持っているものです。
http://jsfiddle.net/skitterm/fn4g5/1/
擬似コード:
array C = new Array();
addEventListener for click {
populate array A
C.push(A);
}
addEventListener for shift-click {
populate array B
C.push(B);
}
addEventListener for right-click {
create polygon {
paths: C
}
}
Shift キーを押しながらクリックするか、クリックしてドラッグするだけで多角形を作成できますが、片側を Shift キーを押しながらクリックし、残りを通常のクリックで作成する多角形を作成することはできません。
何か案は?