2009-08-11 4 views
1

J'essaie de faire un contrôle qui utilise le moteur de rendu 3D MapPoint. Le contrôle obtient un GlobeControl (via le constructeur GlobeControl), puis rend une carte 3D. Le problème est que si j'essaie d'obtenir un autre GlobeControl plus tard, l'objet globeControl.Host du GlobeControl nouvellement construit a presque tous ses membres étant null, y compris le RenderEngine. Cela rend problématique l'utilisation de ceci dans un scénario où nous voulons avoir plusieurs cartes sur notre surface. Une solution de contournement que j'ai pensée est de construire un tas de GlobeControls à l'avance (avant de rendre n'importe quoi) et de le traiter comme un pool GlobeControl, bien que je ne sache pas vraiment si je demande juste des problèmes sur la route (par exemple, si MapPoint ne prend en charge qu'un seul GlobeControl par processus ou autre).Existe-t-il une restriction sur les objets MapPoint GlobeControl?

Toute aide ou compréhension est grandement appréciée. S'il vous plaît laissez-moi savoir si vous avez besoin de plus de précisions.

+0

J'ai supprimé le tag MapPoint car il n'implique pas vraiment MapPoint (bureau ou le service Web MapPoint déconseillé) mais le contrôle 3d de Bing Maps (précédemment connu sous le nom de Virtual Earth 3d Control). – winwaed

Répondre

0

J'ai trouvé une réponse qui m'a satisfait. J'ai également posté une question similaire sur CodePlex avec la réponse suivante:

"En raison de limitations techniques dans Virtual Earth 3D, une seule instance du moteur 3D peut être initialisée par processus. Il existe des variables singleton que VE3D utilise en interne. il n'y a aucun moyen d'en avoir plus d'un. "

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

Nous avons fini par passer à une solution Silverlight base DeepZoom.

Questions connexes