2

我正在尝试向地图添加多个图钉,当您缩小到足够大时它们会消失,以使图钉变得如此之小,以至于它们不再被渲染。

我设法使用以下代码实现了这种效果:

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);

它不起作用。图像出现在世界的特定点,但是当我缩小时,图像保持其大小。我相信这个问题是由于缺少一些限制多边形的 Rectangle 引起的,但是我找不到任何可以开始的东西。请帮忙。

4

1 回答 1

2

这不是 WP8 Maps 支持的功能。这个想法是,一旦将项目添加到 Map.Layers,它就不会通过缩放重新缩放以创建一致的外观和感觉。有些项目会调整大小,例如 Map.MapElements Polylines 和 Landmarks,但这些不适用于 Image。

如果您希望您的项目缩放,您必须注册 Map.ZoomLevelChanged 并以编程方式更改您的项目的缩放。

如果您有兴趣在未来的版本中看到这一点,请在wpdev uservoice建议中填写您的用例以及您对此感兴趣的原因。

于 2013-02-12T01:42:03.540 回答