UWP映射控制问题锚定xaml子级

UWP映射控制问题锚定xaml子级,xaml,uwp,uwp-xaml,uwp-maps,Xaml,Uwp,Uwp Xaml,Uwp Maps,我目前是UWP MapControl的新手。在向映射(而不是常规映射元素)添加XAML子元素时,我遇到了一个简单的问题 这是我的代码: private void MapRightTapped(MapControl sender, MapRightTappedEventArgs args) { Ellipse circle = new Ellipse() { Height = 20, Width = 20, Fill = new SolidColorBrush(Co

我目前是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的高度。您需要设置一个高度参考系统。将其设置为默认值未指定将导致忽略高度值。

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

我在枚举中尝试了所有高度参考系统,但行为相同:/,甚至在添加无法设置此属性的MapIcon时,也会发生相同的行为。XAML子项和MapIcon都支持高度,但仅在创建者更新时在道路模式下工作。它在所有Windows 10版本上都以空中模式工作。对于XAML,您可以这样做:椭圆圆=新椭圆(){Height=20,Width=20,Fill=new SolidColorBrush(Colors.Black)};MyMapControl.Children.Add(圆圈);地理点位置=新的地理点(新的基本地理位置(){纬度=47.2,经度=-121.8,海拔=10000,},海拔参考系.椭球体);MapControl.SetLocation(圆、位置);MapControl.SetNormalizedAnchorPoint(圆,新点(0.5,0.5));MapIcon您可以这样做:var poiLocation=new Geopoint(新的基本地理位置{纬度=47.643496,经度=-122.138343,海拔=5000},AltitudeReferenceSystem.Surface);this.myMapIcon=new-MapIcon{Location=poiLocation,};this.MyMapControl.MapElements.Add(this.myMapIcon);我在枚举中尝试了所有高度参考系统,但行为相同:/,甚至在添加MapIcon时,如果无法设置此属性,也会发生相同的行为。XAML子项和MapIcon都支持高度,但仅在创建者更新时在道路模式下工作。它在所有Windows 10版本上都以空中模式工作。对于XAML,您可以这样做:椭圆圆=新椭圆(){Height=20,Width=20,Fill=new SolidColorBrush(Colors.Black)};MyMapControl.Children.Add(圆圈);地理点位置=新的地理点(新的基本地理位置(){纬度=47.2,经度=-121.8,海拔=10000,},海拔参考系.椭球体);MapControl.SetLocation(圆、位置);MapControl.SetNormalizedAnchorPoint(圆,新点(0.5,0.5));MapIcon您可以这样做:var poiLocation=new Geopoint(新的基本地理位置{纬度=47.643496,经度=-122.138343,海拔=5000},AltitudeReferenceSystem.Surface);this.myMapIcon=new-MapIcon{Location=poiLocation,};this.MyMapControl.MapElements.Add(this.myMapIcon);