如何在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); 

它不起作用。 图像显示在世界的特定点,但是当我缩小时,图像保持其大小。 我认为问题是由于缺少一些限制多边形的Rectangle引起的,但我找不到任何东西。 请帮忙。

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

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

如果您有兴趣在将来的版本中看到这一点,请使用您的用例填写wpdev用户语音建议,以及为什么您有兴趣这样做。