Нарисуйте треугольник на 3D-карте MapControl (UWP) - PullRequest
1 голос
/ 08 июля 2019

Мне нужно нарисовать треугольник на виде Aerial3d на UWP MapControl, чтобы иметь некоторую визуальную информацию для пользователя, который хотел бы видеть, пересекает ли определенный вектор горы или высокие здания, ...

У меня есть источникГеопоинт, азимут и высота от горизонтальной плоскости.Исходя из этих данных, я могу также получить окончательное значение Geopoint и, я думаю, «высоту» для верхней точки треугольника.

Азимут и угол могут быть изменены в любое время, поэтому треугольник следует рисовать столько раз, сколько необходимо.

MapPolygon, MapPolyline и тому подобное не работают в этом случае, потому что линии должны быть нарисованы выше и поперек карты, а не привязаны к ней.

Новые MapControl MapElements, такие как MapModel3D и MapElement3D, являются статическими объектами, поэтому они также не работают.

Это идея:

enter image description here

1 Ответ

1 голос
/ 08 июля 2019

Вы должны быть в состоянии использовать MapPolyline - он будет правильно отрисован в трехмерном пространстве, если вы укажете систему координат высоты и установите значение высоты для каждой вершины.MapPolygon всегда будет нарисован на местности.Вы также должны иметь возможность использовать MapElement3D, чтобы показать закрашенный многоугольник, как показано на вашей картинке.Просто создайте модель, которая представляет собой простой треугольник и положение в начале координат / заголовке.Если происхождение или заголовок изменятся, модель может быть быстро обновлена.Если угол возвышения изменится, вам нужно заново создать модель, но для простого треугольника это должно быть достаточно быстро.Я видел примеры того, как кто-то анимировал модель птицы, взмахивая крыльями и получая 2-3FPS, поэтому, хотя это не обязательно будет интерактивное отслеживание, это должно быть довольно быстрое обновление.

...