我正在尝试制作一个使用MapPoint 3d渲染引擎的控件。控件获取GlobeControl(通过GlobeControl构造函数),然后呈现3D地图。问题是,如果我稍后尝试获取另一个GlobeControl,则新构造的GlobeControl的globeControl.Host对象几乎所有成员都为null,包括RenderEngine。
这使得在我们希望在表面上有多个地图的场景中使用它会有问题。
我想到的一个解决方法是预先构建一大堆GlobeControls(在我渲染任何内容之前),然后将其视为GlobeControl池,虽然我不知道我是否只是要求解决问题这条路(例如,如果MapPoint每个进程只支持一个GlobeControl或其他东西)。
非常感谢任何帮助或见解。如果您需要更多说明,请告诉我。
答案 0 :(得分:0)
我找到了一个让我满意的答案。我还在CodePlex上发布了一个类似的问题,回复如下:
“由于Virtual Earth 3D本身的技术限制,每个进程只能初始化一个3D引擎实例.VE3D内部使用单例变量,因此无法有多个。”
http://bingmapswpf.codeplex.com/Thread/View.aspx?ThreadId=65223&ANCHOR
我们最终转向基于DeepZoom的Silverlight解决方案。