Как создать автомасштабируемое изображение, лежащее на картах WP8

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

Мне удалось добиться этого эффекта с помощью следующего кода:

MapPolygon shape = new MapPolygon();
GeoCoordinateCollection boundingLocations = CreateCircle(geoCoordinate, 0.1);
shape.Path = boundingLocations;
shape.FillColor = Color.FromArgb(0x55, 0xFF, 0xFF, 0x00);
shape.StrokeColor = Color.FromArgb(0xFF, 0xFF, 0x00, 0xFF);
shape.StrokeThickness = 4;
mapToDrawOn.MapElements.Add(shape);

Но что я действительно хочу сделать, так это заполнить многоугольник пользовательским изображением. Изображение должно быть размещено в определенной точке карты, а его размер соотнесен с уровнем масштабирования. (так же, как в приведенном выше примере) Это код, который я пытался использовать:

MapLayer layer = new MapLayer();
MapOverlay overlay = new MapOverlay();
Polygon polygon = new Polygon();
polygon.Points.Add(new Point(0, 0));
polygon.Points.Add(new Point(0, 75));
polygon.Points.Add(new Point(25, 0)); 
BitmapImage arrImg = 
    new BitmapImage(new Uri("/Images/arrow.png", UriKind.RelativeOrAbsolute));
ImageBrush imgBrush = new ImageBrush();
imgBrush.ImageSource = arrImg;
polygon.Fill = imgBrush;
overlay.Content = polygon;
//geoCoordinate is the argument of a method
overlay.GeoCoordinate = geoCoordinate;
layer.Add(overlay);
mapToDrawOn.Layers.Add(layer);

Это не работает. Изображение появляется в определенной точке мира, но когда я уменьшаю масштаб, изображение сохраняет свой размер. Я считаю, что проблема вызвана отсутствием некоторого прямоугольника, ограничивающего полигон, но я не могу найти ничего, с чего можно начать. Пожалуйста помоги.


person Michael    schedule 10.02.2013    source источник


Ответы (1)


Это не поддерживаемая функция Карт WP8. Идея состоит в том, что когда элемент добавляется в Map.Layers, он не масштабируется с увеличением, чтобы создать согласованный внешний вид. Размер некоторых элементов, таких как Map.MapElements Polylines и Landmarks, изменяется, но они не будут работать для изображения.

Если вы хотите, чтобы ваши элементы масштабировались, вам придется зарегистрироваться в Map.ZoomLevelChanged и программно изменить масштаб ваших элементов.

Если вы хотите увидеть это в будущих выпусках, заполните голос пользователя wpdev. предложение с вашим вариантом использования и почему вы заинтересованы в этом.

person JustinAngel    schedule 12.02.2013
comment
Раньше он был доступен на картах Bing, а теперь карты WP8 удалены? с! - person Clinton Ward; 12.01.2014