1

MapPoint3dレンダリングエンジンを利用するコントロールを作成しようとしています。コントロールは(GlobeControlコンストラクターを介して)GlobeControlを取得し、3Dマップをレンダリングします。問題は、後で別のGlobeControlを取得しようとすると、新しく構築されたGlobeControlのglobeControl.Hostオブジェクトで、RenderEngineを含むほとんどすべてのメンバーがnullになることです。

これにより、サーフェス上に複数のマップが必要なシナリオでこれを使用することが問題になります。

私が考えた回避策の1つは、(何かをレンダリングする前に)GlobeControlsの全体を事前に構築し、それをGlobeControlプールとして扱うことですが、将来的に問題を求めているだけかどうかはわかりません(たとえば、MapPointがプロセスごとに1つのGlobeControlのみをサポートする場合など)。

どんな助けや洞察も大歓迎です。さらに詳しい説明が必要な場合はお知らせください。

4

1 に答える 1

0

私は私を満足させる答えを見つけました。同様の質問をCodePlexに投稿し、次の返信をしました。

「VirtualEarth3D自体の技術的限界により、プロセスごとに初期化できる3Dエンジンのインスタンスは1つだけです。VE3Dが内部で使用するシングルトン変数があるため、複数持つ方法はありません。」

http://bingmapswpf.codeplex.com/Thread/View.aspx?ThreadId=65223&ANCHOR

最終的に、DeepZoomベースのSilverlightソリューションに移行しました。

于 2010-03-10T14:29:29.277 に答える