iOS mapview问题/问题

时间:2011-07-01 18:40:05

标签: ios annotations android-mapview core-location

我有一个我正在为iOS开发的应用程序,该应用程序执行以下操作

加载并设置注释并启动重定位并缩放到位置。

地图上有很多注释,从数据加载不需要很长时间,但实际将它们渲染到地图需要一段时间..所以用户界面稍微停顿一下,然后最终得到了重定位并缩放到它。

虽然这是功能性的,但它不是理想的用户体验..我可以颠倒顺序,而不是首先进行逐项缩放,然后调用添加注释,但这会导致UI暂停,因为注释是添加在UI线程中,更不用说重定位可能需要一点时间才能获得它的位置。

所以,我想我问的问题是处理这个问题的最佳方法是什么?有没有什么方法我没有意识到注释渲染到地图而不占用UI?我可以在地图上显示某种Splash Screen,但这似乎是一个警察,我个人讨厌启动画面。

也许最好的方法是在地图上显示BUSY / WORKING微调器,直到它完成?

通常认为最佳做法是什么?

3 个答案:

答案 0 :(得分:1)

您可以使用OCMapView对所有注释进行聚类。如前所述,地图可以处理一堆注释,但性能随着绘制视图的数量而下降,MKannotationViews没有什么区别。 OCmapView对所有注释进行聚类,并将它们合并到一个annotationView中。尝试一下,它是免费的。 https://github.com/yinkou/OCMapView

答案 1 :(得分:1)

我完成了与Android版本相同的操作,而iphone可以处理比droid更好的注释数量,延迟加载方法肯定是两个平台更好的整体体验。

感谢帮助人员。

答案 2 :(得分:0)

我认为您最好的解决方案就是不要在地图上添加“大量”注释。 MKMapView有很多功能,并且不需要大量的注释就可以将其搞砸了。您可以采用多种创造性方法来减少注释数量。

如果您有大量注释紧密组合在一起,请考虑将它们聚合为单个注释,然后在用户达到令人满意的近似缩放级别时将其拆分为单独的注释。

另一个考虑因素是将用户默认为更严格的缩放级别,并且只在该缩放级别和位置添加当前在屏幕上的注释。

这些选项中的任何一个都是可行的,还是让您考虑另一种创造性的方式来帮助您的情况?