Я хочу поместить несколько (прозрачных) кругов в элемент управления Bing Map Control в качестве оверлеев. Подумайте о «радиусе взрыва» или «сфере влияния». Мне понадобится как минимум два десятка таких кругов на карте, вместе с некоторыми другими полигонами, поэтому, чтобы убедиться, что производительность не пострадает, а карты по-прежнему легко манипулировать, это кажется ключевым моментом здесь.
Пока я могу вспомнить три варианта (из которых я попробовал два):
Добавьте n-сторонние MapPolygon
экземпляров на карту для каждого круга. Пробовал это, и работает нормально в принципе. Тем не менее, количество вершин на многоугольник немного рассеяно. Слишком мало, и при увеличении это выглядит отвратительно. Слишком много, и производительность начнет страдать.
Добавьте Pushpin
экземпляров для каждого круга и задайте их стиль / шаблон в виде круга, центрированного вокруг положения метки. Кажется, работает, за исключением того, что размер цикла затем фиксируется по размеру экрана, а не по размеру карты. Поэтому при масштабировании круги остаются на экране одинакового размера, в то время как они должны увеличиваться вместе с картой. Можете ли вы каким-либо образом привязать размер элемента управления Ellipse
(в шаблоне в стиле, который я использую) к Zoom
элемента управления родительской карты ..?
Создайте пользовательский подкласс MapShapeBase
для представления каждого круга. Эта реализация может динамически изменять количество вершин, используемых для рисования многоугольника, в зависимости от того, видна ли фигура на карте или нет (= внутри текущего порта просмотра) и каков уровень масштабирования. То есть, если фигуры карты имеют доступ к этой информации. Я еще не пробовал эту опцию.
Что вы использовали? Что бы вы использовали? Как бы вы обошли проблемы, упомянутые выше, , особенно связывая свойство элемента управления в шаблоне, используемом в стиле, со свойством родительского элемента управления, используя XAML ? Или у вас есть другие варианты, которые я мог бы попробовать заставить это работать?