微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CarouselView 中的 Xamarin.Forms.Maps:路线未直接显示

如何解决CarouselView 中的 Xamarin.Forms.Maps:路线未直接显示

我在 carouselView 上的地图中显示路线时遇到问题。

设置

我将 VireModel 中的 carouselview 绑定到 cotentview

        private ContentView carousel;
        public ContentView Carousel
        {
            get { return carousel; }
            set
            {
                if (carousel != value)
                {
                    carousel = value;
                    OnPropertyChanged("Carousel");
                }
            }
        }

我给它以下内容视图作为项目

        private void InitializeCarousel()
        {
            Carousel = new ContentView()
            {
                Content = CarouselView()
            };
        }

        private CarouselView CarouselView()
        {
            ContentView[] items = CarouselItems();


            CarouselView carouselView = new CarouselView()
            {

                ItemsSource = items,IndicatorView = indicatorView,ItemTemplate = viewDataTemplate
            };

            return carouselView;
        }

        private ContentView[] CarouselItems()
        {
            ContentView[] items = new ContentView[5] 
            {
                 MapView(),SpeedView(),PaceView(),HeightView(),StepLengthView() 
            };


            return items;

        }

MapView() 是这样实现的:

        private ContentView MapView()
        {
            
            polygon route = new polygon
            {
                strokeWidth = 8,strokeColor = Color.FromHex("#1BA1E2"),Geopath =
                {
                    new Position(47.6368678,-122.137305),new Position(47.6368894,-122.134655),new Position(47.6359424,new Position(47.6359496,-122.1325521),new Position(47.6424124,-122.1325199),new Position(47.642463,-122.1338932),new Position(47.6406414,-122.1344833),new Position(47.6384943,-122.1361248),new Position(47.6372943,-122.1376912)
                }
            };

            MapSpan span = new MapSpan(new Position(47.6368678,0.02,0.02);
            
            Map map = new Map(span)
            {
                HasScrollEnabled = false,HasZoomEnabled = false,};

            map.MapElements.Add(route);

            ContentView view = new ContentView()
            {
                Content = map
            };

            return view;
        }

问题

问题是,如果页面在应用程序中打开,地图会完全缩小。如果我完全按时滑过轮播,我会看到 Route 和 MapSpan 是正确的。

  1. 首先:

enter image description here

  1. 完全滑过旋转木马后

enter image description here

编辑

这是问题的gif

enter image description here

解决方法

请在您的 map.MoveToRegion(mapSpan); 方法中添加 MapView

 private ContentView MapView()
        {
            
            Polygon route = new Polygon
            {
                StrokeWidth = 8,StrokeColor = Color.FromHex("#1BA1E2"),Geopath =
                {
                    new Position(47.6368678,-122.137305),new Position(47.6368894,-122.134655),new Position(47.6359424,new Position(47.6359496,-122.1325521),new Position(47.6424124,-122.1325199),new Position(47.642463,-122.1338932),new Position(47.6406414,-122.1344833),new Position(47.6384943,-122.1361248),new Position(47.6372943,-122.1376912)
                }
            };

            MapSpan span = new MapSpan(new Position(47.6368678,0.02,0.02);
            
            Map map = new Map(span)
            {
                HasScrollEnabled = false,HasZoomEnabled = false,};

            map.MapElements.Add(route);
           
            ContentView view = new ContentView()
            {
                Content = map
            };
            map.MoveToRegion(mapSpan);
            return view;
        }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。