在iOS 11上使用MapKit进行集群:第2部分
在第一部分中,我们研究了MapKit实现注释集群(iOS 11的一项新功能)所涉及的一些高级概念。正如该帖子的结论所指出的,我们还有许多工作要做,以使我们的简单应用程序更加实用,并使其代码更具可读性。 在第二部分中,我们将做到这一点!
首先,快速回顾一下。 您可能还记得,在应用程序中建立注释集群并运行的过程非常简单:
- 在地图上的狭窄区域添加多个注释。
- 为MapKit提供每个注释的
MKAnnotationView
实例,MKAnnotationView
注意适当地设置其clusteringIdentifier
。 - 为MapKit提供其他MKAnnotationView实例,
MKAnnotationView
用于MKClusterAnnotation
类型,这些实例在运行时自动生成。 - 享受您整洁有序的地图!
大部分工作都是在单个MKMapViewDelegate
方法( viewFor
)中完成的,并且所得的项目虽然简单易用,但可能会更强大。 因此,让我们进行一些重构! 我们将从更新MapItem
( MKAnnotation
MKAnnotation的数据类型)开始。
在第一部分中, MapItem
非常简单:它具有CLLocationCoordinate2D
类型的单个属性,这是MKAnnotation
要求的MKAnnotation
。 在我们更新的应用程序中,我们希望地图上的颜色更加多样化,因此我们将扩展MapItem
以包含ItemType
,这将确定地图上注释的颜色:
如您所见,我们的集群现在可以显示有关它们包含的数据的更多信息,并且导航地图要直观得多。 繁荣! 🎉
希望您已经学到了一些有关MapKit的功能的有用技巧,这些技巧在iOS上的注释集群方面比本迷你系列的第1部分和第2部分更重要。 我们已经从一个显示该系统工作原理的超简单示例,变成了一个具有生产就绪代码的更复杂示例(借助Swift🤓的强大功能使其变得优雅)。
谢谢阅读! 如果所有这些地图都让您感到有些迷茫,请在下面发表评论,在Twitter @worthbak上打我,或在Github上查看完整的项目。 否则,编码愉快!