全部服务产品
开发者频道
定价
登录
绘制海量点
下载开发文档
绘制海量点简介

since6.4.0起iOS地图SDK支持海量点图层(BMKMultiPointOverlay)绘制,用于批量展现坐标点数据,并支持点击事件。

绘制海量点
1. 添加海量点覆盖物数据
NSMutableArray *items = [NSMutableArray array];
//读取数据
NSData *jsonData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"multPoints" ofType:@"json"]];
if (jsonData) {
NSArray *array = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
for (NSDictionary *dic in array) {
@autoreleasepool {
BMKMultiPointItem *item = [[BMKMultiPointItem alloc] init];
item.coordinate = CLLocationCoordinate2DMake([dic[@"lat"] floatValue], [dic[@"lng"] floatValue]);
[items addObject:item];
}
}
}
_multiPointOverlay = [BMKMultiPointOverlay multiPointOverlayWithMultiPointItems:items];
/**
向地图View添加Overlay,需要实现BMKMapViewDelegate的-mapView:viewForOverlay:方法
来生成标注对应的View
@param overlay 要添加的overlay
*/
[_mapView addOverlay:self.multiPointOverlay];
2. 实现代理方法生成对应的view(BMKMultiPointOverlayView)
#pragma mark - BMKMapViewDelegate
/**
根据overlay生成对应的BMKOverlayView
@param mapView 地图View
@param overlay 指定的overlay
@return 生成的覆盖物View
*/
- (BMKOverlayView *)mapView:(BMKMapView *)mapView viewForOverlay:(id<BMKOverlay>)overlay {
if ([overlay isKindOfClass:[BMKMultiPointOverlay class]]) {
//初始化一个overlay并返回相应的BMKMultiPointOverlayView的实例
BMKMultiPointOverlayView *multiPointOverlayView = [[BMKMultiPointOverlayView alloc] initWithMultiPointOverlay:overlay];
multiPointOverlayView.icon = [UIImage imageNamed:@"multPoints"];
multiPointOverlayView.anchor = CGPointMake(0.5, 1.0);
multiPointOverlayView.pointSize = CGSizeMake(32, 32);
MultipointOverlayView.delegate = self;
return multiPointOverlayView;
}
return nil;
}
3. 海量点点击回调
//MARK:BMKMapViewDelegate
/**
根据overlay生成对应的BMKOverlayView
@param mapView 地图View
@param overlay 指定的overlay
@return 生成的覆盖物View
*/
- (void)multiPointOverlayView:(BMKMultiPointOverlayView *)overlayView didItemTapped:(BMKMultiPointItem *)item {
[self.mapView removeAnnotations:self.mapView.annotations];
[self.mapView addAnnotation:item];
}
4. 运行程序

效果如下:

massivePoints_1.png

上一篇

绘制3D建筑物

下一篇

绘制3D模型

本篇文章对您是否有帮助?