我想以与 Google map 相同的方式关注用户的蓝点。这意味着当位置发生变化时, map (或其中心)应该平滑地跟随它。但是当我对委托(delegate)使用标准方式时:
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
[map setCenterCoordinate:map.userLocation.coordinate animated:YES];
}
或 mapview.userLocation
上的键值观察器,然后 map 的移动非常“断断续续”,即使我使用 animated
参数,它也会快速“跳转”到新位置。
此外,我认为蓝点本身的移动并不像在原生 Google map 应用中那样流畅,并且经常跳到新位置而不是移动到那里。
感谢您的帮助。
最佳答案
'嗨 jack
我也尝试解决这个问题,但看起来 MKMapView 可能在更新之间使用了一些花哨的东西来预测下一个位置并使移动更流畅。
如果您观察他们处理指南针的方式,他们会进行大量过滤,因为原始指南针数据不是非常稳定,所以他们使它非常光滑和流畅。
另外,请注意在跟踪时您可以缩放但不能平移。即使关闭滚动功能,我也未能在我的应用程序中复制此功能,如果您在缩放时平移手指,它仍然会滚动。
我猜他们不会为了抢在我们前面而暴露一切 :)
关于objective-c - 在 MKMapView 中顺畅地跟踪用户的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5030895/