Существует ли ограничение на объекты MapPoint GlobeControl?
-
13-09-2019 - |
Вопрос
Я пытаюсь создать элемент управления, использующий механизм 3D-рендеринга MapPoint.Элемент управления получает GlobeControl (через конструктор GlobeControl), а затем отображает трехмерную карту.Проблема в том, что если я позже попытаюсь получить еще один GlobeControl, то в объекте globalControl.Host вновь созданного GlobeControl почти все его члены будут нулевыми, включая RenderEngine.
Это делает проблематичным использование этого в сценарии, где мы хотим иметь несколько карт на нашей поверхности.
Один из обходных путей, о котором я подумал, - это заранее создать целую кучу GlobeControls (прежде чем что-либо визуализировать), а затем рассматривать его как пул GlobeControl, хотя я действительно не знаю, может, я просто спрашиваю о проблемах в будущем ( например, если MapPoint поддерживает только один GlobeControl для каждого процесса или что-то в этом роде).
Любая помощь или понимание очень ценятся.Пожалуйста, дайте мне знать, если вам нужны дополнительные разъяснения.
Решение
Я нашел ответ, который меня удовлетворил.Я также разместил аналогичный вопрос на CodePlex со следующим ответом:
«Из-за технических ограничений самой Virtual Earth 3D для каждого процесса можно инициализировать только один экземпляр 3D-движка.Существуют одноэлементные переменные, которые VE3D использует внутри себя, поэтому невозможно иметь более одной».
http://bingmapswpf.codeplex.com/Thread/View.aspx?ThreadId=65223&ANCHOR
В итоге мы перешли на решение Silverlight на базе DeepZoom.