我正在尝试向 map 添加多个图钉,当您缩小到足够大时,图钉就会消失,以使图钉变得如此小,以至于不再渲染它们。
我设法用以下代码实现了这种效果:
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);
但我真正想做的是用自定义图像填充多边形。图像必须放置在 map 的特定点,并将其大小与缩放级别相关联。 (就像上面的例子一样)这是我尝试使用的代码:
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);
这不起作用。图像出现在世界的特定点,但是当我缩小时,图像保持其大小。我相信这个问题是由于缺少一些限制多边形的矩形引起的,但我找不到任何可以开始的东西。请帮忙。
最佳答案
这不是 WP8 map 支持的功能。这个想法是,一旦将项目添加到 Map.Layers 中,它就不会通过缩放来重新缩放以创建一致的外观和感觉。有些项目确实会调整大小,例如 Map.MapElements 折线和地标,但这些项目不适用于图像。
如果您希望项目能够缩放,则必须注册 Map.ZoomLevelChanged 并以编程方式更改项目的缩放比例。
如果您有兴趣在未来版本中看到这一点,请填写 wpdev uservoice对您的用例的建议以及您对此感兴趣的原因。
关于c# - 如何在 WP8 map 上创建自动缩放图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14797456/