【问题标题】:xamarin forms map sometimes very slow to update tiles, unless I rotate devicexamarin 表单地图有时更新图块很慢,除非我旋转设备
【发布时间】:2020-10-07 09:40:31
【问题描述】:

我正在为跟踪应用程序使用 xamarin 表单地图,因此视图往往会在景观中移动,并且需要加载图块以显示新区域。我正在使用 map.MoveToRegion 滚动

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

如何强制刷新,或者让地图刷新得更快?

【问题讨论】:

  • 您好,Xamarin.Forms.Map 似乎没有提供刷新/更新方法。我发现有一个关于这个的discussion,也许你可以看看那个。

标签: xamarin.forms xamarin.forms.maps


【解决方案1】:

原来的问题是移动 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);
}

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

地图在动画时不会刷新它的图块,因此如果您不断更新地图位置,则应该以非动画方式进行。

【讨论】:

  • 您好,很高兴您找到了解决方案!有时间记得标记一下,对其他有同样问题的人会有帮助。
  • 当我写上面的时候,我被禁止将它标记为另外 19 个小时的解决方案。在这种情况下奇怪的延迟。还有 4 个小时的路程。
  • 好吧,看来这种情况需要等待24小时。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-16
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多