xamarin表格地图有时更新瓷砖很慢,除非我旋转设备



我使用xamarin forms map作为跟踪应用程序,因此视图往往会在景观中移动,需要加载瓷砖来显示新区域。我正在使用地图滚动。移动到区域

有时,地图分块加载速度非常慢,以至于整个区域都是白色的,没有图形。起初我认为这是数据速度问题,但事实证明,如果我旋转设备,改变布局横向/纵向,这会使地图立即刷新,所以数据显然是可用的,只是没有被渲染。缩放也可以有同样的效果,尽管效果不太好。

我如何强制刷新,或者只是让地图更快地刷新?

事实证明,问题是移动forms.map的方式是通过MoveToRegion,这会为运动设置动画。如果动画需要一秒钟的时间,并且正在以更高或相等的频率设置新位置,则贴图实际上始终位于动画的中间。

当贴图设置动画时,它不愿意刷新平铺,因此贴图最终变为空白。

当我旋转设备时,这个持续的动画被中断了,它可以刷新平铺图形。

解决方案是使用另一种非动画方法制作一个自定义渲染器来移动贴图焦点。

private void moveToFast(Location location)
{
var update = CameraUpdateFactory.NewLatLng(new 
Android.Gms.Maps.Model.LatLng(location.Latitude, location.Longitude));
googleMap.MoveCamera(update);
}

有很多自定义地图渲染的例子,所以我不会在这里发布。主要的收获是。。。

当地图设置动画时,它不会刷新其平铺,因此如果您不断更新地图位置,则应以非动画方式进行更新

最新更新