0

我正在尝试根据其地理点放置图像。但是,图像不会显示在地图上。我想确保当我们放大/缩小地图时,图像将保持原位并根据其固定坐标调整其大小。我还必须在 xaml 页面中插入图像吗?目前我只在cs页面上添加图像。

有人可以告诉我如何解决这个问题吗?MapView 在此代码中是 MapControl。

namespace HelpMe
{

    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
            addImage();

        }

        //adding image
        public void addImage()
        {
            Image img = new Image();
            img.Height = 100;
            img.Width = 100;
            img.Source = new BitmapImage(new Uri("ms-appx:///Assets/Unknown.jpg"));
            img.RenderTransform = new CompositeTransform() { Rotation = 0 };
            MapControl.SetNormalizedAnchorPoint(img, new Point(0.5, 0.5));
            MapControl.SetLocation(img, new Geopoint(new BasicGeoposition() { Latitude = 0, Longitude = 0, Altitude = 0 }));
            MapView.Children.Add(img);

        }

    }  
}
4

1 回答 1

0

你所拥有的看起来是正确的——你只需要将它添加到地图控件实例的 .Children 中,而不是页面中。您不需要设置渲染转换。您可能会检查您的位图资源是否正确加载,并且您选择的 BasicGeoposition 是否在您想要的位置。

    Image img = new Image();
    img.Height = 100;
    img.Width = 100;
    img.Source = new BitmapImage(new Uri("ms-appx:///Assets/YourBitmapName.jpg"));
    MapControl.SetNormalizedAnchorPoint(img, new Point(0.5, 0.5));
    MapControl.SetLocation(img, new Geopoint(new BasicGeoposition() { Latitude = 47, Longitude = -122, Altitude = 0 }, AltitudeReferenceSystem.Terrain));
    yourMapControlInstanceName.Children.Add(img);

请注意,对于像这样的简单图像,最好使用 MapIcon。与固定的 XAML 元素相比,这将具有更高的性能并与地图移动更好地同步。

如果您希望图像在放大/缩小时自动缩放,MapBillboard 是合适的。

于 2018-05-17T16:52:08.830 回答