【问题标题】:UWP MapControl issue anchoring xaml childrenUWP MapControl 问题锚定 xaml 子项
【发布时间】:2017-11-11 02:25:29
【问题描述】:

我目前是 UWP MapControl 的新手。在将 XAML 子项添加到地图(而不是常规地图元素)时,我遇到了一个简单的问题。

这是我的代码:

    private void MapRightTapped(MapControl sender, MapRightTappedEventArgs args)
    {
        Ellipse circle = new Ellipse() { Height = 20, Width = 20, Fill = new SolidColorBrush(Colors.Black)};
        sender.Children.Add(circle);

        Geopoint position = new Geopoint(new BasicGeoposition()
        {
            Latitude = args.Location.Position.Latitude,
            Longitude = args.Location.Position.Longitude,
            Altitude = 5000,

        });
        MapControl.SetLocation(circle, position);
        MapControl.SetNormalizedAnchorPoint(circle, new Point(0.5, 0.5));
     }

起初该点在地图上正确显示。 但在缩放或倾斜地图后, 圆圈似乎锚定在地表高度,而不是 5000 的高度

【问题讨论】:

    标签: xaml uwp uwp-xaml uwp-maps


    【解决方案1】:

    您需要设置一个高度参考系统。将其设置为默认值未指定将导致高度值被忽略。

    【讨论】:

    • 我在枚举中尝试了所有高度参考系统相同的行为:/,甚至在添加 MapIcon 时,您无法设置此属性时也会发生相同的行为。
    • Altitude 支持 XAML 子项和 MapIcon,但只能在 Creator 更新的道路模式下工作。它适用于所有 Windows 10 版本的空中模式。
    • 对于 XAML,你可以这样做: Ellipse circle = new Ellipse() { Height = 20, Width = 20, Fill = new SolidColorBrush(Colors.Black) }; MyMapControl.Children.Add(circle); Geopoint position = new Geopoint(new BasicGeoposition() { Latitude = 47.2, Longitude = -121.8, Altitude = 10000, }, AltitudeReferenceSystem.Ellipsoid); MapControl.SetLocation(圆,位置); MapControl.SetNormalizedAnchorPoint(circle, new Point(0.5, 0.5));
    • MapIcon 你可以这样做: var poiLocation = new Geopoint(new BasicGeoposition { Latitude = 47.643496, Longitude = -122.138343, Altitude = 5000 }, AltitudeReferenceSystem.Surface); this.myMapIcon = new MapIcon { Location = poiLocation, }; this.MyMapControl.MapElements.Add(this.myMapIcon);
    猜你喜欢
    • 1970-01-01
    • 2018-05-07
    • 2017-01-12
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 1970-01-01
    相关资源
    最近更新 更多