全て。私はこの小さな問題を抱えており、助けを求めています:
最初に、次を含む関数があります。
var point = new OpenLayers.Geometry.Point(imageConfig.XPos, imageConfig.YPos);
var imageFeature = new OpenLayers.Feature.Vector(point);
layers.imageLayer.addFeatures([imageFeature]);
そのため、レイヤー上にポイントが描画されます。このレイヤーには、openlayers ドラッグ コントロールもあります。ポイントが描画された後にアクティブ化されます。これで、ポイントをドラッグできます。魅力のように機能します。
これは、ユーザー主導の段階的な手順の一部です。したがって、ドラッグが完了したら、次のステップでポイントを使用して何かを行います。これらの他のステップの間、ドラッグ コントロールは無効になります。この手順では、ステップ間をジャンプできるため、ドラッグ コントロールの無効化/有効化が必要です。これはうまくいきます。
すべてのステップが終了すると、ポイントはレイヤーから削除されます。また、これはうまく機能します。
BUT:レイヤー上にポイントを描画する関数を再度呼び出して(原因は新しいものです)、ドラッグコントロールをアクティブにすると、マウスクリックでポイントを選択しようとしても、新しいポイントをドラッグできなくなりますか? !
私は firbug で制御しました:
- 機能はあります
- 機能は右のレイヤーにあります
- コントロールはそこにある
- コントロールは右のレイヤーにあります
- コントロールが有効になります
多分私はここで簡単なことを見逃しています。しかし、私はこれについて2日間頭を悩ませていますが、答えが見つかりません。
ちなみに、最初のステップ シーケンス (すべてがうまく機能する場合) では、コントロール機能のプロパティがポイント機能で設定されていることがわかりました。しかし、2番目ではありません。コントロールのドラッグ ハンドラー機能プロパティでも同じです。
次の方法で手動で設定しようとしました:
control.feature = imageFeature
と:
control.handler.drag.feature = imageFeature
新しい機能をコントロールに設定する機能を探していました。しかし、openlayers ドキュメントには何も見つかりません。他のコントロールは同時にアクティブではありません (firebug で制御します)。
しかし、運がありません。役に立ちませんでした。なぜこれ?私はこれがうまくいくはずだと確信しています。私はここに立っていることを間違っているか、見逃していますか???
すべての助けに感謝します。
ありがとう