如何解决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 是正确的。
- 首先:
- 完全滑过旋转木马后
编辑
这是问题的gif
解决方法
请在您的 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 举报,一经查实,本站将立刻删除。