views:

64

answers:

3

I am trying to make a control that makes use of the MapPoint 3d rendering engine. The control gets a GlobeControl (via the GlobeControl constructor) and then renders a 3D map. The problem is that if I try to get another GlobeControl later the globeControl.Host object of the newly constructed GlobeControl has almost all of its members being null, including the RenderEngine.

This makes it problematic to use this in a scenario where we want to have multiple maps on our surface.

One workaround I've thought of is to construct a whole bunch of GlobeControls upfront (before I render anything) and then treat it as a GlobeControl pool, although I don't really know if I'm just asking for problems down the road (for example, if MapPoint only supports one GlobeControl per process or something).

Any help or insight is greatly appreciated. Please let me know if you need more clarification.

A: 

I'm running into the same issue. Did you find a solution?

JimMan
A: 

Hi JimMan, I did find an answer that satisfied me. I also posted a similar question on CodePlex with the following reply:

"Due to technical limitations in Virtual Earth 3D itself, only one instance of the 3D engine can be initialized per process. There are singleton variables that VE3D uses internally so there is no way to have more than one."

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

We ended up moving to a DeepZoom-based Silverlight solution.

Kang Su
A: 

Thanks Kang Su!

JimMan