WinRT Bing.Maps - 如何使用lat / lon边界框添加图像?

时间:2014-01-06 04:04:38

标签: c# image windows-runtime bing-maps

我可以通过代码将图像添加到我的地图中。

然而,当我放大/缩小时,图像保持不变。我希望它相对于地图缩放。

在Map的WPF版本中,您可以将ImageBrush用于MapPolygon,它将被约束到边界框。

我尝试了解决方案from this SO question,但似乎对图片没有任何影响。

                imageLayer.Children.Clear();
                MapLayer.SetPosition(_vm.RadarImage, new Location(_vm.Overlay.LatN, _vm.Overlay.LonW));
                imageLayer.Children.Add(_vm.RadarImage);

                shapeLayer.Shapes.Clear();
                var rect = new MapPolygon();
                rect.Locations.Add(new Location(_vm.Overlay.LatN, _vm.Overlay.LonW));
                rect.Locations.Add(new Location(_vm.Overlay.LatS, _vm.Overlay.LonW));
                rect.Locations.Add(new Location(_vm.Overlay.LatS, _vm.Overlay.LonE));
                rect.Locations.Add(new Location(_vm.Overlay.LatN, _vm.Overlay.LonE));
                rect.FillColor = Colors.Green;

                shapeLayer.Shapes.Add(rect);

                mappy.SetView(new LocationRect(new Location(_vm.Overlay.LatN + 0.0001, _vm.Overlay.LonW + 0.0001), new Location(_vm.Overlay.LatS - 0.0001, _vm.Overlay.LonE - 0.0001)));

这是正确的缩放。

Correct iamge placement

通过导航缩放一次时,您可以看到图像现在大于多边形

Zoomed once

1 个答案:

答案 0 :(得分:1)

没有一个简单的解决方案。我已经整理了一个示例应用程序,显示了一种方法来执行此操作。你可以在这里找到它:http://code.msdn.microsoft.com/Binding-and-Image-to-a-01a56e48我所做的是在地图上添加一个Canvas,然后使用地图计算图像边界框的像素坐标。然后,我使用这些像素坐标来缩放和定位画布上方的图像。我已经做过类似的事情来创建过去支持图像画笔的自定义多边形但尚未上传该代码示例。