UWP не показывает изображение на основе GeoPoint на карте - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь поместить изображение в соответствии с его геоинформацией.Однако изображение не отображается на карте.Я хочу убедиться, что при увеличении / уменьшении карты изображение останется на месте и отрегулирует его размер на основе фиксированной координаты.Нужно ли вставлять изображение на страницу 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);

        }

    }  
}

1 Ответ

0 голосов
/ 17 мая 2018

То, что у вас есть, выглядит правильно - вам просто нужно добавить его к .Children экземпляра элемента управления картой, а не к странице. Вам не нужно устанавливать преобразование рендера. Вы можете проверить, правильно ли загружается ваш растровый ресурс и выбрана ли базовая позиция там, где вы хотите.

    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.

...