HSClusterMapView 是 GMSMapView(Google iOS SDK 地图)的子类,它将多个 GMSMarkers 聚集成单个 GMSMarker,这样开发者就可以在运行时为每个聚类标记生成自定义的 UIImage。
还包含一个 GMSMapView 的子类,HSMapView,它将跟踪 GMSMapView 上的标记,这对于想要在 GMSMapView 外部保持想要显示在地图上的 GMSMarker 对象的开发者来说是不一样的。
HSClusterMapView 和 HSMapView 的目标是提供更一致和功能更齐全的接口,以便与 Google Maps for iOS SDK 一起使用。
要运行示例项目,请克隆仓库,然后首先从 Example 目录中运行 pod install
。
应使用以下初始化器创建 HSClusterMapView 的实例
- (instancetype)initWithFrame:(CGRect)frame renderer:(id<HSClusterRenderer>)renderer;
其中 renderer 负责为地图上显示的每个聚类生成一个 UIImage。然后,调用以下内容以将标记添加到地图并调用以下内容以进行聚类:
- (void)addMarker:(GMSMarker *)marker;
到添加标记到地图
- (void)cluster;
到执行聚类
在您使用 HSClusterMapView 或 HSMapView 时,不需要设置 GMSMarker 的 "map" 属性!
HSClusterMapView 有许多可自定义的参数,如
@property CLLocationDistance clusterSize;
@property NSUInteger minimumMarkerCountPerCluster;
@property BOOL clusteringEnabled;
HSMapView 是 HSClusterMapView 的父类,并具有 GMSMapView 没有的有用方法,如
- (void)addMarker:(GMSMarker *)marker;
- (void)addMarkers:(NSArray *)markers;
- (void)removeMarker:(GMSMarker *)marker;
- (void)removeMarkers:(NSArray *)markers;
以及额外的属性
@property MKCoordinateSpan visibleSpan;
@property CGFloat visibleRadiusInMiles;
@property NSArray *displayedMarkers;
HSClusterMapView、HSMapView 及其关联类在 CocoaDocs 上有完整文档此处。
HSClusterMapView 通过 CocoaPods 提供。要安装它,请简单地将其添加到您的 Podfile 中:
pod "HSClusterMapView"
HSClusterMapView 可在 MIT 许可证下使用。有关更多信息,请参阅 LICENSE 文件。