xamarin.forms - xamarin 表单地图有时更新图块很慢,除非我旋转设备
问题描述
我正在将 xamarin 表单地图用于跟踪应用程序,因此视图倾向于在景观中移动,并且需要加载图块以显示新区域。我正在使用 map.MoveToRegion 滚动
有时地图图块加载非常缓慢,以至于整个区域都是白色的,没有图形。最初我认为这是一个数据速度问题,但事实证明,如果我旋转设备,改变布局横向/纵向,这会使地图立即刷新,所以数据显然是可用的,只是没有被渲染。缩放可以产生相同的效果,尽管效果不那么好。
如何强制刷新,或者只是让地图刷新得更快?
解决方案
原来的问题是移动 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);
}
有很多自定义地图渲染的例子,所以我不会在这里发布。主要的外卖真的只是......
当地图在动画时,它不会刷新它的图块,所以如果你不断更新地图位置,你应该以非动画的方式这样做。
推荐阅读
- javascript - eslint错误一元运算符'++'使用了no-plusplus
- python - 参数估计和最小二乘法最小化 - Python 和 Gekko
- regex - 从表 Greenplum 中解析数据
- python - Tkinter:返回 self.func(*args) 异常
- gcc - Autofdo 是否支持 -fprofile-reorder-functions?
- open-liberty - 到期时自动刷新 OpenId 访问令牌
- python - 如何在模型保存方法中获取多对多字段数据
- apache-spark - 使用 spark 编写 parquet 文件时设置数据类型
- python - 差值最接近特定数字的值
- mongodb - 在 mongoDB 连接字符串中指定多个服务器会阻止其连接,但仅指定主服务器有效