我正在尝试根据其地理点放置图像。但是,图像不会显示在地图上。我想确保当我们放大/缩小地图时,图像将保持在原位并根据其固定坐标调整其大小。我是否还必须在 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);
}
}
}
您拥有的内容看起来是正确的 - 您只需将其添加到 .地图控件实例的子项,而不是页面。无需设置渲染转换。您可以检查您的位图资源是否正确加载,以及您选择的基本地理位置是否位于您想要的位置。
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。